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.

SplitDuo mobile dashboard showing group expenses and balances

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.

SplitDuoSplitwiseCospend
Open sourceyesnoyes
Self-hostedyesnoNeeds Nextcloudpartial
FreeyesFreemiumpartialyes
No vendor account requiredyesnoyes
AI receipt scanningyesPro onlypartialno
Mobile appPWApartialNativepartialno
CSV import & exportyesExport onlypartialyes
Two-factor authenticationyesFingerprint onlypartialVia Nextcloudpartial
Multi-languageyesyesyes

Built on a modern, boring-in-the-good-way stack

Stable tools, clean architecture, and no surprises.

Backend

.NET 10
EF Core
PostgreSQL

Frontend

Nuxt
NuxtUI
Tailwind

Deploy

Docker

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 -d

Then open http://localhost:3000 and log in with your admin credentials.