Spliit

Open-source group expense sharing app

Budgeting & Finance ★ 3k stars Easy setup MIT

Spliit is a free, open-source application for sharing expenses with friends and family. Built with Next.js, it lets groups track who paid for what and settle balances without an account.

Key features

  • No account required
  • Group expense tracking
  • Balance settlement suggestions
  • Receipt image upload

Pros & cons

Strengths

  • Clean modern UI
  • Quick to set up

Trade-offs

  • Newer project
  • Limited reporting

Spliit replaces

Last reviewed Sep 13, 2026 · 809 words

Spliit has no user accounts, which is both why a group of friends will actually use it and why you should think for 30 seconds before exposing it to the internet: the group URL is the password. Anyone who has the link can add, edit or delete expenses. For a holiday with six people that is a feature. For a flat share where one person is likely to fall out with the others, it is something to plan around.

You create a group, name the participants, and share a URL. Each person opens it, picks which participant they are, and adds expenses: who paid, how much, who it was for, split equally or by shares, percentages or exact amounts. Balances update live and the "reimbursements" view tells everyone the minimum set of transfers to settle up. No sign-up, no email verification, no app store. Compared with Splitwise, where the free tier rate-limits how many expenses you can add per day at last check, that friction-free flow is the whole pitch, and it is why the Splitwise alternatives page keeps pointing here.

The price is that the link is the only credential. Spliit has no per-user auth, no admin role, no audit log beyond an activity feed. Put it behind your VPN if the group is household-only, or accept that a leaked URL means a stranger can edit numbers, and keep it to low-stakes groups.

Two containers, three environment variables

Spliit is a Next.js app with a required Postgres database. The repository ships a compose file, and the meaningful configuration is short:

services:
  spliit:
    image: ghcr.io/spliit-app/spliit:latest
    environment:
      - POSTGRES_PRISMA_URL=postgresql://spliit:spliit@db:5432/spliit
      - POSTGRES_URL_NON_POOLING=postgresql://spliit:spliit@db:5432/spliit
      - NEXT_PUBLIC_BASE_URL=https://split.example.com
    ports:
      - "3000:3000"
    depends_on:
      - db
    restart: unless-stopped
  db:
    image: postgres:16-alpine
    environment:
      - POSTGRES_USER=spliit
      - POSTGRES_PASSWORD=spliit
      - POSTGRES_DB=spliit
    volumes:
      - ./pg-data:/var/lib/postgresql/data
    restart: unless-stopped

Change the database password, put a reverse proxy in front, and you are done. The app runs the Prisma migrations on start. Memory use is modest: the catalogue's 256 MB minimum is realistic for the app container, and Postgres adds roughly the same. If you already run one Postgres instance for everything (the Postgres for everything approach), point Spliit at a new database on it and skip the second container.

Backups are one command: pg_dump of the database. All groups, expenses and balances live there, and nothing else on disk matters.

Receipts and AI extraction are optional extras

Two features are off by default and need external services. Expense document upload stores receipt photos in an S3-compatible bucket, so you supply bucket credentials; MinIO or Garage on the same box works. Receipt extraction reads the photo with an OpenAI-compatible vision model and pre-fills the amount, date and category, and needs an API key. Both are conveniences for people who file 50 receipts a trip; a couple splitting groceries can leave them off and the app loses nothing.

Limited reporting is the real gap

Spliit tells you balances and settlement transfers, and shows totals per group with a category breakdown. It does not do multi-group reporting, recurring expenses with proper schedules, currency conversion, or exports beyond the basics. It is a settlement tool, not a budget. If what you actually want is to know where your money goes each month, that is Actual Budget or Firefly III, and Spliit sits beside them rather than replacing either. The finance category separates the two jobs clearly.

The other honest note is age: first released in 2023, so it is a young project with a small maintainer team. Development has been steady and the codebase is small enough to read, but expect occasional rough edges in less-used split modes.

Against IHateMoney

IHateMoney is the long-standing Python equivalent with the same link-based groups, plus per-project passwords and a simpler, older interface. If you want a password on the group rather than relying on URL secrecy, it has that today. Spliit wins on interface, mobile layout, split flexibility and the receipt features. For most new installs I would pick Spliit and control access with the network instead.

What I'd do

Run the compose above on the same Postgres you already have, behind a reverse proxy with TLS, reachable over Tailscale for household groups and publicly only for a trip with people who will not all be on your VPN. Leave receipt upload off until someone asks. Treat every group as disposable: settle up, export or screenshot the totals, and archive it. Used like that, Spliit is the best replacement for Splitwise that you can run on a 256 MB container.

Compare Spliit

2 head-to-head comparisons.

Similar budgeting & finance apps