A local-first personal finance application with AI-powered expense categorization, built with Next.js and InstantDB.
- 📊 Dashboard - Monthly overview of income, expenses, and investments
- 💳 Expense Tracking - AI-powered categorization from bank statements
- 💰 Income Management - Track income sources by category
- 🏦 Account Balances - Monthly snapshots with reconciliation
- 📈 Investments - Track portfolio performance with contributions and values
- ⚙️ Budget Management - Set monthly/annual budgets per category
- Framework: Next.js 14 + React Router 7 (hybrid SPA)
- Database: InstantDB (real-time, local-first)
- AI: Vercel AI SDK with Gemini 2.5 Flash (migrating from OpenAI)
- UI: Mantine UI v8 (migrating from ShadCN)
- Styling: Tailwind CSS + CSS Modules
- Package Manager: npm (migrated from Bun for Claude Code compatibility)
- Node.js 18+
- npm 9+
- InstantDB account (free tier available)
- Google API key for AI features (optional)
- Clone the repository
- Install dependencies:
npm install- Create
.env.localfile:
NEXT_PUBLIC_INSTANTDB_APP_ID=your_instantdb_app_id
GOOGLE_API_KEY=your_google_api_key- Run the development server:
npm run devnpm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLint- AGENTS.md - AI architecture and Gemini migration plan
- Claude.md - Developer onboarding guide
- FUNCTIONALITY.md - Complete feature breakdown
🚧 Active Migration - Modernizing the tech stack:
- ✅ Phase 1: Documentation complete
- ✅ Phase 2: npm migration complete
- ⏳ Phase 3: Remove dark mode (pending)
- ⏳ Phase 4: AI upgrade to Gemini 2.5 Flash + TOON format (pending)
- ⏳ Phase 5-7: Package upgrades + Mantine UI migration (pending)
See FUNCTIONALITY.md for detailed migration plan.
- Check Claude.md for development patterns
- Check AGENTS.md for AI integration details
- See FUNCTIONALITY.md for page-specific documentation
MIT