Back to Web Applications
VeloraPersonal finance

Velora. Know where the month stands.

Velora is a personal expense tracker on Next.js and Supabase. Log what you spend, read any period, and let recurring costs keep themselves right. No bank connection.

velora · personal finance
Velora · Overview

The month in one screen: what is left to spend, what came in and what went out.

Screens from the running app, filled with demo data.

What it is
A personal expense tracker
Role
Product, schema, build, deploy
Agents
Three, none acts unconfirmed
Status
Live, free to try

Light or dark.Same product.

The sign-in page in both themes. Every colour is a token, so switching theme changes the palette and nothing else.

Velora · Sign in · Light
Light
Velora · Sign in · Dark
Dark

Made for the phone first.

Most expenses are logged standing at a till. On a phone the navigation drops to a bottom bar and the month changes with a swipe.

  • Swipe between months
  • Bottom navigation, one thumb
  • Installs like an app
9:41
Velora overview on a phone

One recurring rule

Your subscription went up.Your history should too.

Change the price once, and Velora fixes every past payment it covers. Nothing else is touched.

  1. 01Rule holds
  2. 02Price changes
  3. 03History corrected

Rule · Streaming subscription

€12.99€12.99

The history it governs

  1. January€12.99Matches
  2. February€12.99Matches
  3. March€12.99Matches
  4. March · boiler repair€86.40Not governed

The rule holds. Every expense it matches carries the rule's amount.

Amounts are illustrative. The mechanism is the app: reconciliation is a database function, not a loop in the browser, so it either corrects the whole matched set or none of it.

Everything it does.

Eight things Velora does. The third one is the reason the rest are worth keeping.

One list

Every expense in one place, with a category and a note, editable after the fact rather than frozen on import.

Any period

Month, year or any range you pick, with the charts and the category ranking recomputed for exactly that window.

Rules that reconcile

Change a recurring rule and one Postgres function goes back over the expenses it governs, so the past agrees with the rule instead of with the day it was typed.

Duplicate cleaner

Surfaces the almost identical rows a double charge or a double entry leaves behind, and merges them on your word.

Undo for thirty days

Deleting hides a row rather than destroying it. A scheduled job purges what is older, behind a shared secret so nothing else can call it.

Money Mood

One line for the month: what came in, what went out, and how close to the edge that left you, without a page of charts to read first.

Live across devices

Postgres change subscriptions push every edit to every open session, so the phone and the laptop never disagree about a number.

Agents that ask first

An overview, an actions and an advisor agent read the same tables through one API layer. Each proposes; none of them writes until you confirm.

Built with

  • TypeScript
  • Next.js App Router
  • Supabase Postgres
  • Row Level Security and RPC
  • Supabase Realtime
  • Upstash Redis rate limiting
  • Vercel, with a scheduled purge
  • OpenAI, behind the agents

Try it with your own month.

Free to use, no bank connection. Your data stays in your own rows.

Open the live app