We built a Splitwise alternative where the link is the account
Description and use
A no‑account shared expense app uses a unique link as a bearer credential, enabling instant access, offline mode, precise calculations, and secure real‑time updates.
Problem
Users avoid creating accounts, so the app needed a single URL that served as invite, login, and data key.
Outcome
The app achieves zero‑account shared expense management with secure, deterministic splits, offline support, and real‑time updates, all while keeping the system simple and open‑source.
Workflow
- Generate a 16‑byte random key, base64url‑encode it, and append to a readable stem to form the room URL.
- Share the URL; recipients use it as a bearer credential to access the room.
- All monetary amounts are stored as strings with BigInt for precision; splits are deterministic.
- FX rates are locked at entry and fetched via same‑origin route to avoid external calls.
- New expenses are queued offline and replayed when online; edits require a connection.
- Realtime updates use SSE that only signals changes; clients refetch data.
- All external egress is routed through an allow‑listed proxy; containers cannot reach the internet directly.
- The app is free, with no paid tier or feature gates, and is AGPL‑licensed to keep forks open.
Evidence
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.
Realtime that leaks nothing. SSE sends "something changed", the client refetches. The stream itself carries no room data.
- Record date: 2026-09-22T14:15:29.373Z