Tally And Trace
A full-stack, type-safe financial management tool for personal and business finances
React · FastAPI · TypeScript · PostgreSQL · React Native · Redux Toolkit · TanStack Router · Supabase · Render · Vite · Expo · Sentry
A full-stack, type-safe monorepo for personal and business financial management. Features a React web frontend, a FastAPI backend, a shared TypeScript package, and a React Native mobile app (coming soon).
Project Overview
Tally And Trace was developed to solve our own need for a simple, flexible financial tracking tool that would replace our aging Google Sheet tracker. Existing solutions were either too complex, too expensive, or lacked the multi-entity support we needed to manage both personal and business finances in one place.
The Build (Seth)
- Architected a monorepo structure with shared TypeScript package
- Built React web frontend with TanStack Router and Redux Toolkit
- Developed FastAPI backend with Pydantic v2 for type safety
- Implemented PostgreSQL database with SQLAlchemy ORM
- Created React Native mobile app foundation (Expo)
- Deployed on Render with Supabase for database hosting
- Wired Sentry error and performance monitoring across the API and web app — production-only, with request bodies, cookies, auth headers, and typed-input breadcrumbs scrubbed before send
The Break (Christine)
- Test baseline for the cash-flow forecast engine, with CI gating on backend and shared-package suites
- API endpoint validation and error handling
- Multi-currency transaction testing
- Data integrity and security audits
- Performance testing for large transaction sets
Features
- Multi-Entity Architecture: Manage personal and business finances under separate entities
- Account Management: Cash, e-wallets, savings, checking, and credit accounts with multi-currency support
- Transaction Tracking: Record income, expenses, and transfers with FX fields
- Cash-Flow Forecast: Day-ordered running-balance timeline that surfaces the lowest point before payday and flags shortfalls — not just the reassuring month-end total
- Mark Paid: Materialise a due entry into a real transaction, moving the account balance and rolling the recurring schedule to its next date
- Budget Entries: Recurring income/expense items with configurable cadence — weekly, biweekly, semi-monthly, monthly, quarterly, semi-annual, and annual
- Allocations: Savings goals, budgets, and period-based allocations
- Wishlist: Prioritised wishlist items linked to categories and entities
- Data Export: One-click JSON/CSV export of your entire dataset
- Type Safety: Pydantic v2 on the backend, TypeScript everywhere on the frontend
- Mobile App (coming soon): React Native (Expo) app with NativeWind styling
Tech Stack
- Frontend: React, TypeScript, Vite, TanStack Router, Redux Toolkit, Tailwind CSS
- Backend: FastAPI, Python 3.12, SQLAlchemy, Pydantic v2
- Database: PostgreSQL (Supabase)
- Mobile: React Native, Expo SDK 52, NativeWind
- Deployment: Render (backend + frontend), Supabase (database)
- Monitoring: Sentry — separate
tally-trace-apiandtally-trace-webprojects, production-only, PII scrubbed before send - Shared: TypeScript package for type definitions and utilities
Screenshots
