Open source alternative to Splitwise
See the codeSplitPro is a self-hosted, open source way to share expenses with friends. It is designed as a replacement for Splitwise.
.env.example to .env and configure auth, database, and uploads.See docker/README.md and docs/CONFIGURATION.md for the full setup steps.



Create expenses with categories, currencies, dates, and receipt attachments. SplitPro supports negative expenses for refunds and corrections. View per-person balances, detailed group balances, and an activity feed that includes edits and deletions.
SplitPro is a PWA and that is the recommended way to use the app. It supports push notifications for new expenses and updates, but push delivery requires additional configuration. See docs/CONFIGURATION.md.
Groups are the primary way to use SplitPro. You can invite friends by email, or add them directly if they are already in your friends list. Group debt simplification is optional, and the group balance view provides a detailed breakdown.
Splitwise import supports friends and groups (partial import). Expenses themselves are not imported yet. You can export data from the balances view and account settings.
Translations are managed in Weblate. When a language reaches 100%, it is enabled in the next update.
SplitPro uses NextAuth. At least one provider must be configured.
Username/password login is not supported. You can lock down an instance by disabling signups and invites. See docs/CONFIGURATION.md and docs/AUTHENTICATION.md for details.
SplitPro can display balances in a single currency, convert expense amounts, and convert group balances. Provider availability and rate limits depend on the configured rate provider. See docs/CURRENCY_CONVERSIONS.md.
Recurring expenses require a PostgreSQL database with the pg_cron extension. We publish a prebuilt Postgres image with pg_cron; example usage is in docker/prod/compose.yml. If you use another database, you must enable the extension and adjust configuration. A non-superuser database role is supported when pg_cron is preinstalled; see docker/README.md. See docs/RECURRING_TRANSACTIONS.md.
Bank integration allows you to load transactions from providers like Plaid and convert them into expenses. This feature was provided by @alexanderwassbjer, who is currently maintaining related issues. See docs/BANK_TRANSACTIONS.md.
pg_cron, which does not support cron ranges or lists.SplitPro is for self hosting. To get the most recent features, build an image from source. Stabilized changes (GitHub releases) are available as Docker images on DockerHub and GHCR. The hosted instance at https://splitpro.app is managed in oss-apps/split-pro-cloud.
Splitwise is one of the best apps to add expenses and bills.
We understand that every app needs to make money, after all, lots of effort has been put into Splitwise. The main problem is how they implemented this.
Monetising on pro features or ads is fine, but asking money for adding expenses (core feature) is frustrating.
We were searching for other open-source alternatives (Let's be honest, any closed-source product might do the same and we don't have any reason to believe otherwise).
We managed to find a good app spliit.app by Sebastien Castiel but it's not a complete replacement and didn't suit my workflow sadly. Check it out to see if it fits you.
The app translations are managed using a Weblate project. You can easily add missing translations, fix issues you find and a new language! Just be aware that a new language also needs to be added in the code and open an issue for that once you finish translating the files. Here is the current state of translation:
All numbers are stored in the DB as BigInt data, with no floats what so ever, safeguarding your expenses from rounding errors or lack of precision. This holds true for currencies with large nominal values that might outgrow the safe range of JS number type.
In case of an expense that cannot be split evenly, leftover amounts are distributed deterministically across participants, based on amount and date.
See docs/CURRENCY_CONVERSIONS.md for provider details and limits.
We provide Docker images on DockerHub and GHCR.
For setup instructions, see docker/README.md. For environment variables, see docs/CONFIGURATION.md.
Thanks to @johanngrobe there is now also a Proxmox Community Script available here.
See the CONTRIBUTING.md document.
We are grateful for the support of our sponsors.
859 followers · starred Apr 2024
79 followers · starred May 2026
51 followers · starred Jan 2025
2,546 followers · starred Oct 2025
Open source alternative to Splitwise
See the codeSplitPro is a self-hosted, open source way to share expenses with friends. It is designed as a replacement for Splitwise.
.env.example to .env and configure auth, database, and uploads.See docker/README.md and docs/CONFIGURATION.md for the full setup steps.



Create expenses with categories, currencies, dates, and receipt attachments. SplitPro supports negative expenses for refunds and corrections. View per-person balances, detailed group balances, and an activity feed that includes edits and deletions.
SplitPro is a PWA and that is the recommended way to use the app. It supports push notifications for new expenses and updates, but push delivery requires additional configuration. See docs/CONFIGURATION.md.
Groups are the primary way to use SplitPro. You can invite friends by email, or add them directly if they are already in your friends list. Group debt simplification is optional, and the group balance view provides a detailed breakdown.
Splitwise import supports friends and groups (partial import). Expenses themselves are not imported yet. You can export data from the balances view and account settings.
Translations are managed in Weblate. When a language reaches 100%, it is enabled in the next update.
SplitPro uses NextAuth. At least one provider must be configured.
Username/password login is not supported. You can lock down an instance by disabling signups and invites. See docs/CONFIGURATION.md and docs/AUTHENTICATION.md for details.
SplitPro can display balances in a single currency, convert expense amounts, and convert group balances. Provider availability and rate limits depend on the configured rate provider. See docs/CURRENCY_CONVERSIONS.md.
Recurring expenses require a PostgreSQL database with the pg_cron extension. We publish a prebuilt Postgres image with pg_cron; example usage is in docker/prod/compose.yml. If you use another database, you must enable the extension and adjust configuration. A non-superuser database role is supported when pg_cron is preinstalled; see docker/README.md. See docs/RECURRING_TRANSACTIONS.md.
Bank integration allows you to load transactions from providers like Plaid and convert them into expenses. This feature was provided by @alexanderwassbjer, who is currently maintaining related issues. See docs/BANK_TRANSACTIONS.md.
pg_cron, which does not support cron ranges or lists.SplitPro is for self hosting. To get the most recent features, build an image from source. Stabilized changes (GitHub releases) are available as Docker images on DockerHub and GHCR. The hosted instance at https://splitpro.app is managed in oss-apps/split-pro-cloud.
Splitwise is one of the best apps to add expenses and bills.
We understand that every app needs to make money, after all, lots of effort has been put into Splitwise. The main problem is how they implemented this.
Monetising on pro features or ads is fine, but asking money for adding expenses (core feature) is frustrating.
We were searching for other open-source alternatives (Let's be honest, any closed-source product might do the same and we don't have any reason to believe otherwise).
We managed to find a good app spliit.app by Sebastien Castiel but it's not a complete replacement and didn't suit my workflow sadly. Check it out to see if it fits you.
The app translations are managed using a Weblate project. You can easily add missing translations, fix issues you find and a new language! Just be aware that a new language also needs to be added in the code and open an issue for that once you finish translating the files. Here is the current state of translation:
All numbers are stored in the DB as BigInt data, with no floats what so ever, safeguarding your expenses from rounding errors or lack of precision. This holds true for currencies with large nominal values that might outgrow the safe range of JS number type.
In case of an expense that cannot be split evenly, leftover amounts are distributed deterministically across participants, based on amount and date.
See docs/CURRENCY_CONVERSIONS.md for provider details and limits.
We provide Docker images on DockerHub and GHCR.
For setup instructions, see docker/README.md. For environment variables, see docs/CONFIGURATION.md.
Thanks to @johanngrobe there is now also a Proxmox Community Script available here.
See the CONTRIBUTING.md document.
We are grateful for the support of our sponsors.
859 followers · starred Apr 2024
79 followers · starred May 2026
51 followers · starred Jan 2025
2,546 followers · starred Oct 2025