A modern expense splitting application that makes it easy to track shared expenses with friends, roommates, and groups. Split expenses fairly, calculate settlements automatically, and settle up without the awkward conversations.
- Group Management: Create groups for trips, events, roommates, or any shared expenses
- Flexible Expense Entry:
- Traditional form-based entry
- AI-powered chat interface for natural language expense logging
- Smart Splitting:
- Even splits (default)
- Custom amount splits
- Automatic calculation of who owes what
- Settlement Tracking: View optimized settlement suggestions to minimize transactions
- Real-time Collaboration: Multiple users can add expenses simultaneously
- Shareable Groups: Generate shareable links to invite others to your expense groups
- Expense History: View all expenses in a detailed log
- Free for Groups: Free for groups up to 10 people
Perfect for:
- Group Trips: Vacations, road trips, weekend getaways
- Roommates: Rent, utilities, groceries, household items
- Dinners & Outings: Restaurant bills, bar tabs, coffee runs
- Events & Parties: Birthdays, weddings, celebrations
🌐 Try it out: https://split-it-up-seven.vercel.app/
This project is built with:
- Frontend: React 18, TypeScript, Vite
- UI Components: shadcn-ui, Radix UI, Tailwind CSS
- Backend: Supabase (PostgreSQL database, authentication, real-time subscriptions)
- State Management: TanStack Query (React Query)
- Routing: React Router DOM
- Forms: React Hook Form with Zod validation
- AI Integration: Lovable AI Gateway for natural language expense parsing
- Styling: Tailwind CSS with custom design system
- Node.js (v18 or higher recommended) - install with nvm
- npm or bun
- Supabase account and project (for backend services)
-
Clone the repository
git clone <YOUR_GIT_URL> cd splitease-final
-
Install dependencies
npm install # or bun install -
Set up environment variables
Create a
.env.localfile in the root directory with your Supabase credentials:VITE_SUPABASE_URL=your_supabase_project_url VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
-
Set up Supabase
- Create a Supabase project at supabase.com
- Run the migrations in the
supabase/migrations/directory - Configure Row Level Security (RLS) policies as needed
- Set up the
parse-expenseedge function with your Lovable API key
-
Start the development server
npm run dev # or bun run devThe app will be available at
http://localhost:5173
npm run build
# or
bun run buildThe production build will be in the dist/ directory.
You can deploy this project to various hosting platforms:
- Vercel (recommended): Connect your GitHub repo to Vercel for automatic deployments
- Netlify: Deploy the
dist/folder after building - Any static hosting service: Upload the
dist/folder after runningnpm run build
This project follows strict coding standards:
- TypeScript: Strict compiler flags enabled (
noUnusedLocals,noUnusedParameters,noFallthroughCasesInSwitch) - Logging: Production-safe logger utility (no console.log in production)
- Error Handling: React Error Boundary for graceful error recovery
- Testing: Vitest with React Testing Library (58+ tests)
npm run test # Watch mode
npm run test:run # Single run
npm run test:ui # Interactive UI- Refactoring log: REFACTOR_LOG.md
- Historical debug files: docs/archive/
- Baseline metrics: docs/baselines/