← Back to projects
03Personal Project

DominionDesk Core

AI-Powered Personal Finance Dashboard

Sole developer — design, build, and deployment

↗ View live

The problem

Most personal finance tools either track spending after the fact or plan budgets in the abstract, and few answer the question that actually matters month to month: after every fixed obligation and debit order has gone off, how much is genuinely left to spend?

Capturing expenses is also the point where these tools fail in practice — typing in each receipt is friction enough that people stop doing it within a month.

What I built

Free cash flow and burn rate

The dashboard leads with money actually available after obligations and expenses, alongside a burn-rate view of total monthly fixed costs, budget alerts as limits approach, and a cashflow timeline of upcoming payments and due dates.

AI receipt scanning

Photograph a receipt and the Claude API extracts store name, date and total, then suggests a category — removing the manual entry step that normally kills adoption. Personalised insights surface observations about spending patterns on top of the same data.

Obligations and debt

Recurring debit orders are tracked with provider, due date and payment history including adjustments, while debt balances and interest rates feed payoff progress visualisations and projections.

Income and multi-user

Multiple income sources — salary, freelance, side hustle, rental — with recurring flags for accurate projections and ad-hoc extra income logging. Each user's financial data is private to them, with per-person budget limits for family members.

Architecture

Next.js 16 with the App Router and TypeScript, PostgreSQL accessed through Prisma, and NextAuth.js for authentication.

Built mobile-first and installable as a Progressive Web App, since the receipt-capture flow is only useful if it works on the phone that has the camera.

Impact

  • Live and in daily personal use at core.dominiondesk.com.
  • Receipt capture reduced to photographing a receipt, which is the difference between a tool that gets used and one that gets abandoned.

Tech stack

Frontend
Next.js 16ReactTypeScriptTailwind CSS 4Framer MotionRecharts
Backend
Next.js API routesPrisma ORMNextAuth.js
Data
PostgreSQL
AI
Anthropic Claude API
Platform
PWAVercel