TabSplit

↗ Live site

TabSplit is a bill splitter for the dinner we were already having. Ten people, one receipt, three calculators, someone arguing about garlic bread. Cards for items. Circles for people. You slide a thing to a face, or to the middle of the table.

I built it because Splitwise is good the next morning and useless while the waiter is waiting. Live at tabsplit-ecru.vercel.app.

Status
Deployed Web App
Stack
Cosmos, Lovable, Claude
Role
Design Engineer, Developer
Date
Feb 2026

The challenge

The brief was dinners we were already having. Ledger apps wanted a group, then a transaction, then a split ratio. By the time you finish setup, someone has already UPI'd the wrong amount. I wanted the argument to move from arithmetic to "is this mine."

How do you settle a table without opening a ledger, making a group, or typing 25%?

What I looked at

I did not run a study. I watched the tools we already opened at the end of a meal, including the ones that are not "bill apps."

Splitwise

Groups, transactions, ratios. Powerful the next morning when you want a running tab. Slow during the night. The waiter is not going to wait for a group invite.

Venmo / UPI

Pays one person. Does not decide who owes what. The fight happens before you open it, on paper or in three calculator apps.

The calculator

Three of them open at once. Someone reads the receipt. Someone divides. Someone argues that they did not eat the garlic bread. That was the brief.

Equal split of the whole bill

Fast. Unfair. The person who ordered water subsidizes the person who ordered the second pitcher. The table knows this and still does it when they are tired.

I stole the speed of the calculator and the memory of Splitwise. I stole the 25% field from nobody.

Ideas I threw out

A few of these still look smart on a slide. They died at a table with a receipt that was already greasy.

Receipt OCR

Basements, glare, faded thermal paper, a total that includes service the restaurant already rounded. A wrong scan is worse than typing fries and 180.

Percentage fields

Typing 25% is the ledger again. Nobody at the table thinks in percents. They think "that's mine" or "we all had that."

A setup wizard for the group

Names, emails, confirm. The person with 4% battery leaves. The night is over and you have a half-built group.

Everyone must be online

Restaurant basements eat signal. Dead phones are normal. If the host cannot add a guest and assign for them, the design is unfinished.

Out
  • groups first
  • 25% fields
  • receipt OCR
  • setup wizards
  • must-be-online
In
  • cards and faces
  • center table / my items
  • guest profiles
  • type the line, slide it
  • host device as the table

Splitting a bill should feel like moving sticky notes, not filing a transaction.

What the table showed

We ran the flow at dinners, not in a critique. One night: a shared pitcher, four entrees, two people who had already sent the wrong amount. Another night: one dead phone, one person who "just had water," garlic bread that four people swore they did not touch.

The question is "is this mine"

Once the pitcher sat on the Center Table and the entrees sat on faces, the argument stopped being division. People pointed at cards. That is the actual question.

Dead phones are normal

If the person with no battery cannot be in the split, you will do the split on paper anyway. Guest profiles on the host device are not a nice-to-have.

Inputs at the top force a stretch

You are holding a receipt in one hand. The thumb lives at the bottom. A field at the top is a form from a desktop.

Cards beat ratios

Moving a soda card to the middle is instant. Typing a split ratio is work you will postpone until you are home, which is how the three calculators come back.

The problem after I built

I thought the hard part was the math. The hard part is the basement. Signal dies, phones die, someone already paid, someone is arguing about bread. The UI has to keep working when half the table is gone.

How do you keep the table going when half the phones are dead and the basement has no signal?

The spatial model

The screen is the table. Center Table is the pitcher, the garlic bread, the pizza everyone had a slice of. My Items is your entree. Faces at the top are people, including guests who never opened the app. Left is the wireframe I started from. Right is a sandbox you can poke.

People in session

Center Table

My items

Add items by typing

You
$6.00
A
$6.50
B
$6.50
C
$6.50
Center Table (Shared) $26.00
My Items $6.00
Total Bill $0.00
Your Share $0.00

Click on user avatars (You, A, B, C) to view their personal tabs. Click on any item card to reassign ownership or split it across the table.

How a bill goes

Host opens the page. Adds people, including guests for the dead phones. Types an item and a price at the bottom of the screen, one thumb, receipt in the other hand. Puts it on Center Table or on a face. Taps a card to move it. Totals update on the faces as you go. People pay however they already pay. TabSplit does not replace UPI. It replaces the three calculators.

In the sandbox above you already did a version of this. Garlic bread and pizza start on the table. The vanilla shake starts as yours. Click a face to see their pile. Click a card to reassign it.

Decisions the dinners forced

Hungry people do not care about your architecture. These three kept coming back.

The math stays on the host phone

Restaurant basements drop signal. TabSplit keeps the math on the host phone. If a friend has no service, or a dead battery, the host adds a guest and assigns their items.

If the host cannot assign for a dead phone, you will do the split on paper. Offline is not a toast. It is the night.

The field sits at the bottom

Forms put the field at the top. Here the item and the price sit in a drawer at the bottom, so one thumb can type while the other hand holds the receipt.

One hand holds the receipt. The other thumb lives at the bottom. A field at the top is a desktop form wearing a phone costume.

Tap a card, or drag it

There is no percent field. You tap an item and pick where it goes. In the app you can also drag the card. A move takes about 200ms.

Moving a soda card to the middle takes a tap. Typing 25% is work you will postpone until you are home.

What's live

The spatial table works. You can add items, assign them, split the middle, and see faces update. Guest profiles and local calc on one device are the parts I would defend first. The sandbox on this page is a thinner copy of that table.

Works

  • Center Table and My Items
  • Tap a card, move it
  • Guest profiles on the host
  • Math stays on one device
  • Input sits in the thumb

Doesn't yet

  • No receipt scan, on purpose
  • Does not send the UPI for you
  • Tax and tip still need a card
  • A ten-person table is crowded on a phone
  • The sandbox here is four faces, not ten

TabSplit replaces the three calculators. It does not replace how you already pay.

What I would not undo

UI problems do not finish at the desk. They finish when hungry people decide who ordered the extra fries. Field rounds were the product. The widgets on this page are leftovers from that impatience.

I would not ship a setup wizard. I would not ask anyone to type 25%. I would not lock the host out when the basement has no signal. Those were the ways the earlier tools punished the night we were actually having.