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.
TaxSnap helps self-employed contractors, owner-operators, and freelancers snap photos of receipts, auto-categorize tax write-offs with AI, and export clean data for tax season.
FinanceTypeScript · PLpgSQLGitHub @zizu10101OnlineOwner 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.
A mobile-first PWA that helps self-employed trade contractors (painters,
handymen, barbers, etc.) snap photos of receipts, auto-categorize tax
write-offs with Gemini, and export clean data for tax season.
Stack: Next.js (App Router) · TypeScript · Tailwind CSS · shadcn/ui ·
Supabase (Postgres + Auth + Storage) · Google Gemini 3.6 Flash · Stripe.Read the full README ↗A mobile-first PWA that helps self-employed trade contractors (painters, handymen, barbers, etc.) snap photos of receipts, auto-categorize tax write-offs with Gemini, and export clean data for tax season.
Stack: Next.js (App Router) · TypeScript · Tailwind CSS · shadcn/ui · Supabase (Postgres + Auth + Storage) · Google Gemini 3.6 Flash · Stripe.
npm install
supabase/migrations/0001_init.sql. This creates
the profiles, receipts, and invoices tables with row-level security,
a trigger that auto-creates a profile on signup, and a private receipts
storage bucket for uploaded photos.Create a key at Google AI Studio.
/api/stripe/webhook listening for
checkout.session.completed, customer.subscription.created,
customer.subscription.updated, and customer.subscription.deleted.
For local development, use the Stripe CLI:
stripe listen --forward-to localhost:3000/api/stripe/webhook
Copy .env.local.example to .env.local and fill in the values from steps
2-4:
cp .env.local.example .env.local
npm run dev
Open http://localhost:3000. The app is installable as a PWA (Add to Home Screen) once served over HTTPS or from localhost.
src/app - routes (App Router): /, /auth, /dashboard, /billing,
/invoices, and API routes under src/app/api.src/components - UI components; src/components/ui holds shadcn
primitives.src/lib - Supabase clients, Gemini receipt parsing, Stripe client, CSV
export, and shared types.supabase/migrations - SQL schema and RLS policies.public/manifest.json, public/sw.js - PWA manifest and service worker.UploadReceipt (src/components/dashboard/upload-receipt.tsx)
uploads a photo to /api/parse-receipt, which stores the image in Supabase
Storage and calls Gemini with a strict JSON schema to extract merchant,
date, totals, tax, and category. The result is shown in a preview modal for
the user to edit; "Approve & Save" posts to /api/receipts, which inserts
the row into the receipts table./billing calls /api/stripe/checkout to start a Checkout
Session for the Basic or Pro price. The webhook updates
profiles.subscription_status, which gates the /invoices page (Pro only).