Skip to content

Modern personal finance tracker with smart analytics, budgeting, and cloud sync. Privacy-focused, local-first, built with React & TypeScript.

License

Notifications You must be signed in to change notification settings

keithsimkin/moneymanager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

43 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ’° cashflow.pilot

Modern Personal Finance Management

A powerful, privacy-focused finance tracker built with React and TypeScript. Manage your money with beautiful analytics, smart budgeting, and seamless cloud sync.

React TypeScript Vite Tailwind CSS License: MIT

Features β€’ Getting Started β€’ Tech Stack β€’ Documentation β€’ Roadmap


✨ Features

πŸ’³ Core Functionality

  • Account Management - Track checking, savings, credit, and investment accounts
  • Transaction Tracking - Record and categorize income and expenses with smart filters
  • Budget Planning - Set spending limits by category (weekly/monthly/yearly)
  • Goal Setting - Monitor progress toward financial goals with deadlines
  • Recurring Transactions - Automate regular income and expenses

πŸ“Š Analytics & Insights

  • Advanced Analytics - Visualize spending patterns, trends, and category breakdowns
  • Financial Health Score - Get an overview of your financial wellness
  • Cashflow Forecasting - Predict future balances based on trends
  • Anomaly Detection - Identify unusual spending patterns
  • Spending Heatmaps - See when and where you spend the most

πŸ”§ User Experience

  • Cloud Sync - Optional Supabase integration for multi-device access
  • Data Portability - Export and import your financial data in JSON format
  • Dark Mode - Full theme support for comfortable viewing
  • Keyboard Shortcuts - Navigate efficiently with keyboard commands
  • Accessibility - WCAG 2.1 AA compliant interface

πŸ› οΈ Tech Stack

Frontend

  • React 19.2 with TypeScript - Modern UI library
  • Vite (rolldown-vite) - Lightning-fast build tool
  • React Router DOM - Client-side routing
  • Tailwind CSS 4.1 - Utility-first styling
  • Radix UI - Accessible component primitives
  • shadcn/ui - Beautiful component library
  • Recharts - Interactive data visualizations

Backend & Storage

  • Supabase - Optional cloud sync and authentication
  • localStorage - Local-first data storage

Development

  • TypeScript 5.9 - Type safety
  • Vitest - Fast unit testing
  • ESLint - Code quality
  • pnpm - Fast package manager

πŸš€ Getting Started

Prerequisites

  • Node.js 18+
  • pnpm (recommended) or npm

Installation

  1. Clone the repository:
git clone <repository-url>
cd cashflow.pilot
  1. Install dependencies:
pnpm install
  1. Configure environment (optional):

Copy the example environment file:

cp .env.example .env

For local-only mode (no cloud sync), leave the Supabase variables empty or remove them.

For Supabase integration, add your credentials:

VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
  1. Start the development server:
pnpm dev
  1. Open your browser to http://localhost:5173

πŸ” Supabase Setup (Optional)

cashflow.pilot works perfectly without Supabase using local storage. However, if you want cloud sync and multi-device access:

  1. Create a Supabase project at supabase.com

  2. Run the database migrations from SUPABASE_SETUP.md

  3. Add your credentials to .env:

    • Find your project URL and anon key in Supabase Dashboard β†’ Settings β†’ API
  4. Enable authentication (optional):

    • Configure email/password or social providers in Supabase Dashboard β†’ Authentication
  5. Start using cloud sync - Your data will automatically sync across devices when logged in

πŸ’‘ Tip: The app gracefully falls back to localStorage if Supabase is not configured.

πŸ“œ Available Scripts

Command Description
pnpm dev πŸš€ Start development server
pnpm build πŸ“¦ Build for production
pnpm preview πŸ‘€ Preview production build
pnpm test βœ… Run tests once
pnpm test:watch πŸ”„ Run tests in watch mode
pnpm test:ui 🎨 Run tests with UI
pnpm lint πŸ” Run ESLint

πŸ“ Project Structure

src/
β”œβ”€β”€ components/       # React components
β”‚   β”œβ”€β”€ ui/          # 🎨 Reusable UI primitives (shadcn/ui + Radix)
β”‚   └── *.tsx        # 🧩 Feature components (charts, forms, cards)
β”œβ”€β”€ contexts/        # 🌐 React Context providers (Finance, Theme, Auth)
β”œβ”€β”€ hooks/           # πŸͺ Custom React hooks
β”œβ”€β”€ pages/           # πŸ“„ Route page components
β”œβ”€β”€ types/           # πŸ“ TypeScript definitions
β”œβ”€β”€ utils/           # πŸ”§ Business logic utilities
└── lib/             # πŸ› οΈ Helper functions (cn, etc.)

πŸ’Ύ Data Storage

Local-First Architecture

By default, all financial data is stored locally in your browser using localStorage. This means:

  • βœ… Complete Privacy - Your data never leaves your device
  • βœ… No Account Required - Start using immediately
  • βœ… Offline Access - Works without internet connection
  • βœ… Fast Performance - Instant data access

Optional Cloud Sync with Supabase

Enable Supabase integration to unlock:

  • ☁️ Multi-Device Sync - Access your data from any device
  • πŸ” Secure Authentication - Email/password or social login
  • πŸ’Ύ Automatic Backups - Your data is safely stored in the cloud
  • πŸ”„ Real-time Updates - Changes sync instantly across devices

Privacy Note: Even with Supabase enabled, you maintain full control. Your data is encrypted in transit and you can export/delete it anytime.

🌐 Browser Support

Browser Version
Chrome/Edge 90+
Firefox 88+
Safari 14+

πŸ“š Documentation

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments


Made with ❀️ for better financial management

⬆ Back to Top

About

Modern personal finance tracker with smart analytics, budgeting, and cloud sync. Privacy-focused, local-first, built with React & TypeScript.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages