
Spend Mosaic
Full-stack personal finance app for tracking income and expenses, built as a monorepo with a React frontend and an Express/PostgreSQL API.
Spend Mosaic is a personal finance tracker I'm building to manage income, expenses, and (soon) reporting — and to explore full-stack architecture decisions end-to-end, not just consume an existing backend.
Architecture
The project is structured as a monorepo using npm workspaces, with independent frontend/ and backend/ packages sharing a single root install and lockfile. This keeps dependency management simple while allowing each side to evolve independently.
Frontend:
React, TypeScript, Redux Toolkit for state management, React Router for client-side routing.
Backend:
Node.js with Express, TypeScript, PostgreSQL as the relational store.
Current status
This is an actively evolving project rather than a finished product. The core data layer and API endpoints for expenses and income are in place; state management integration on the frontend and full API connection are in progress, with reporting and data visualization planned next.
I'm keeping this project transparent about where it stands — it's as much about the process of making real architectural decisions (monorepo structure, ORM choice, state management patterns) as it is about the finished feature set.