We built a Splitwise alternative where the link is the account
Описание и применение
Создана альтернатива Splitwise без регистрации: один URL‑ссылка служит как приглашение, аутентификация и ключ доступа. Приложение использует BigInt для точных расчётов, фиксирует FX‑курсы при вводе, работает офлайн и обновляется через SSE, при этом не раскрывает данные.
Задача
Users avoid creating accounts; need a single link that invites, authenticates, and stores data.
Результат
A zero‑account split‑tracking app that uses a single link as bearer credential, ensures precise money handling, locks FX rates, supports offline usage, and leaks no data via realtime updates.
Рабочий процесс
- Generate 16‑byte random key, base64url‑encode, append to readable stem to form URL
- Treat URL as bearer credential; no recovery or owner override
- Store money amounts as strings + BigInt; use deterministic remainder distribution
- Lock FX rates at entry; fetch rates via same‑origin route
- Queue new expenses offline; replay when online; limit features to avoid CRDT complexity
- Use SSE to notify clients of changes; clients refetch data; stream carries no room data
- Route push, FX, receipt model through allow‑listed proxy; no egress from containers
Доказательства
The link is a bearer credential. 16 random bytes, base64url, appended to a readable stem. No recovery, no owner override. Treat it like a key.
Money as strings + BigInt. A Number never touches an amount except for display. Equal splits hand out remainders deterministically.
FX locked at entry. Editing an expense never re‑prices history. Rates are fetched through a same‑origin route so the browser never talks to a second host.
- Дата записи: 2026-09-15T13:45:28.553Z