Oracle3
Open-source trading engine and MCP server for prediction markets. Fee-aware no-arbitrage trading across related contracts, live on Kalshi, Polymarket and Solana or on paper.
Split group expenses, simplify balances, and settle debts without awkward math.
Translation pending
FinanceTypeScript · PLpgSQLGitHub @manoloenriquezOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Group expense tracker — split bills with friends, no login required for friends.
Next.js 15 · Expo 54 · Supabase · Turborepo · pnpm
• Create expense groups and add members
• Add expenses (form or natural-language chat input)
• Equal split with correct remainder distribution
• Token-based shareable friend links — friends see their balance without logging in (/p/)
• GCash + bank payment profile with QR image upload
• Mark paid / undo last payment
• Groupchat-ready copy message format
• Mobile app (Expo) with group list, balances, and expense entryRead the full README ↗Track what you spend and split shared costs fairly — on iPhone and on the web. Next.js 15 · Expo 54 · Supabase · Turborepo · pnpm
Talli was previously developed as SettleUp (and briefly Tabkind). Some internal identifiers keep the old name on purpose — the Postgres schema
settleup, storage keys, URL schemes, the EAS slug. Seedocs/brand/REBRAND.mdbefore renaming anything.
iPhone app (apps/mobile) | Web app (apps/web) | |
|---|---|---|
| Personal spending and adaptive budget | Yes, also without an account | Not yet |
| Groups, friends, splits, balances, settle up | Yes (signed in) | Groups yes; friends can be accepted, not created |
| Shareable balance links for people without Talli | Creates them | Hosts them (/g, /p, /f) |
| Payment details (GCash, bank, QR), opt-in on links | Yes | Yes |
| Talli Assistant, receipt reading | On-device Apple Intelligence (iOS 27) | Receipt OCR and keyword entry; no cloud AI |
| Offline changes | Outbox | Outbox + installable PWA |
The full feature-by-feature comparison and roadmap is in
docs/parity/PARITY_AUDIT.md.
Share links (/p/<token>, /g/<token>) are served by SECURITY DEFINER RPCs
callable with the anon key; payment details appear on them only when their owner
opts in.
pnpm --filter @template/shared test
# or from root:
pnpm test
Sign in to the web app, open any group, and click Load Demo Data (development only).
| Tool | Version | Install |
|---|---|---|
| Node.js | ≥ 20 | nodejs.org |
| pnpm | ≥ 9 | npm i -g pnpm |
| Supabase CLI | latest | brew install supabase/tap/supabase |
| Docker Desktop | latest | docker.com |
# 1. Clone and install
git clone <repo-url> my-app
cd my-app
pnpm install
# 2. Copy env files
cp apps/web/.env.example apps/web/.env.local
cp apps/mobile/.env.example apps/mobile/.env.local
# 3. Start local Supabase (Docker required)
pnpm supabase start
pnpm supabase db reset # applies migrations + seed
# 4. Paste the local Supabase URL + anon key into .env.local files
# (printed by `supabase start`)
# 5. Run everything
pnpm dev
pnpm dev:web
# → http://localhost:3000
# First-time iOS setup for native modules / dev client
pnpm dev:mobile:ios
# Then start Metro for the development build
pnpm dev:mobile
# Starts Expo for the development client
# For iOS simulator: press i
# For Android emulator: press a
# For Expo Go specifically: pnpm --filter @template/mobile start:expo-go
# Start (Docker required)
pnpm supabase start
# Stop
pnpm supabase stop
# Reset DB (re-applies all migrations + seed.sql)
pnpm supabase db reset
# Open Studio
open http://localhost:54323
# Build all packages and apps
pnpm build
# Lint everything
pnpm lint
# Type-check everything
pnpm typecheck
# Format all files
pnpm format
# Create a new Supabase migration
pnpm supabase migration new <name>
# Regenerate TypeScript types from local DB
pnpm supabase gen types typescript --local \
> packages/supabase/src/database.types.ts
.
├── apps/
│ ├── web/ Next.js 15 (App Router), installable PWA
│ ├── mobile/ Expo 54 (React Native), iOS 27
│ └── api/ Hono server: account deletion only
├── packages/
│ ├── ui/ Shared web UI components
│ ├── shared/ Types, Zod schemas, constants
│ └── supabase/ Supabase client factories
├── supabase/
│ ├── config.toml Local stack configuration
│ ├── seed.sql Dev seed data
│ └── migrations/ SQL migration files
└── docs/ brain/ (architecture), parity/, brand/, budgeting/, ai/, launch/
apps/web/.env.local)NEXT_PUBLIC_SUPABASE_URL=... # from `supabase start` output
NEXT_PUBLIC_SUPABASE_ANON_KEY=... # from `supabase start` output
NEXT_PUBLIC_APP_URL=http://localhost:3000
apps/mobile/.env.local)EXPO_PUBLIC_SUPABASE_URL=...
EXPO_PUBLIC_SUPABASE_ANON_KEY=...
NEXT_PUBLIC_andEXPO_PUBLIC_vars are bundled into the client. Never put the service-role key in the web or mobile app; the only allowed use is the account-deletion route inapps/api.
# Link and deploy
pnpm dlx vercel --cwd apps/web
Set the same env vars in the Vercel dashboard. Set the root directory to apps/web if using monorepo preset.
pnpm dlx eas-cli build --platform all --profile production
# Link to your Supabase project
pnpm supabase link --project-ref <your-project-ref>
# Push migrations
pnpm supabase db push
See docs/brain/ for architecture decisions and conventions: