Inspiration

Splitting bills with friends is always messy — from “who owes what?” to “just send me your UPI ID.” We wanted a lightweight way to make settling bills fun, fast, and less awkward.

What it does

  • Lets users create/join a group and split bills easily.
  • Handles authentication and user management via Clerk.
  • Tracks balances per person in the group.

How we built it

  • Frontend: Next.js App Router with Tailwind for a sleek dark UI.
  • Backend: MongoDB + Mongoose for user and expense data.
  • Auth: Clerk for sign-in/sign-up, JWTs & sessions.
  • Extras: UPI deeplink format (upi://pay?pa=…&pn=…&am=…) integrated into the flow.

Challenges we ran into

  • Integration of clerk with mongodb took a lot time and was not easy
  • Aiming for a clean ui was tough in such small amount of time
  • Designing of the models and how it should work took effort and it has a shape for the future updates

Accomplishments that we're proud of

  • A smooth auth + protected route system using Clerk.
  • Clean, intuitive UI that feels like a real app.

What we learned

  • How to integrate Clerk seamlessly into Next.js.
  • Proper user session handling and protected routes.
  • How to mange complex db

What's next for Split Bill Wisely

  • Spin Wheel with UPI deeplinks — let chance decide who pays.
  • Visual balance charts.
  • PWA support so it feels like a native app.
  • Notifications when someone hasn’t paid yet.

Built With

Share this project:

Updates