Splitwisely is a full-stack expense splitting web application inspired by Splitwise. It helps users manage shared expenses within groups, automatically calculate balances, and settle dues efficiently.
🔗 Live Demo: splitwisely-beige.vercel.app 📦 GitHub: github.com/anushkasharmaa1/splitwisely
- 🔐 User authentication with Clerk
- 👥 Create and manage expense groups
- 📧 Add members to groups by email (auto-added as friends)
- 💸 Add expenses with selectable payer and automatic equal splitting
- 📊 Real-time dashboard with balance tracking (you owe / you are owed)
- ✅ Settle expenses between members
- 🗂 Category-based expense tracking (Food, Travel, Housing, Transport, Shopping)
- 🧾 Recent activity feed across all groups
- 👫 Friends list auto-populated from group members
- 📱 Fully responsive — mobile bottom nav + desktop sidebar
- ☁️ Fully deployed with cloud PostgreSQL database
Frontend
- Next.js 16 (App Router)
- React 19
- TypeScript
- Tailwind CSS v4
Backend
- Next.js API Routes
- Prisma ORM v5
- PostgreSQL (Neon)
Authentication
- Clerk
Deployment
- Vercel (frontend + API)
- Neon (serverless PostgreSQL)
| Model | Description |
|---|---|
User |
Synced with Clerk on sign-up |
Group |
Expense-sharing group |
GroupMember |
User ↔ Group relation with role (admin/member) |
Expense |
Individual expense with payer and category |
ExpenseSplit |
Per-user split amount and settled status |
Settlement |
Records when a user settles up |
Friendship |
Auto-created when users are added to a shared group |
git clone https://github.com/anushkasharmaa1/splitwisely.git
cd splitwiselynpm installCreate a .env.local file in the root:
# Database (Neon PostgreSQL)
DATABASE_URL=your_neon_database_url
# Clerk Authentication
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
CLERK_SECRET_KEY=your_clerk_secret_key
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=/dashboard
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=/dashboardnpx prisma migrate devnpm run devOpen http://localhost:3000 in your browser.
This project is deployed on Vercel with Neon as the cloud PostgreSQL database.
To deploy your own:
- Push to GitHub
- Import the repo on vercel.com
- Add all environment variables in Vercel project settings
- Vercel auto-deploys on every push to
master
splitwisely/
├── app/
│ ├── (app)/ # Authenticated app layout
│ │ ├── dashboard/ # Dashboard page
│ │ ├── expenses/ # All expenses + add new
│ │ ├── groups/ # Groups list + group detail
│ │ ├── friends/ # Friends list
│ │ └── activity/ # Recent activity feed
│ ├── api/ # API routes
│ │ ├── dashboard/
│ │ ├── expenses/
│ │ ├── groups/
│ │ ├── friends/
│ │ ├── sync-user/
│ │ └── webhooks/
│ ├── sign-in/
│ ├── sign-up/
│ └── page.tsx # Landing page
├── components/
│ ├── AppSidebar.tsx # Desktop sidebar + mobile bottom nav
│ └── AppTopbar.tsx # Top navigation bar
├── prisma/
│ ├── schema.prisma
│ └── migrations/
└── middleware.ts
Pull requests are welcome! For major changes, please open an issue first to discuss what you'd like to change.
MIT © 2026 Splitwisely