Simple trip expense splitter for groups.
split-it is a web app to manage shared trip expenses. You create a trip, add people, track who paid, and see who owes whom.
- Create and manage trips
- Add members to each trip
- Add expenses with categories and notes
- Split expenses by equal, exact amount, percent, or shares
- Multi-currency expense support with exchange rate conversion
- Live balances and suggested settlements
- Manual settlement/payment records
- Realtime sync with PocketBase
- Mobile-friendly UI and installable PWA
- Export trip data as CSV
Prerequisites:
- Node.js 18+
- A running PocketBase instance
Install dependencies:
npm installBuild the app:
npm run buildNotes:
- Edit
app.jsxas source app.jsis generated bybuild.mjs
- Source of truth: make code changes in
app.jsx, then rebuild to regenerateapp.js. - FX rates: exchange rates are fetched automatically for conversion, and can be manually overridden when needed.
- Cache busting: after rebuild/deploy, bump the
app.js?v=value inindex.htmlso users get the latest bundle.
- Build once:
npm run build- Update config in
index.html(window.SPLITIT_CONFIG), especially:
pocketbaseUrlcollectionPrefix(default:splitit_)defaultCurrency
- Serve the folder with any static server:
npx serve .- Open the local URL shown by the server.
- Start your own PocketBase server.
- Import schema from
pb_schema.json. - Set
window.SPLITIT_CONFIG.pocketbaseUrlinindex.htmlto your PocketBase URL. - Build and deploy the static files (
index.html,app.js,manifest.webmanifest,icons/) to any static host.