Pedro Tomás
financial dashboard

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.

ReactTypeScriptRedux ToolkitReact RouterVercelNode..jsExpress

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.