Inspiration

What it does

How we built it

Challenges we ran into

Accomplishments that we're proud of

What we learned

What's next for Supper Ledger

Inspiration

I'm from Lima. When a family here needs money for a hospital bill, we sell polladas: everybody sells plates, and the orders arrive in the group chat. In the US it's the spaghetti dinner or the church fish fry. On the night, one relative ends up scrolling back through the whole chat, checking Venmo, Zelle and cash by hand, with a paper list at the pickup table. I wanted to build the tool for that person.

What it does

Try it: https://kasbsquall.github.io/supper-ledger/

You paste the newest chat messages and the board updates: money collected against the goal, plates to cook for each pickup time, and who still owes. It reads lines like "Aunt Linda 5 tickets, sent 2 on Venmo" or "Grandpa Joe 2 plates @ 7, zelled $30". When a line makes no sense, like "who's bringing napkins?", it shows it back word for word and leaves the ledger alone.

For those lines you can ask AI, with your own Anthropic key. The AI only rewrites the line into a form the reader already knows, like "Grandma Rose 2 plates, paid $30 on Venmo", and nothing counts until you press Add.

At the pickup table you filter to who still owes and tap Paid, Picked up or Reminder, and every action can be undone. There's a Spanish version with soles, Yape and Plin.

No sign-up and no server. Everything stays in the browser on the organizer's phone, and it keeps working with the network off. Only the lines you ask AI about ever leave the phone.

How I built it

I planned it with the Devpost Learn skill pack and Claude Code before writing any code: scope.md, prd.md and spec.md are in the repo, and checklist.md records every change the build forced. The app is Vite, React and TypeScript. The chat reader is rule-based on purpose, so it works offline and gives the same answer every time. For the lines it can't read, the app calls Claude through the official Anthropic SDK with the organizer's own key: the model rewrites the line, the rules decide what it means, and the person confirms. 35 tests map to the acceptance criteria in the PRD.

For the look I compared three different visual directions on the real board before choosing one: a warm paper ledger with a thermometer, big numbers you can read with the phone in one hand.

Challenges I ran into

Real chat is messy. People write "zelled $30", "@ 7", "x2" or "a la 1", and the same messages get pasted twice. I made the reader skip lines already added, so pasting overlapping chat never doubles an order.

The hardest one was a reminder that promised a pickup time nobody had given. That told me the rule for the whole app: when it doesn't know something, it says so.

Accomplishments that I'm proud of

One paste moves the thermometer from $1,650 to $1,995 in the sample dinner. The app never guesses: every line it can't read is shown to the organizer, and even the AI's suggestions wait for a person to press Add. And it works with the network switched off, so the ledger itself never leaves the phone.

What I learned

Writing the PRD first gave every bug a place to go. Each time the build surprised me, I could check it against what we agreed and write the change down in the checklist.

I also learned that deciding what to cut matters as much as what to build. This app doesn't move money and doesn't need an account, and that's exactly why a family can trust it on the night.

What's next for Supper Ledger

Several relatives editing the same dinner at once. A printable pickup list for the table. Importing a payment app's export file.

Built With

Share this project:

Updates

Submission history