The Smartest Way to Split Expenses with Friends Splitr is an intuitive and powerful application designed to take the hassle out of managing shared expenses. Whether you're tracking costs with roommates, organizing a group trip, or simply splitting a dinner bill, Splitr ensures fairness and clarity, so you never have to worry about who owes who again.
✨ Features Our platform provides all the tools you need to handle shared expenses with ease:
Group Expenses: Create dedicated groups for roommates, trips, events, or any shared activity to keep expenses perfectly organized.
Smart Settlements: Our intelligent algorithm minimizes the number of payments required when it's time to settle up, making the process quick and efficient.
Expense Analytics: Gain valuable insights into your spending habits with detailed analytics, helping you understand and manage your shared costs.
Payment Reminders: Automated reminders for pending debts ensure everyone pays on time, reducing awkward conversations.
Multiple Split Types: Cater to any scenario with flexible splitting options: divide bills equally, by custom percentages, or by exact amounts.
Real-time Updates: See new expenses and repayments instantly as your friends add them, ensuring everyone is always on the same page.
🚀 How It Works Splitting expenses has never been easier. Follow these simple steps to start tracking and splitting expenses with friends:
Create or Join a Group: Start a new group for your roommates, trip, or event, and easily invite your friends to join.
Add Expenses: Quickly record who paid for what and specify how the bill should be split amongst the group members.
Settle Up: View a clear breakdown of who owes what to whom, and easily log payments once debts are cleared.
💬 Testimonials Hear what our users are saying about Splitr:
"Ye babu rao ka style hai! With Splitr, I finally stopped getting confused about who paid for what!" — Babu Rao, Rental Property Manager
"Splitr's calculations are so accurate, they're even better than my scheme to double money in 25 days!" — Raju, Stock Market Expert
"If that I have Splitr, Raju won't get away with selling my shoes and coat! I'll add to his debt!" — Shyam, Job Searcher
🛠️ Technologies Used Splitr is built with a modern and robust technology stack to deliver a seamless user experience:
Next.js: A powerful React framework for building fast, scalable, and SEO-friendly web applications.
Convex: A real-time backend-as-a-service that provides a reactive database, serverless functions (queries, mutations, actions), and built-in authentication integration.
Clerk: For secure, seamless, and customizable user authentication and management.
Tailwind CSS: A utility-first CSS framework for rapidly building custom designs.
Sonner: A beautiful and accessible toast library for displaying notifications.
📦 Getting Started Follow these instructions to set up and run Splitr on your local machine for development and testing purposes.
Prerequisites Before you begin, ensure you have the following installed:
Node.js (v18 or higher recommended)
npm or Yarn: A package manager for JavaScript.
A Convex account and a new project.
A Clerk account and an application.
Installation Clone the repository:
git clone https://github.com/your-username/ai-splitwise-clone-main.git cd ai-splitwise-clone-main
Install dependencies:
npm install
yarn install
If you encounter peer dependency conflicts, try:
npm install --legacy-peer-deps
Set up environment variables: Create a .env.local file in the root of your project and add the following environment variables. Replace the placeholder values with your actual keys from Clerk and Convex.
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_YOUR_CLERK_PUBLISHABLE_KEY CLERK_SECRET_KEY=sk_test_YOUR_CLERK_SECRET_KEY NEXT_PUBLIC_CLERK_ISSUER_URL=https://clerk.YOUR_CLERK_APP_DOMAIN.clerk.app
NEXT_PUBLIC_CONVEX_URL=https://YOUR_CONVEX_PROJECT_NAME.convex.cloud
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: Found in your Clerk Dashboard under API Keys.
CLERK_SECRET_KEY: Found in your Clerk Dashboard under API Keys.
NEXT_PUBLIC_CLERK_ISSUER_URL: Found in your Clerk Dashboard under API Keys (Clerk Issuer URL).
NEXT_PUBLIC_CONVEX_URL: Found in your Convex Dashboard for your project.
Initialize and Deploy Convex Backend: First, provision your Convex development deployment (if you haven't already):
npx convex dev
This command will also generate the convex/_generated directory and its API files.
Next, deploy your Convex schema and functions. This is crucial for your database structure and backend logic to be available.
npx convex deploy
Run the development server:
npm run dev
yarn dev
Open http://localhost:3000 in your browser to see the application.
Important Notes for Development: Hydration Mismatch / Browser Extensions: If you encounter hydration errors in the console (e.g., A tree hydrated but some attributes...), try running your app in an incognito browser window or temporarily disabling browser extensions like Grammarly.
"User not found" / useMutation is not a function: If you face these errors, ensure you've followed the Convex deployment and Next.js restart steps carefully. Sometimes, clearing browser cache and cookies for your localhost domain can help resolve stale client-side bundles.
🤝 Contributing We welcome contributions to Splitr! If you'd like to contribute, please follow these steps:
Fork the repository.
Create a new branch (git checkout -b feature/your-feature-name).
Make your changes.
Commit your changes (git commit -m 'feat: Add new feature').
Push to the branch (git push origin feature/your-feature-name).
Open a Pull Request, describing your changes in detail.
📄 License This project is licensed under the MIT License - see the LICENSE file for details. (If you have a LICENSE file in your repository, otherwise you might omit this section or add one).
# Deployment used by `npx convex dev`
CONVEX_DEPLOYMENT=
NEXT_PUBLIC_CONVEX_URL=
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
CLERK_JWT_ISSUER_DOMAIN=
RESEND_API_KEY=
GEMINI_API_KEY=