---
title: "Gestore Spese"
url: "https://edoardo.anteprime.edoardogabrielli.com/en/projects/expense-manager"
lang: "en"
updated: "2026-11-01"
---

# Gestore Spese

> Gestore Spese: a web app that imports bank statements from several banks, categorises household spending and shows it in charts and reports.

A web app to keep the household finances together: it imports statements from several banks, categorises spending and assigns it to people and accounts.

### Why

At home we have several accounts and several people, and I did not want a commercial app reading our transactions. I built something that runs on my own server, with the data in my own database.

![Dashboard with monthly income and expenses and spending by category (made-up data)](https://edoardo.anteprime.edoardogabrielli.com/media/originals/2026/11/fb1e7a36ea3143c2a546e6f6a257ed0e/gestore-spese-dashboard.webp)

The dashboard with income and expenses by month and spending by category. The data is made up.

### What it does

- Reads the real formats of three banks (Trade Republic, BBVA, Intesa Sanpaolo) and drops duplicates even when two imports overlap.
- Assigns categories with rules learned from corrections: rules on the text count for more than the merchant's category code, because some merchants declare a wrong one.
- Recognises transfers between one's own accounts (same person, same amount, within 10 minutes, or 3 days if the time is missing) and leaves them out of spending.
- Computes the investment fund from the file exported by the bank and checks the balances.
- Produces an analysis with Claude Code running locally, with no API key, and saves it in a table.

![Transaction list with editable category and person](https://edoardo.anteprime.edoardogabrielli.com/media/originals/2026/11/656821b7807f468288357417ee79236d/gestore-spese-transazioni.webp)

![Spending report by category with chart and table](https://edoardo.anteprime.edoardogabrielli.com/media/originals/2026/11/d5df8725f5ba4b6ab5c837dcae8616ab/gestore-spese-report.webp)

![Gestore Spese dashboard on a phone](https://edoardo.anteprime.edoardogabrielli.com/media/originals/2026/11/8b3a7b898cca4900ad5c181b4a5e884b/gestore-spese-mobile.webp)

### Technical choices

Everything runs in Docker Compose with Supabase (Postgres, authentication, API and functions) and a Vue 3 front end, with nine SQL migrations. For the AI analysis a process on the server takes jobs from the database instead of exposing a port, and validates the data it receives. Access goes only through Cloudflare Access. It has backups, a phone interface and a dark theme.

### What I did

I wrote it on my own in about forty commits between June and July 2026; the first version came together in a day and I refined it afterwards. Part of the work was done by Claude Code sessions. The images above show made-up data, not ours.

### Limits

There are no significant automated tests. My family uses it, but it is a private project: the repository is not public and there is no demo.

### Stack

Vue 3 · TypeScript · Vite · Pinia · Tailwind · Chart.js · Supabase and Postgres · Deno · Docker · nginx

### My role

Personal project: design and development.

[← All projects](https://edoardo.anteprime.edoardogabrielli.com/en/projects)