Lightweight, full-featured and free Splitwise/Tricount alternative.
bida.bid · Self-hosting · Docs
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
This is a personal project, almost entirely written with Claude Code.
The usual stuff, plus:
No accounts. A group is a secret link. Anyone with the link can edit.
Online, or installable PWA. Click the link and you're in. You can also add bida to your Android or iOS device, no app store required.
Works offline. Append-only data model prevents merge conflicts.
End-to-end encrypted. Decryption happens locally via the URL hash. The server only ever sees scrambled ciphertext.
Receipt parsing and itemized splitting. Extracts line items from receipt photos. Grid-like UI for assigning who-had-what.
Quick split. Run a scan and assign items without creating a group. Screenshot the summary or copy a text version.
Auditable edit history. If you don't trust your friends.
Splitwise import and export.
Dark mode.
I put some love into this. Core logic is well tested, and the UI/UX have been polished and debugged with care. Have a look at CLAUDE.md to see the development setup, or at docs/claude_corner.md to see what the AI thinks about its own work.
Next.js static export · hand-written CSS · Dexie/IndexedDB · Cloudflare Worker + D1.
The core functionality is hosted for free on Cloudflare. The LLM-powered receipt scanning is very cheap and funded by a tip jar.
If you want even more privacy, or you'd like to hook up your own Gemini API key for unlimited scans, bida is relatively easy to self-host.
bida is very young and only tested on a couple of devices. Drop me a bug report, a PR, or an email!
TypeScript
78.9%
JavaScript
14.8%
CSS
5.9%
Lightweight, full-featured and free Splitwise/Tricount alternative.
bida.bid · Self-hosting · Docs
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
This is a personal project, almost entirely written with Claude Code.
The usual stuff, plus:
No accounts. A group is a secret link. Anyone with the link can edit.
Online, or installable PWA. Click the link and you're in. You can also add bida to your Android or iOS device, no app store required.
Works offline. Append-only data model prevents merge conflicts.
End-to-end encrypted. Decryption happens locally via the URL hash. The server only ever sees scrambled ciphertext.
Receipt parsing and itemized splitting. Extracts line items from receipt photos. Grid-like UI for assigning who-had-what.
Quick split. Run a scan and assign items without creating a group. Screenshot the summary or copy a text version.
Auditable edit history. If you don't trust your friends.
Splitwise import and export.
Dark mode.
I put some love into this. Core logic is well tested, and the UI/UX have been polished and debugged with care. Have a look at CLAUDE.md to see the development setup, or at docs/claude_corner.md to see what the AI thinks about its own work.
Next.js static export · hand-written CSS · Dexie/IndexedDB · Cloudflare Worker + D1.
The core functionality is hosted for free on Cloudflare. The LLM-powered receipt scanning is very cheap and funded by a tip jar.
If you want even more privacy, or you'd like to hook up your own Gemini API key for unlimited scans, bida is relatively easy to self-host.
bida is very young and only tested on a couple of devices. Drop me a bug report, a PR, or an email!
TypeScript
78.9%
JavaScript
14.8%
CSS
5.9%