A powerful, privacy-focused finance tracker built with React and TypeScript. Manage your money with beautiful analytics, smart budgeting, and seamless cloud sync.
Features β’ Getting Started β’ Tech Stack β’ Documentation β’ Roadmap
- 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
- 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
- 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
- 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
- Supabase - Optional cloud sync and authentication
- localStorage - Local-first data storage
- TypeScript 5.9 - Type safety
- Vitest - Fast unit testing
- ESLint - Code quality
- pnpm - Fast package manager
- Node.js 18+
- pnpm (recommended) or npm
- Clone the repository:
git clone <repository-url>
cd cashflow.pilot- Install dependencies:
pnpm install- Configure environment (optional):
Copy the example environment file:
cp .env.example .envFor 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- Start the development server:
pnpm dev- Open your browser to
http://localhost:5173
cashflow.pilot works perfectly without Supabase using local storage. However, if you want cloud sync and multi-device access:
-
Create a Supabase project at supabase.com
-
Run the database migrations from
SUPABASE_SETUP.md -
Add your credentials to
.env:- Find your project URL and anon key in Supabase Dashboard β Settings β API
-
Enable authentication (optional):
- Configure email/password or social providers in Supabase Dashboard β Authentication
-
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.
| 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 |
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.)
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
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 | Version |
|---|---|
| Chrome/Edge | 90+ |
| Firefox | 88+ |
| Safari | 14+ |
- SUPABASE_SETUP.md - Complete Supabase configuration guide
- ACCESSIBILITY.md - Accessibility features and compliance
- PERFORMANCE_OPTIMIZATIONS.md - Performance tips
- ADVANCED_ANALYTICS.md - Analytics features guide
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with shadcn/ui components
- Icons from Heroicons and Lucide
- Charts powered by Recharts
- Backend by Supabase
- Styled with Tailwind CSS
Made with β€οΈ for better financial management