Transaction layer
Expenses and income share one consistent record model with categories, notes, dates, and an audit-friendly history.
A personal finance workspace I built for my own money triage: capture expenses quickly, keep recurring payments visible, follow savings goals, and review income against spending without maintaining a spreadsheet.

My own finance tracking was split between statements, notes, and a spreadsheet I updated too late. The problem was less about advanced budgeting and more about making daily capture easy enough to keep the month accurate.
Atlas brings expenses, income, categories, savings goals, and recurring payments into one small workspace. Quick entry is intentionally simple; the heavier analysis stays in monthly and category views where it is useful.
This was an independent product and a practical design exercise: test whether fast capture, visible recurring costs, and progress-led feedback could make a personal tool worth reopening after the first week.
2 months
Full-Stack Developer & Designer
Personal Finance Web App
Money model
Atlas turns scattered transactions into a readable financial system: capture what changed, plan what comes next, and make progress visible without turning personal finance into accounting software.
Expenses and income share one consistent record model with categories, notes, dates, and an audit-friendly history.
Category limits translate monthly intent into something users can check against real spending as it happens.
Savings targets connect contributions to a clear destination, with progress that stays understandable at a glance.
Trends and comparisons surface the decisions behind the numbers instead of filling the dashboard with decorative charts.
A clean, intuitive dashboard showing your complete financial picture — balances, recent transactions, and quick actions all in one place.


Detailed views for expenses, income, and savings — helping you understand and control your financial life.



Compare spending, income, and categories across the month without turning the dashboard into an accounting suite.

System architecture
The build keeps financial records, access, visualization, and interface concerns separate so new money workflows can grow without making the product harder to reason about.

Reusable financial primitives keep transaction entry, filters, summaries, and goal views consistent across the product.
PostgreSQL-backed records and authenticated ownership rules keep each user’s financial data isolated and queryable.
Chart.js consumes normalized totals so every visual is tied back to the same transaction source of truth.
A compact token-led UI keeps dense financial information readable across dashboard and mobile breakpoints.
Capture the transaction, understand the month, and decide what to change.
Capture
Expenses and income
Review
Categories and monthly totals
Plan
Savings goal progress
Remember
Recurring payments
Engineering Challenges
Solution · Single-input quick-add with smart parsing (e.g. "12.50 lunch" → amount + auto-categorised). Default category from history. Submit on Enter. The whole flow lives behind one keystroke.
Outcome · The shortest path handles the routine entry; full editing remains available for exceptions.
Solution · Simple frequency table per merchant string + fallback to keyword rules. Wrong category = one tap to correct, which updates the rule. No heavy ML model required.
Outcome · Corrections improve future suggestions without introducing a separate machine-learning service.
Solution · Savings progress and month context lead the hierarchy. Warning colours are reserved for information that actually requires attention.
Outcome · The dashboard supports review and planning instead of treating every visit as a failure state.
I take on senior contract work for consumer-facing products where UX details and daily-engagement design matter.