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.
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."
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."
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.
Pays one person. Does not decide who owes what. The fight happens before you open it, on paper or in three calculator apps.
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.
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.
A few of these still look smart on a slide. They died at a table with a receipt that was already greasy.
Basements, glare, faded thermal paper, a total that includes service the restaurant already rounded. A wrong scan is worse than typing fries and 180.
Typing 25% is the ledger again. Nobody at the table thinks in percents. They think "that's mine" or "we all had that."
Names, emails, confirm. The person with 4% battery leaves. The night is over and you have a half-built group.
Restaurant basements eat signal. Dead phones are normal. If the host cannot add a guest and assign for them, the design is unfinished.
Splitting a bill should feel like moving sticky notes, not filing a transaction.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Hungry people do not care about your architecture. These three kept coming back.
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.
TabSplit replaces the three calculators. It does not replace how you already pay.
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.