← Work

Case Study — 04

Splitbill.

An AI bill splitter that reads your receipt — snap, assign in plain language, share one link.

Role
Solo builder
Type
Personal
Period
2026 — Present
Stack
Next.js 16 · React 19 · App Router · Supabase · Gemini · Groq Whisper · Tailwind CSS · PWA

01

The product

Splitbill takes the most tedious part of eating out with friends — working out who owes what — and turns it into a thirty-second job. You snap a photo of the receipt, AI reads every line item and price, and you assign each item to people with a tap or by typing the way you'd actually say it: "paneer for Aman, water for everyone". It does the tax and tip math, then hands you one read-only link to share with the table.

It's a PWA, so it installs like a native app on iOS and Android, works without a signup to start, and lives at bill.rajkar.dev.

02

My role

Everything — product, design, frontend, backend, the AI pipeline, the credit system, and deployment. It's a solo project, which is the point: it's where I own every decision end to end, from the receipt-scanning prompt to the share-link data model.

03

The hard part

Reading a crumpled restaurant receipt reliably. Photos are skewed, blurry, in mixed currencies, and the line items follow no standard. The scan runs through Gemini with a strict output schema, so the model returns structured items — name, quantity, price — instead of prose I'd have to parse. Natural-language assignment ("paneer for Aman") goes through Groq's Whisper for transcription and then a second AI pass that maps spoken names onto the actual people and items on the bill.

The other half is making something AI-powered cheap enough to give away. Every scan costs money, so there's a credit system — free credits on signup, top-up packs after — with failed AI runs auto-refunded, so a bad photo never costs the user a credit.

04

How it was built

Next.js 16 with the App Router and React 19, Supabase for auth and data, Tailwind for styling. Each bill is stored once and exposed through two links — an editable owner link and a read-only share link — so whoever scanned keeps control while everyone else just sees the split.

Open Graph images are generated per bill, so a shared link previews the real total and who owes what instead of a generic card. The whole thing ships as a PWA with offline-aware caching, deployed on Vercel.

05

Outcome

Splitbill is live at bill.rajkar.dev and does exactly what it set out to: a real receipt becomes a shareable, itemized split in under a minute, with nothing to install and no signup to start. It's also been my testbed for production AI-product patterns — structured-output prompting, credit metering, per-bill OG generation — the kind of work that increasingly shows up in client projects too.

Visit live site ↗