Today is a very exciting day! After several weeks of development, design and optimization, I can finally officially present my new personal project: Divvy (divvy.es).
Divvy is a web app and PWA (Progressive Web App) designed to track, split and settle group expenses (trips, dinners, purchases or shared-flat bills). The goal was to build a premium, modern and completely free alternative to popular tools like Splitwise, adding smart capabilities and carefully crafted interactions.
In this article I want to tell you why I decided to build it, what its standout features are and what the technical experience behind the development was like.
Why Divvy?
You have probably been on a trip with friends where one pays for gas, another for lodging, another for dinners... At the end of the trip comes the dreaded moment of settling up. Although apps exist for this, many have become slow, are full of ads or limit basic features behind a paid subscription.
With Divvy I wanted to solve this by creating a tool that is:
- 01Instant and frictionless: Letting you see how the split works even before signing up, through an interactive simulator.
- 02Smart: Processing free text in natural language and reading physical receipts.
- 03Visually premium: With micro-animations, smooth transitions and a design that adapts to any device.
Key Features
1. The Interactive Simulator (GSAP)
One of the parts I am proudest of is the Divvy Simulator on the landing page. I wanted any visitor to understand the app's value in three seconds.
Built in React and animated with GSAP, the simulator shows a group of friends and their expenses. When you press "Optimize accounts", the avatars rearrange dynamically and transaction arrows are drawn with their optimized amounts. All of the debt-simplification calculation runs in the browser in milliseconds, visually showing how the algorithm reduces the number of bank transfers needed to settle accounts.
2. Quick Entry with Artificial Intelligence (NLP)
Typing expenses by hand on a phone can be tedious. To solve this, I implemented a smart input bar. You can write things like:
"Dani paid €45 for the taxi and Ana owes €15"
Divvy's engine processes the text, identifies who paid, the concept, the total amount and the custom split for each group member, filling in the form automatically.
3. Receipt Scanner with OCR
Do you have a long supermarket receipt and don't want to enter it item by item? Upload a photo of the receipt from your phone camera and the OCR system extracts the items and amounts. From there, you can assign each receipt line to the specific person or people in the group who consumed that product.
4. PWA and Real-Time Push Notifications
Divvy is optimized to work as an installable desktop or mobile app without going through the App Store or Google Play. Thanks to PWA support and Service Workers, the app loads almost instantly and supports an offline viewing mode. In addition, through Web-Push integration and VAPID encryption, group members receive immediate push notifications when someone adds an expense or records a balance transfer.
Tech Stack and Architecture
For this project I decided to bet on a cutting-edge full-stack:
- +Next.js 16 (App Router) & React 19: The heart of the application. I use Server Actions for all data mutations and optimized APIs for the app's performance.
- +MongoDB & Mongoose: The non-relational database that is ideal for the flexibility of group and expense documents, with indexes optimized for fast balance reads.
- +TailwindCSS v4: Used to structure the whole UI with the new v4 specification, which offers ultra-fast compilation and improved native CSS support.
- +GSAP (GreenSock): Used on the landing page for the debt simulator, floating gradient blobs in the background and smooth transitions in accordions and menus.
What's Next?
Today's launch is just the foundation. I have several interesting improvements planned for the coming weeks:
- +Direct payment integrations (Bizum / Stripe) to settle debts in one click.
- +Export of monthly group expense reports to PDF and CSV.
- +Budget evolution charts by configurable categories in each group.
I invite you to visit [divvy.es](https://www.divvy.es/), create a test group with your friends and give me your feedback. Clear accounts, long friendships!
