SplitSimple is a modern billsplitting tool built with Next.js, TypeScript, Tailwind, and Redis. It keeps everyone in sync while you divide receipts line-by-line.
- Per-item splitting (even, shares, percent, exact) with penny-safe math
- Tax/tip/discount allocation (proportional or even)
- Auto-save to local storage + optional cloud share links (Redis)
- Undo/redo history, keyboard shortcuts, and CSV/export summaries
- Responsive UI with a dedicated mobile workflow
- Node.js 18+
- pnpm 9+
- Redis URL (for sharing) stored in
.env.localasREDIS_URL
pnpm install
pnpm dev
# open http://localhost:3000Helpful scripts:
pnpm lint– ESLint/Next checkspnpm typecheck– TypeScriptpnpm test– Jest suite (pnpm test:coveragefor coverage)pnpm dev:clean– Clear.nextcache before starting dev
REDIS_URL="redis://..."
NEXT_PUBLIC_POSTHOG_KEY="optional analytics"
NEXT_PUBLIC_POSTHOG_HOST="https://app.posthog.com"
OCR_PROVIDER="google" # or openai/anthropicIf OCR keys are missing the app falls back to mock data.
- Provision Redis (Vercel KV or any managed Redis)
- Set env vars above
pnpm build && pnpm start(or deploy via Vercel/GitHub Actions)
components/– UI (desktop + mobile-specific views)contexts/–BillContextreducer/history, sync helperslib/– calculations, validation, sharing/export helpersapp/api/– Next.js route handlers for sharingtests/– Jest helpers + MSW mocks
.github/workflows/test.yml runs lint, typecheck, unit tests, and Codecov upload; integration tests spin up Redis and run targeted suites.
© SplitSimple team — redistribute under the repository’s LICENSE.