Open Net Worth
Open Net Worth is an open-source personal AI wealth assistant you run yourself: one ledger for your whole financial life, worked by an AI agent you control.
Split the trip. Settle in Venmo.
Translation pending
FinanceHTML · TypeScriptGitHub @bradrussell1Availability needs another checkOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Log the trip, tap Done, and settle up in one Venmo payment, with no daily limits and no 'who still owes what?' texts.
Loading the full README. The saved excerpt is shown below.
Checkm8 — split trip expenses, settle up in Venmo
A group logs shared trip expenses, everyone taps Done, and close-out
opens Venmo with each payment pre-filled, using the fewest payments possible.
The spec is docs/checkm8-v1-spec.md.
Keys never enter the repo. The anon key goes in apps/mobile/.env; the
service role key only in Supabase and Vercel environment variables.Read the full README ↗Identifiers that keep the old names on purpose. The product is Zebrasplit (zebrasplit.com, scheme
zebrasplit://, since 2026-10-13; Bunktab before that, Checkm8 before that). The iOS/Android bundle idcom.bunktab.app, the Expo slugbunktab, the EAS project@brad.russell1/bunktab, the npm workspaces@bunktab/*, the App Store Connect record and the push key are internal and stay as they are, like thecheckm8.internalsetting, Vault secret andx-checkm8-secretheader. Old schemes and domains keep working:bunktab://andcheckm8://are still accepted, and bunktab.com / check-m8.io redirect to zebrasplit.com.
A group logs shared trip expenses, everyone taps Done, and close-out
opens Venmo with each payment pre-filled, using the fewest payments possible.
The spec is docs/zebrasplit-spec.md. The original Checkm8
spec is kept as history in docs/archive/.
| Path | What |
|---|---|
apps/mobile | Expo (React Native) app, iOS + Android, expo-router |
packages/core | Pure logic: money, split types, lodging nights, settlement, Venmo links, categories, currency. Tested with vitest. No I/O. |
packages/theme | Design tokens: the Pretty Good kit's roles re-coloured with Basalt & Spore |
supabase/ | Postgres schema, row-level security, RPCs, storage policies (migrations/), Edge Functions (functions/) |
apps/web | Next.js web guest view + landing page (phase 5, not yet created) |
npm install
npm test # packages/core
npm run typecheck # every workspace
cp apps/mobile/.env.example apps/mobile/.env # add the anon key
npm run mobile # Expo dev server; scan the QR with Expo Go
npx supabase login
npx supabase link --project-ref qywowvkkkxldgxoatdsh
npx supabase db push # applies supabase/migrations
Keys never enter the repo. The anon key goes in apps/mobile/.env; the
service role key only in Supabase and Vercel environment variables.
packages/core/src/venmo.ts).