Skip to main content
Resume
View Resume

Dinero

A personal finance tracker to log income and expenses, filter by categories, and visualize spending trends. Clean design, multi-currency support, and real-time updates.

What it is

Dinero is a personal finance tracker. Log income and expenses, organize by category, see charts of where your money actually goes. The goal was something minimal enough that you'd actually use it daily, not something so feature-heavy that it becomes a chore to maintain.

Multi-currency support was important because a lot of the tools I found assumed a single currency. Dinero lets you pick your currency per transaction.

Why I built it

Personal finance apps tend to fall into two camps: the simple ones that don't give you enough visibility, and the complex ones that require too much setup before they're useful. I wanted something in between. Log a transaction in a few taps, see your situation clearly, move on.

It's also a category I actually care about, which makes it easier to know when something feels wrong in the product.

How it was built

This was built using Lovable, an AI-powered development platform where you describe what you want and it builds the application. I used it deliberately here -- I wanted to test what this kind of AI-accelerated development could produce for a product I had a clear vision for.

The workflow is different from writing code line by line. You describe behavior and design intent, the platform builds it, you test it, and you iterate through description rather than code edits. My contribution was the product decisions: what gets tracked, how categories work, what the dashboard should show, how flows should feel. Getting those right required a lot of iterations.

Supabase handles the database, real-time subscriptions, and authentication in the background.

What the experiment taught me

Vibe coding is real and fast for the right kind of project. A well-defined product with clear UI expectations and relatively standard data patterns is a good match for this kind of tool.

What it demands from the person using it is clarity. Vague descriptions produce vague results. The more precisely you can describe what you want -- including edge cases, error states, and how interactions should feel -- the better the output. That specificity is the skill.

The result is something I actually use. Whether it's "fully coded by me" in the traditional sense matters less than whether it works and whether I understand what it's doing. It passes both tests.