За какво ти е
- Вечеря с приятели, на която всеки е поръчал различно и никой не иска да дели поравно.
- Един плаща с картата, а останалите му връщат парите с Revolut или по IBAN.
- Голяма маса и дълга бележка: всеки отбелязва своите редове от собствения си телефон.
Защо го направих
На всяка обща вечеря идва един и същи момент: носят сметката и някой започва да смята. Поравно е лесно, но рядко е честно. Приложенията за общи разходи искат от всички акаунт и ръчно въвеждане. Исках домакинът да снима бележката, да прати линк в групата и всеки сам да отбележи своето, без регистрация. Оставих настрана всичко, което не е за масата: групи, дългове във времето, валути.
Какво не прави. Работи с една сметка наведнъж. Не следи кой на кого дължи от миналия месец и няма да го прави.

Как е направено
- Сървърът избира бройката. Когато двама натиснат „+“ на една и съща бира едновременно, всеки получава отделна бройка. Сблъсъкът е невъзможен по конструкция, а не хванат с проверка.
- Стотинките отиват при първите места по ред, така че прегледът и крайната сума винаги съвпадат до цент.
- Снимката на бележката става редове. Снимки, които скенерът не може да разчете, се отказват веднага, вместо да дадат грешни суми.
- Плащанията минават през Stripe, защото Clerk Billing не поддържа 3DS и работи само в долари. Целият платен план стои зад един превключвател.
- TanStack Start
- Convex
- Сметката е обща и жива: когато един вземе бира, другите го виждат веднага.
- Clerk
- Акаунт има само домакинът. Гостите влизат с линк.
- Stripe
- Платеният план минава през Stripe Managed Payments и засега е изключен.
- PWA
Къде е сега
Работи на живо и го изпипвам: последните промени са поправки след подробен QA одит. Платеният план е готов, но изключен.
