DEV Community

selfhosting.sh
selfhosting.sh

Posted on • Originally published at selfhosting.sh

Splitwise

Why Replace Splitwise?

Splitwise knows exactly how you split dinner, who owes what on the electricity bill, and how much your housemate spent on groceries last Tuesday. It's a detailed financial profile of your relationships — stored on someone else's servers.

Beyond privacy, Splitwise has been progressively paywalling features. Splitwise Pro ($4.99/month or $49.99/year) gates receipt scanning, currency conversion, chart visualizations, search, and more. Features that were free in 2020 now cost money.

Concern Splitwise Self-Hosted
Monthly cost Free (limited) / $4.99/mo (Pro) $0
Annual cost $0-50/year $0
Data location Splitwise's cloud Your server
Ads Yes (free tier) No
Receipt scanning Pro only Varies by app
Currency conversion Pro only Available
Search expenses Pro only Available
Privacy Third-party access Full control

Best Alternatives

IHateMoney — Best Overall Replacement

IHateMoney does exactly what Splitwise does — track shared expenses in a group and calculate who owes whom. No accounts needed. Create a project with a shared link, add expenses, and the app calculates the simplest settlement plan.

What matches Splitwise:

  • Add expenses with payer and participants
  • Automatic debt simplification (minimizes number of transfers)
  • Multi-currency support
  • Project-based groups (one per trip, household, etc.)
  • No registration required — just a project name and password

What's different:

  • No mobile app (responsive web UI only)
  • No receipt scanning
  • Simpler UI — functional, not pretty
  • No push notifications for new expenses

Setup:

services:
  ihatemoney:
    image: ihatemoney/ihatemoney:7.0.1
    container_name: ihatemoney
    environment:
      - IHATEMONEY_SETTINGS_FILE_PATH=/etc/ihatemoney/ihatemoney.cfg
    volumes:
      - ./data:/database
      - ./ihatemoney.cfg:/etc/ihatemoney/ihatemoney.cfg:ro
    ports:
      - "8000:8000"
    restart: unless-stopped
Enter fullscreen mode Exit fullscreen mode

Create ihatemoney.cfg:

# IHateMoney configuration
SQLALCHEMY_DATABASE_URI = "sqlite:////database/ihatemoney.db"
SECRET_KEY = "change-this-to-a-random-string"
ALLOW_PUBLIC_PROJECT_CREATION = True
Enter fullscreen mode Exit fullscreen mode

One container, ~30 MB RAM. Create a project, share the URL, start splitting. Read our full guide: How to Self-Host IHateMoney

Firefly III — Best for All-in-One Finance

If you want expense splitting as part of a complete personal finance system, Firefly III handles shared expenses through its split transaction feature and tagging system. It's not purpose-built for Splitwise-style group splitting, but if you already run Firefly III for budgeting, you can track shared expenses within the same system.

Best for people who want one financial tool instead of multiple specialized apps. Read our full guide: How to Self-Host Firefly III

Actual Budget — Best Budget-First Approach

Actual Budget can track shared expenses through categories and payees, though it doesn't calculate settlement balances automatically. Pair it with IHateMoney — use Actual Budget for personal budgeting and IHateMoney for group expense splitting. Read our full guide: How to Self-Host Actual Budget

Cost Comparison

Splitwise Free Splitwise Pro IHateMoney
Monthly cost $0 $4.99/month $0
Annual cost $0 $49.99/year $0
3-year cost $0 $150 $0
Ads Yes No No
Receipt scanning No Yes No
Charts No Yes Yes (basic)
Search No Yes Yes
Currency conversion No Yes Yes
Data ownership No No Yes

Migration Guide

Exporting from Splitwise

  1. Log in to Splitwise on the web
  2. Go to Account SettingsExport Data
  3. Download your expense history as CSV
  4. Each group exports separately

Importing into IHateMoney

IHateMoney supports CSV import:

  1. Create a new project in IHateMoney matching your Splitwise group
  2. Reformat the Splitwise CSV to match IHateMoney's expected columns (date, description, payer, amount, participants)
  3. Import via the project settings

Manual entry is also fast for active groups — most people have 5-20 expenses per month per group.

What You Give Up

Native mobile apps. Splitwise's iOS and Android apps are polished and purpose-built. IHateMoney is web-only — functional on mobile browsers but not as convenient for quick expense entry at the register.

Push notifications. Splitwise notifies group members when expenses are added. Self-hosted alternatives rely on manual checking or email notifications you'd need to configure yourself.

Receipt scanning. Splitwise Pro scans receipts and extracts amounts automatically. No self-hosted expense splitter has this feature — you'll type amounts manually.

Friend network. Splitwise maintains persistent debts across groups and over time. IHateMoney treats each project independently — settling up in one project doesn't affect balances in another.

Simplicity. Splitwise is "download app, create group, add expense." Self-hosted requires deploying a container and sharing a URL. For a group of non-technical housemates, this is a real friction point.

Frequently Asked Questions

Can I import my Splitwise expense history into IHateMoney?

Yes, with reformatting. Export your Splitwise data as CSV (Account Settings → Export Data), then reformat the columns to match IHateMoney's expected format: date, description, payer, amount, and participants. IHateMoney supports CSV import through project settings. You'll need to create a project for each Splitwise group and import them separately. For small groups with recent activity, manual entry may be faster than reformatting the CSV.

Does IHateMoney have a mobile app?

No native app — IHateMoney is web-only with a responsive interface that works in mobile browsers. You can add it to your home screen as a PWA for quick access. The mobile experience is functional for viewing balances and adding expenses, but it lacks the polished tap-to-add workflow of Splitwise's native apps. For groups where quick expense entry at the register matters, this is the biggest trade-off.

Can multiple groups share the same IHateMoney instance?

Yes. Each IHateMoney "project" is independent with its own URL, password, and participants. You can run as many projects as you want on a single instance — one for your household, another for a trip, another for office lunches. Projects don't interact with each other. There's no cross-project debt tracking like Splitwise's friend-level balances, but each group works independently without issue.

How does IHateMoney handle different currencies?

IHateMoney supports multi-currency expenses within a single project. When adding an expense, you can specify the currency. The settlement calculation handles conversion based on rates you set. It's not as automatic as Splitwise Pro's real-time currency conversion, but it works for trips where expenses happen in mixed currencies. Set the exchange rate manually when adding the expense.

Is IHateMoney secure enough for financial data?

IHateMoney protects projects with a shared password — anyone with the project ID and password can view and add expenses. There's no per-user authentication or audit trail. For household expense splitting, this is fine. For anything involving sensitive financial data, pair it with a reverse proxy that adds proper authentication (OAuth2, basic auth). The data itself is stored in a SQLite database on your server, so you control access at the infrastructure level.

Can I self-host Splitwise itself instead of using an alternative?

No. Splitwise is a proprietary, closed-source application with no self-hosted option. The only way to use Splitwise is through their cloud service. IHateMoney is the closest open-source equivalent in terms of functionality — shared expense tracking with automatic debt simplification. If you need features IHateMoney lacks (receipt scanning, push notifications), you'll need to combine multiple tools or accept those limitations.

Related

Top comments (0)