A free, ad-free web app for splitting shared expenses among friends and family: track who paid for what, see balances at a glance, and get optimized "who owes whom" settlements. Installable as a Progressive Web App, no account required — groups are shared by link.
This repository is a self-hosted, customized deployment of the open-source Spliit project.
The Spliit application was created by Sébastien Castiel and its contributors. The vast majority of the code in this repository is their work, used gratefully under the MIT License.
This is a personal fork I maintain for self-hosting and customization — it is not the official project. For the original, the hosted instance, or to support the maintainers, please visit:
- 🌐 Official app: spliit.app
- 📦 Upstream repository: github.com/spliit-app/spliit
- 💜 Sponsor Spliit
- Runs on a Neon serverless Postgres backend, deployed on Vercel
- Serverless build hardening — Prisma client generation is split from migrations (
postinstallrunsprisma generateonly; migrations run vianpm run db:migrate) so a cold-starting database can't fail a deploy - Connection strings tuned for Neon's scale-to-zero behavior (
connect_timeout) - Planned: custom visual rebrand and icon
- Create a group and share it with a link — no sign-up
- Expenses with categories, uneven splits, and reimbursements
- Automatic balances and optimized settlement suggestions
- Recurring expenses, expense search, CSV / JSON export
- Progressive Web App, dark mode, and many languages
Next.js · TypeScript · Tailwind CSS · shadcn/ui · Prisma · PostgreSQL (Neon) · tRPC · Vercel
Requires Node.js and a PostgreSQL database (local, or a Neon connection string).
npm install # installs deps and generates the Prisma client
cp .env.example .env # then set POSTGRES_PRISMA_URL / POSTGRES_URL_NON_POOLING
npm run db:migrate # apply the database schema
npm run dev # start the dev server on http://localhost:3000MIT — © 2023 Sébastien Castiel (original Spliit author). Modifications © 2026 Francisco Apraiz.