Skip to content

Endika/EventSplit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

322 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EventSplit

Split event expenses fairly with friends — no login, real-time, offline-first.

Try it now →

Latest release CI Last commit Conventional Commits License: MIT

What you can do

  • Create an event in seconds — no signup, no email.
  • Share the URL with friends. They identify themselves on first visit; one click to "I'm new" or pick from the list.
  • Add purchases with per-person consumption multipliers. The app calculates the total to buy.
  • Add expenses. The app computes who owes whom and shows the shortest settlement plan.
  • Works offline for reading. Syncs live across devices when online.
  • Install it as a PWA on your phone or laptop.
  • Three languages: English, Spanish, Basque.

How to start

  1. Open EventSplit on any device.
  2. Tap Create event, name it, and add your name.
  3. Share the URL.

Install on your device

Open the URL in Chrome, Edge or Safari and use "Add to Home Screen" (mobile) or "Install" (desktop). Behaves like a native app and works offline by design.

Privacy

No login. Your name (and optional nickname) live in your browser's localStorage. Event data syncs through Supabase (Europe-hosted, encrypted in transit). Anyone with the event URL can read and edit it — keep the link private to your group. No analytics, no tracking, no cookies (except your language preference).


For developers

Open-source, MIT licensed. PRs welcome.

Stack — TypeScript (strict), React 18, Vite, Tailwind CSS, Supabase (Postgres + Realtime), vite-plugin-pwa, i18next, Vitest.

Architecture — Hexagonal (domain → application → infrastructure → presentation). DI via a small hand-rolled container. Tests use in-memory fakes — no DB mocks.

Local dev

git clone git@github.com:Endika/EventSplit.git
cd EventSplit
cp .env.example .env.local   # fill VITE_SUPABASE_URL + VITE_SUPABASE_ANON_KEY
npm install
npm run dev

CI runs lint, typecheck, tests and the production build on every PR.

About

Plan group events and split the costs fairly — availability poll, shared shopping list and expense settlement. Real-time PWA, no login. TypeScript + Supabase. 6 languages.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages