Skip to content
← Back

Capi

Dominican dominoes online with your people: 1v1 or 2v2, capicúa, tranque, and no account.

App Store Next.jsTypeScriptSupabase Realtime
Capi: Dominican dominoes online with your people: 1v1 or 2v2, capicúa, tranque, and no account.

Live at playcapi.com and on the App Store. Public code on GitHub.

The idea

Capi brings a Dominican dominoes table online without asking people to make an account first. Choose a name, share a code or link, and play 1v1 or 2v2 with the people who would be sitting across from you.

What I built

The rules live in one dependency-free TypeScript package used by both the web and iPhone apps. It handles game state, legal moves, capicúa, tranque, veinticinco, scoring, and board layout. Its 112 passing tests give both clients the same game logic without maintaining two versions of the rules.

The web app uses Next.js and Supabase. Postgres holds game state, Realtime subscriptions deliver authoritative updates, and a broadcast channel makes confirmed moves feel immediate. The social layer stays intentionally light: named tables, quick chat, a shareable invite, and Dominican places such as the barber shop, colmado, and patio.

The hard parts

01

Rules people recognize

Capicúa, tranque, veinticinco, and frentes are part of the rules, not decorative details. The game model includes tests around the edge cases that decide a real round.

02

One engine, two clients

Web and mobile should not slowly develop different dominoes rules. Keeping the engine small and framework-independent makes shared behavior practical.

03

Real time without a login wall

A code or link is the whole invite flow. That puts more weight on reconnecting, presence, and server-side validation, but keeps the first game easy to start.

What’s next

Complete the next mobile release pass, including the iMessage extension, production build, and device validation.