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.
Scan a receipt, split it fairly, and ask for what you're owed without the awkward conversation.
FinanceTypeScript · CSSGitHub @yash7536OnlineOwner 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
Making settling shared expenses less awkward.
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Making settling shared expenses less awkward.
Splitting the bill is easy. Asking friends to pay you back is awkward.
SquadPay handles the tedious part (reading a receipt, doing the tax math,
working out who owes what) so the only thing left is a low-friction
payment request — not a manual accounting chore.Read the full README ↗Making settling shared expenses less awkward.
Live: squadpayy.vercel.app
Splitting the bill is easy. Asking friends to pay you back is awkward. SquadPay handles the tedious part (reading a receipt, doing the tax math, working out who owes what) so the only thing left is a low-friction payment request — not a manual accounting chore.
This isn't presented as "an AI app." Gemini is one step in a five-step
product flow, sitting behind two independent guardrail layers and a
mandatory human review screen before anything it produces becomes a real
number someone gets asked to pay. The full product/AI-PM case study —
problem, decisions, evaluation, failure modes, guardrails, what shipped
and what deliberately didn't — is in
docs/ai-pm/case-study.md.
Receipt photo (or manual entry, always available)
│
▼
AI-assisted extraction — Gemini reads items, quantities, tax, total
│
▼
Review — every field editable; two independent checks flag anything
that doesn't add up or looks implausible, in plain language
│
▼
Split — deterministic arithmetic, zero AI involvement at this step
│
▼
Payment request — drafted for WhatsApp; SquadPay requests, never moves money
Groups of friends, roommates, or trip companions who split shared costs regularly and currently do the accounting by hand — a calculator, a notes app, a mental tally — and find that asking people to actually pay up is the most uncomfortable part of the whole process.
SquadPay's receipt extraction was evaluated against 15 real, publicly-sourced receipts — not a curated demo set — and the results are published as-is, including the failures:
lib/domain/anomaly-detection.ts) — reconciling
arithmetic is not the same as being right.A second real evaluation run has since completed too — same dataset, same
scoring, stored separately so the two never get conflated. No regressions,
no cherry-picking. Full breakdown, both runs: eval/ANALYSIS.md.
Methodology, how to reproduce it, and its stated limitations:
eval/README.md.
This is a working, deployed product with one small-sample user-validation
round behind it — not yet a product with measured business outcomes.
A first round of real user testing across 12 known people found the core
problem is genuinely felt (9/12 showed real hesitation around asking
friends to repay them) and confirmed the most-requested next feature
(UPI/GPay integration — expected by all 12, deliberately deferred) — see
docs/ai-pm/user-validation-results.md.
Anything about adoption, retention, or measured time saved is still a
hypothesis, not a result — see
docs/ai-pm/business-hypotheses.md.
| Doc | What's in it |
|---|---|
docs/ai-pm/case-study.md | The full portfolio narrative |
docs/ai-pm/decision-log.md | P0/P1/P2 — what was fixed, what wasn't, and why |
docs/ai-pm/guardrail-architecture.md | The layered AI-safety design, in full |
docs/ai-pm/business-hypotheses.md | Quantitative metrics to validate — explicitly not yet measured |
docs/ai-pm/user-validation-plan.md | The usability test design |
docs/ai-pm/user-validation-results.md | What the first small-sample round actually found |
docs/ai-pm/portfolio-checklist.md | Status of the 5 portfolio artifacts |
eval/README.md | Evaluation methodology, how to run it, its limitations |
eval/ANALYSIS.md | Baseline and second-run results, read and interpreted |
npm install
npm run dev
Open http://localhost:3000. Copy .env.example
to .env.local and fill in Supabase + GEMINI_API_KEY to move past demo
mode — every value is optional in development; omitting any of them falls
back to a local mock store / mock receipt extraction so the UI stays fully
usable without external services.
npm run typecheck # tsc --noEmit
npm run lint # eslint
npm test # vitest — pure-logic tests only, zero API calls
npm run build # next build
Receipt-OCR evaluation is a separate, explicit, developer-triggered
command (never run automatically — see eval/README.md's API/quota-safety
section):
npm run eval:receipt -- receipt-01 # one receipt
npm run eval:receipts # all 15
Built on Next.js (App Router), TypeScript, Tailwind v4, and Supabase.