Oracle3
Oracle3: 예측시장 거래 엔진·MCP 서버
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
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 entryREADME 전문 보기 ↗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: