Skip to content

Repository files navigation

split-it

Simple trip expense splitter for groups.

What this app is

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.

Features

  • 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

Development

Prerequisites:

  • Node.js 18+
  • A running PocketBase instance

Install dependencies:

npm install

Build the app:

npm run build

Notes:

  • Edit app.jsx as source
  • app.js is generated by build.mjs

Important notes

  • Source of truth: make code changes in app.jsx, then rebuild to regenerate app.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 in index.html so users get the latest bundle.

Run locally

  1. Build once:
npm run build
  1. Update config in index.html (window.SPLITIT_CONFIG), especially:
  • pocketbaseUrl
  • collectionPrefix (default: splitit_)
  • defaultCurrency
  1. Serve the folder with any static server:
npx serve .
  1. Open the local URL shown by the server.

Run your own instance

  1. Start your own PocketBase server.
  2. Import schema from pb_schema.json.
  3. Set window.SPLITIT_CONFIG.pocketbaseUrl in index.html to your PocketBase URL.
  4. Build and deploy the static files (index.html, app.js, manifest.webmanifest, icons/) to any static host.

About

Splitwise-style trip expense splitter - React 18 UMD + PocketBase, single static page

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages