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.

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.


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

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.
- 01Rule holds
- 02Price changes
- 03History corrected
Rule · Streaming subscription
The history it governs
- January€12.99Matches
- February€12.99Matches
- March€12.99Matches
- March · boiler repair€86.40Not governed
The rule holds. Every expense it matches carries the rule's amount.
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


