We built a Splitwise alternative where the link is the account
说明与用途
一个无需注册的共享费用应用使用唯一链接作为 bearer 令牌,实现即时访问、离线模式、精确计算和安全实时更新。
问题
Users avoid creating accounts, so the app needed a single URL that served as invite, login, and data key.
结果
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.
工作流
- 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.
证据
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.
- 记录日期: 2026-09-22T14:15:29.373Z