Open source · Self-hosted
Self-hosted expense splitting for couples & housemates.
The open-source Splitwise alternative you host yourself. One Docker container, your data, no subscription.




Yours to host
Deploy with a single docker compose up. PostgreSQL and the app in one stack, no reverse proxy, no third-party servers.
Private by default
Your financial data stays on your infrastructure. No analytics, no tracking. AI receipt scanning is optional and off by default.
Portable
Import from Splitwise or Cospend. Export to CSV anytime. Your data is never locked in.
Installable
Add it to your home screen as a PWA. Works as a standalone app on your phone or desktop.
Everything you actually need to split costs
No bloat. Just the features that matter for sharing expenses with people you trust.
Receipt scanning
Optional AI receipt parsing via any OpenAI-compatible endpoint. Prefills amount, date, category, and payment mode.
Flexible splits
Split equally, by custom amounts, or with aliases for subgroups within a group.
Balances & suggestions
See who owes what at a glance, with minimized-transfer settlement suggestions.
Groups & members
Create groups, invite members by email, assign roles. Built for two people or a small group.
Stats & charts
Category, monthly, and per-member breakdowns to understand where the money goes.
CSV import & export
Migrate from Splitwise or Cospend without losing history. Export everything to CSV.
Two-factor auth
TOTP 2FA with backup codes. JWT auth with refresh rotation and account lockout.
Multi-language
English and Italian today, with locale-parity enforced at build time.
Admin panel
Manage users, roles, and pending invitations. Revoke tokens when needed.
Snap a receipt, let AI do the rest
Optional AI receipt scanning prefills the amount, date, category, and payment mode, so you don't have to. Bring your own OpenAI-compatible endpoint, or keep it off. Your data, your choice.
Instant prefill
Capture a receipt and the amount, date, category, and payment mode are extracted and ready to review.
Any AI endpoint
Works with any OpenAI-compatible API, cloud, self-hosted, or a local LLM. You pick the provider.
Private by default
Receipt scanning is optional and off by default. No data leaves your server unless you enable it.
Optimized uploads
Images are compressed client-side before upload, capped at 5MB. Rate-limited to keep costs predictable.
Compare
SplitDuo vs Splitwise vs Cospend
The open-source Splitwise alternative you host yourself. No subscription, no vendor account, no Nextcloud required.
| SplitDuo | Splitwise | Cospend | |
|---|---|---|---|
| Open source | yes | no | yes |
| Self-hosted | yes | no | Needs Nextcloudpartial |
| Free | yes | Freemiumpartial | yes |
| No vendor account required | yes | no | yes |
| AI receipt scanning | yes | Pro onlypartial | no |
| Mobile app | PWApartial | Nativepartial | no |
| CSV import & export | yes | Export onlypartial | yes |
| Two-factor authentication | yes | Fingerprint onlypartial | Via Nextcloudpartial |
| Multi-language | yes | yes | yes |
Built on a modern, boring-in-the-good-way stack
Stable tools, clean architecture, and no surprises.
Backend
Frontend
Deploy
Frequently asked questions
Everything you need to know before self-hosting SplitDuo.
Is SplitDuo free?
Yes. SplitDuo is completely free and open source under the MIT license. No subscription, no premium tier, no feature gating. You only pay for the server you run it on.
How do I self-host SplitDuo?
Clone the repository and run docker compose up. SplitDuo ships as a single Docker container with PostgreSQL included in the stack, no reverse proxy or third-party servers required. It runs as a non-root user.
Is AI receipt scanning private?
Receipt scanning is optional and off by default. You bring your own OpenAI-compatible endpoint, cloud, self-hosted, or a local LLM. No receipt data leaves your server unless you enable it, and images are compressed client-side before upload.
Can I migrate from Splitwise or Cospend?
Yes. Import your history from Splitwise or Cospend via CSV, and export everything back to CSV at any time. Your data is never locked in.
Where is my financial data stored?
On your own infrastructure, in the PostgreSQL database inside your Docker stack. There is no analytics, no tracking, and no third-party server involved.
How many people can use one group?
SplitDuo is built for two people or small groups: couples, housemates, travel companions. Invite members by email, assign roles, and use aliases to split expenses across subgroups within a group.
Does SplitDuo support two-factor authentication?
Yes. SplitDuo supports TOTP 2FA with backup codes, JWT authentication with refresh-token rotation, and account lockout protection.
Is there a mobile app?
SplitDuo is an installable PWA. Add it to your phone or desktop home screen and it works as a standalone app, no app store required.
Up and running in one command
Clone the repo, run the compose stack, and log in.
$ git clone https://github.com/c4mbr0nn3/splitduo.git
$ cd splitduo
$ docker compose up -dThen open http://localhost:3000 and log in with your admin credentials.