A modern personal finance application built with Next.js, TypeScript, and Tailwind CSS. OnlyFunds helps you track expenses, manage budgets, and take control of your financial life with a clean, intuitive interface.
- 💰 Expense Tracking: Record income and expenses with detailed categorization
- 📊 Budget Management: Set monthly budgets and track spending progress in real-time
- 🌙 Dark Mode: Beautiful light and dark themes with automatic system detection
- 📱 Responsive Design: Works seamlessly on desktop, tablet, and mobile devices
- 🔒 Local Authentication: Secure user accounts with password hashing
- 💾 Local Storage: All data stored locally for privacy and offline access
- ⚡ Real-time Updates: Instant feedback and progress tracking
- Framework: Next.js 15 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS v4
- State Management: Zustand
- Validation: Zod
- Authentication: bcryptjs (client-side)
- Storage: localStorage
- Node.js 18+
- pnpm (recommended) or npm
- Clone the repository:
git clone <repository-url>
cd onlyfunds- Install dependencies:
pnpm install- Start the development server:
pnpm dev- Open http://localhost:3000 in your browser
src/
├── app/ # Next.js App Router pages
│ ├── layout.tsx # Root layout with theme provider
│ ├── page.tsx # Landing page
│ ├── login/ # Authentication pages
│ ├── signup/
│ ├── dashboard/ # Main dashboard
│ ├── transactions/ # Transaction management
│ └── budgets/ # Budget management
├── components/ # Reusable components
│ ├── ui/ # Basic UI components
│ ├── auth/ # Authentication components
│ ├── expenses/ # Expense-related components
│ ├── budgets/ # Budget-related components
│ └── layout/ # Layout components
├── lib/ # Core utilities and logic
│ ├── types/ # TypeScript type definitions
│ ├── utils/ # Utility functions and validation
│ ├── zustand/ # State management stores
│ └── hooks/ # Custom React hooks
└── styles/ # Global styles
- Sign Up: Create a new account with username, email, and password
- Add Transactions: Record your income and expenses with categories and dates
- Set Budgets: Create monthly spending limits for different categories
- Track Progress: Monitor your spending against budgets with visual progress bars
- Switch Themes: Toggle between light and dark modes using the theme button
- Dashboard: Overview of monthly income, expenses, and net income
- Transactions: Complete transaction history with filtering and sorting
- Budgets: Budget progress tracking with overspending alerts
- Responsive: Works on all device sizes
pnpm dev- Start development serverpnpm build- Build for productionpnpm start- Start production serverpnpm lint- Run ESLint
The project follows these conventions:
- File Headers: Every file includes a descriptive comment explaining its purpose
- TypeScript: Strict typing throughout the application
- Component Structure: Functional components with proper prop typing
- State Management: Zustand stores for global state
- Validation: Zod schemas for all form validation
The application uses a consistent design system built with Tailwind CSS:
- Colors: Blue primary, gray neutrals, semantic colors for success/error
- Typography: Geist font family with proper hierarchy
- Spacing: Consistent spacing scale
- Components: Reusable UI components with variants
- Themes: Light and dark mode support
OnlyFunds is fully responsive with breakpoints for:
- Mobile: < 640px
- Tablet: 640px - 1024px
- Desktop: > 1024px
- Password Hashing: bcryptjs for secure password storage
- Local Storage: All data stored locally for privacy
- Input Validation: Comprehensive validation with Zod
- XSS Protection: Proper input sanitization
This is Phase 1 (MVP) with the following limitations:
- Local Storage Only: No cloud sync or backup
- Single User: No multi-user support
- Basic Categories: Predefined expense/income categories
- No Exports: No data export functionality
- No Recurring: No recurring transaction support
Planned for future phases:
- Cloud synchronization
- Data export/import
- Recurring transactions
- Advanced analytics
- Multi-currency support
- Receipt scanning
- Investment tracking
This project is licensed under the MIT License.
Contributions are welcome! Please read the file headers to understand each component's purpose before making changes.
OnlyFunds - Take control of your personal finances with simplicity and style.