PartySplit — Project Story
Inspiration
Splitting a group bill sounds simple until it is time to work out who owes what. I found it difficult to keep track of each person’s share, remember who had already paid, and follow up with friends afterward. Manually calculating and recording everyone’s amount made the process even more cumbersome. I wanted to bring bill splitting, repayment requests, and payment tracking together in one place—so groups can spend less time doing the math and chasing payments.
What it does
PartySplit lets users record a merchant bill, add friends, and divide the bill using equal, percentage, custom, or natural-language instructions. AI can turn a plain-language description into a proposed allocation; the user can review and adjust the amounts before confirming. The app checks that the shares add up to the bill total, then creates individual payment links and tracks what is paid, pending, and outstanding.
The app supports PayPal Sandbox checkout for testing. If PayPal credentials are missing or a currency is unsupported, the payment is clearly marked as simulated. AI suggestions use a built-in parser when an AI provider is not configured.
How we built it
PartySplit is a full-stack web application built with Next.js, React, TypeScript, and Tailwind CSS. PostgreSQL stores users, friends, transactions, bill splits, repayment requests, and payment records; Prisma manages the database schema and migrations. NextAuth Credentials provides email-and-password sign-in, and Zod validates API inputs and AI responses.
The split workflow combines natural-language parsing and an optional OpenAI-compatible AI provider with deterministic server-side validation. All amounts are stored as integer minor units to avoid floating-point rounding errors. PayPal Orders v2 supports Sandbox checkout and capture, while clearly labelled simulated flows keep the app usable without provider credentials.
Challenges we ran into
One challenge was finding a reliable way to interpret different instructions about how friends should split a bill. Natural language can be ambiguous, so we had to validate every proposed allocation and make sure it reconciles exactly to the total instead of trusting AI-generated arithmetic.
Choosing a database and getting the schema, connection URLs, and migrations right also took work. We settled on PostgreSQL with Prisma. We also explored sending SMS notifications and directing repayments to friends’ PayPal accounts, but could not complete those integrations within the project. We focused instead on secure payment links, PayPal Sandbox checkout, and clear simulated behavior when a real Sandbox payment is unavailable.
Accomplishments that we're proud of
We are proud to have built a connected experience that covers the whole group-expense journey: recording a bill, proposing and validating a split, confirming shares, creating repayment links, and tracking balances. The app does more than calculate shares—it keeps the workflow organized and makes each payment’s status visible.
We are especially proud of the safety boundary around AI: it can help interpret instructions, but it does not control payments or make the final allocation decision. Users review and approve the split, and the server enforces exact totals.
What we learned
We learned that expense splitting is not only a math problem. Clear status tracking, trustworthy payment confirmation, privacy, and an easy way to follow up matter just as much. We also learned to treat AI output as untrusted input, keep money calculations deterministic, and make fallback behavior explicit rather than implying that a simulated payment was completed through PayPal.
What's next for PartySplit
There is plenty we would like to build next. We want to explore reliable notifications—such as email or SMS reminders—and make it easier for friends to receive and complete repayment requests. We also want to investigate the requirements for a production PayPal integration, so users can make real payments rather than Sandbox test payments, with appropriate recipient onboarding, security, and compliance.
Longer term, PartySplit could grow into a broader group-finance platform for shared expenses, recurring contributions, event or group sponsorships, and managing group reimbursements. Those ideas will require careful design and more integrations, but the goal stays the same: make shared money easier to organize, understand, and settle.
Built With
- ai
- fintech
- github
- groq
- neon
- nextjs
- paypal
- postgresql