FCFranco Campaiola
BackPersonal project
In personal use

Persi

My finance and day-to-day app, with an AI assistant that logs expenses by voice. It replaced my Excel spreadsheet.

Role
Product, design and engineering
Period
2026
Stack
Next.js 16 · Convex · Clerk · Claude API · MCP

Demo with sample data, recreated from the product.

01 — The problem

A spreadsheet works until you have to enter every expense by hand.

I tracked my finances in Excel: installments, cards, due dates and promotions that expire. I wanted to say “spent 28k at Coto with the Visa” and have it recorded right, in the right account and without rounding errors.

02 — What I did

Finances, tasks and reminders, with an assistant inside.

  • Monthly dashboard compared against the same period last month
  • Transactions, accounts, cards with installments and recurring due dates
  • Persi AI: logs and answers with tool calling, and shows how it computed each answer
  • Excel and CSV importer with duplicate detection and rollback
  • An MCP server to use Persi from Claude or ChatGPT, plus push notifications
Franco dictating an expense to Persi from the couch, in pixel art

03 — Key decisions

Claude interprets, Convex computes

The model understands the request and picks typed tools; every amount and total is computed by the server.

Exact money

Amounts in integer cents and Buenos Aires civil dates: an expense on the 31st at 11:30 pm never lands in the next month.

Nothing duplicates

Each operation carries an idempotent id: an assistant retry or a re-import never logs an expense twice.

04 — Outcome

I use it every day.

Persi replaced my spreadsheet: I log expenses by talking, see the month at a glance and check it from Claude when I'm doing something else.

NextNotChatbot