Anota
A Dominican dominoes scorekeeper for iPhone: both teams on one screen, capicúa and all.

Live on the App Store. Code private.
The idea
Dominican dominoes has its own scoring culture, and every scorekeeping app I tried treated the game generically. Anota is the scorekeeper my own table actually uses: both teams on one screen that never scrolls, preset chips for the bonuses every Dominican table argues about, and a proper celebration when a team closes out the match.
What I built
Expo and React Native on the New Architecture, strict TypeScript throughout. All match logic lives in one isolated hook; persistence is AsyncStorage behind schema-guarded, versioned keys, so an update never eats a match in progress. The domino tiles are drawn on a 3x3 pip grid with no image assets. Undo is first-class, and a long-press fixes any past round, because real games have disputed rounds.
It shipped. Version 1.1.x is on the App Store with a Pro in-app purchase through StoreKit, over-the-air updates through EAS so fixes land without waiting on review, haptics on the moments that deserve them, and shareable score cards. Spanish and English dictionaries share one enforced type, so the app cannot build with a missing translation.
The hard parts
01
One screen, no scroll, every iPhone
The whole product promise is that the score is always visible. Keeping two teams, history, and controls on one non-scrolling screen from an SE to a Pro Max is a layout constraint that shaped every component.
02
In-app purchases that fail honestly
StoreKit fails in creative ways: interrupted purchases, family sharing, offline restores. The Pro flow surfaces every error state in plain language instead of a silent spinner.
03
Culture in the details
The preset chips, the felt-and-ivory palette, the winner moment: none of it is decoration. It is what makes a Dominican table recognize itself in the app.
What’s next
The Android build is configured and waiting its turn.