SplitPro
Open source alternative to Splitwise for splitting group expenses
Alternative to: splitwise, tricount, settle up
v1.6.0-alpha.0
2025-11-11Major changes ahead
⚠⚠⚠ Backup your database before updating and follow the steps below!!! This release is not meant for daily use, stuff will break!
This release will include major database changes, so DB backup is absolutely vital! To make this process as seamless as possible, we have created a new ossapps/postgres image, which is just a regular postgres image with the pg_cron extension installed (source).
DB image update
- Determine your currently used major postgres version using
docker exec -it splitpro-db psql --version - Determine the version of Debian using
docker exec -it splitpro-db cat /etc/os-release - In your
composefile, change the image name frompostgrestoossapp/postgresand add the relevant tag from the ones we have built. The minor versions shouldn’t matter as lons as you match the major version and debian version. - If you encounter issues and require a specific version, ask us in the discussion to build it.
- Add a starting command to your
postgresservice, like in here
New features
- currency conversions are here! Configure one of the providers in the README and start converting group balances and individual expense amount! More features (and docs) will be added during the alpha, such as balance views in preferred currency or user balance conversions
- recurring transactions you can now select a recurrence cron rule on expenses! You will see a new icon in the add expense page with a pop up for setting up these rules (UI refresh is also expected) and manage them from a new tab accessible via the activity page.
- bank transaction import connect a Plaid account to fetch your bank data and convert them into SplitPro expenses directly! Still a bit WIP, but kudos to @alexanderwassbjer !
Breaking changes
This alpha release is mainly focused on testing out not only the new features, but also the breaking changes they carry with them. Apart from the DB image transition:
- moving from expense
cuidtouuid. We needed a postgres native id solution to support recurrent transaction input viapg_cron. Make sure all your transactions are properly carried over. You can usepgAdminorpsqlto query your expense+expense participant tables before and after the migration. Ideas on how to automate this check are welcome - migration to DB calculated balances. Maintaining a balance table proved to be very cumbersome and bug prone once advanced features started being implemented. Instead, we want to rely on the speed of DBMS and utilize a database View for that, treating expenses themselves as the source of truth rather than the surgically updated table. Many thanks to @FriesischScott for the work on this and the benchmarks proving the feasibility of this approach.
Testing
There is a substantial amount of new code and potential polishing required so any testing and feedback (both bugs and LGTM) is very helpful! For the balances, we currently still use the old tables, but on each call a comparison with the view is made and any mismatch is logged as an error by the server. It’s not visible to the user, but I am asking you to run this version for a while and report any errors that may arise. Keep in mind that there are bugs in the current balances, so not every mismatch is a bug in views. In groups you can run recalculate balances to refresh.
Also keep in mind that recurring transactions are not and will not be supported by balance tables (only views).
Detailed changes
- Translations update from Hosted Weblate by @weblate in https://github.com/oss-apps/split-pro/pull/365
- Feat 79 currency rate transactions by @krokosik in https://github.com/oss-apps/split-pro/pull/364
- 1.6 dep updates by @krokosik in https://github.com/oss-apps/split-pro/pull/372
- Locale json merge by @krokosik in https://github.com/oss-apps/split-pro/pull/385
- Add pg cron builds by @krokosik in https://github.com/oss-apps/split-pro/pull/387
- Fix application_name/title translation by @beposec in https://github.com/oss-apps/split-pro/pull/396
- Adding fr (French) locale by @FelixDz in https://github.com/oss-apps/split-pro/pull/405
- Translations update from Hosted Weblate by @weblate in https://github.com/oss-apps/split-pro/pull/404
- Translations update from Hosted Weblate by @weblate in https://github.com/oss-apps/split-pro/pull/399
- Translations update from Hosted Weblate by @weblate in https://github.com/oss-apps/split-pro/pull/398
- Translations update from Hosted Weblate by @weblate in https://github.com/oss-apps/split-pro/pull/397
- Add keycloak as oidc provider and remove non-standard fields from keycloaks response by @beposec in https://github.com/oss-apps/split-pro/pull/395
- fix for Negative expenses with decimals- #370 by @BhaskarKulshrestha in https://github.com/oss-apps/split-pro/pull/403
- Revert “fix for Negative expenses with decimals- #370” by @krokosik in https://github.com/oss-apps/split-pro/pull/408
- Show “No providers configured” on signin page by @ercusz in https://github.com/oss-apps/split-pro/pull/409
- 🚀 Add bank account transaction integration by @alexanderwassbjer in https://github.com/oss-apps/split-pro/pull/132
- 160 recurring expense by @krokosik in https://github.com/oss-apps/split-pro/pull/420
- Translations update from Hosted Weblate by @weblate in https://github.com/oss-apps/split-pro/pull/422
- Translations update from Hosted Weblate by @weblate in https://github.com/oss-apps/split-pro/pull/421
- 401 fix back navigation by @krokosik in https://github.com/oss-apps/split-pro/pull/423
- 400 split equal edit fix by @krokosik in https://github.com/oss-apps/split-pro/pull/424
- Handle negative numbers in bigint conversion by @krokosik in https://github.com/oss-apps/split-pro/pull/425
- Extended seed db by @krokosik in https://github.com/oss-apps/split-pro/pull/430
- Fix receipt missing on edit by @krokosik in https://github.com/oss-apps/split-pro/pull/431
- 366 only show relevant amounts with friends by @krokosik in https://github.com/oss-apps/split-pro/pull/443
- 331 debug info button by @krokosik in https://github.com/oss-apps/split-pro/pull/444
- Translations update from Hosted Weblate by @weblate in https://github.com/oss-apps/split-pro/pull/433
- Translations update from Hosted Weblate by @weblate in https://github.com/oss-apps/split-pro/pull/432
- Translations update from Hosted Weblate by @weblate in https://github.com/oss-apps/split-pro/pull/448
- Translations update from Hosted Weblate by @weblate in https://github.com/oss-apps/split-pro/pull/449
- Fix service worker precache failure by @hrmtc in https://github.com/oss-apps/split-pro/pull/446
- Improve category picker layout by @rodrigost23 in https://github.com/oss-apps/split-pro/pull/472
New Contributors
- @weblate made their first contribution in https://github.com/oss-apps/split-pro/pull/365
- @beposec made their first contribution in https://github.com/oss-apps/split-pro/pull/396
- @FelixDz made their first contribution in https://github.com/oss-apps/split-pro/pull/405
- @BhaskarKulshrestha made their first contribution in https://github.com/oss-apps/split-pro/pull/403
- @ercusz made their first contribution in https://github.com/oss-apps/split-pro/pull/409
- @rodrigost23 made their first contribution in https://github.com/oss-apps/split-pro/pull/472
Last but not least, a huge shoutout to @FelixDz for supporting the project with a donation!
Full Changelog: https://github.com/oss-apps/split-pro/compare/v1.5.7…v1.6.0-alpha.0