π Get a head start on your next project with the latest tech stack!
This is a production-ready finance management application that serves as a comprehensive starter template. Built with cutting-edge technologies, you can fork this project, customize it to your needs, and scale it as much as you want. Whether you're building a finance app, dashboard, or any data-driven application - this foundation has you covered.
- β Latest Tech Stack - Next.js 16, TypeScript, Tailwind CSS, and more
- β Production Ready - Authentication, database, API routes all configured
- β Fully Customizable - Modify any component, add features, or pivot the entire concept
- β Best Practices - Clean architecture, type safety, and modern patterns
- β Scalable Foundation - Built to grow with your project needs
A complete financial management application featuring transaction tracking, account management, and data import capabilities. But more importantly - a solid foundation you can build upon!
- Account Management: Create, edit, and delete financial accounts
- Transaction Tracking: Record and categorize financial transactions
- Category Management: Organize transactions with custom categories
- CSV Import: Bulk import transactions from CSV files with column mapping
- Data Visualization: Interactive charts and analytics with multiple chart variants (Area, Bar, Line, Pie)
- Authentication: Secure user authentication with Clerk
- Responsive Design: Mobile-friendly interface with modern UI components
- Next.js 16 - React framework with App Router
- TypeScript - Type-safe development
- Tailwind CSS - Utility-first CSS framework
- Radix UI - Accessible component primitives
- Lucide React - Icon library
- React Hook Form - Form management
- Zod - Schema validation
- Hono - Fast web framework for API routes
- Drizzle ORM - Type-safe database toolkit
- Neon Database - Serverless PostgreSQL
- Clerk - Authentication and user management
- TanStack Query - Server state management
- Zustand - Client state management
- Papa Parse - CSV parsing
- Date-fns - Date manipulation
- Recharts - Data visualization
- Sonner - Toast notifications
frontend/
βββ app/ # Next.js App Router
β βββ (auth)/ # Authentication pages
β βββ (dashboard)/ # Protected dashboard pages
β β βββ accounts/ # Account management
β β βββ categories/ # Category management
β β βββ transactions/ # Transaction management
β βββ api/ # API routes
βββ components/ # Reusable UI components
β βββ ui/ # Shadcn/ui components
βββ features/ # Feature-based modules
β βββ accounts/ # Account-related logic
β βββ categories/ # Category-related logic
β βββ transactions/ # Transaction-related logic
βββ hooks/ # Custom React hooks
βββ lib/ # Utility functions
βββ providers/ # React context providers
βββ db/ # Database configuration
- Node.js 18+
- npm/yarn/pnpm/bun
- PostgreSQL database (Neon recommended)
- Clone the repository:
git clone <repository-url>
cd finance-platform/frontend- Install dependencies:
npm install
# or
yarn install
# or
pnpm install- Set up environment variables:
cp .env.example .envConfigure the following variables:
# Database
DATABASE_URL=your_neon_database_url
# Clerk Authentication
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
CLERK_SECRET_KEY=your_clerk_secret_key
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up- Set up the database:
npm run db:generate
npm run db:migrate- Run the development server:
npm run devOpen http://localhost:3000 to view the application.
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLintnpm run db:generate- Generate database migrationsnpm run db:migrate- Run database migrationsnpm run db:push- Push schema changes to databasenpm run db:studio- Open Drizzle Studionpm run db:seed- Seed database with sample data
The project includes a comprehensive seeding script to populate your database with realistic sample data:
npm run db:seedWhat gets seeded:
- 4 sample accounts (Checking, Savings, Credit Card, Investment)
- 10 financial categories (Food & Dining, Transportation, Shopping, etc.)
- 1000 randomized transactions with:
- Realistic amounts (both income and expenses)
- Random dates from 2023 to present
- Various payees (Walmart, Amazon, Starbucks, etc.)
- Proper account and category relationships
- Optional transaction notes
Note: Make sure your .env file contains a valid DATABASE_URL before running the seed command.
- Create, edit, and delete transactions
- Categorize transactions for better organization
- Bulk operations for multiple transactions
- Advanced filtering and search capabilities
- Upload CSV files with transaction data
- Interactive column mapping interface
- Data validation and error handling
- Preview imported data before saving
- Multiple account support
- Account balance tracking
- Account-specific transaction filtering
- Interactive charts and graphs with multiple chart types (Area, Bar, Line, Pie)
- Financial analytics and insights with comprehensive dashboard
- Responsive chart components with customizable variants
- Real-time data visualization for income/expense tracking
The application uses Hono for API routes with the following endpoints:
/api/accounts- Account CRUD operations/api/categories- Category CRUD operations/api/transactions- Transaction CRUD operations/api/summary- Financial summary and analytics
The /api/summary endpoint provides comprehensive financial analytics:
Query Parameters:
from(optional): Start date in YYYY-MM-DD formatto(optional): End date in YYYY-MM-DD formataccountId(optional): Filter by specific account ID
Response Data:
remainingAmount: Net balance (income - expenses)remainingChange: Percentage change from previous periodincomeAmount: Total income for the periodincomeChange: Income percentage change from previous periodexpenseAmount: Total expenses for the periodexpensesChange: Expenses percentage change from previous periodcategories: Top spending categories with amountsdays: Daily income/expense breakdown for charts
Authentication is handled by Clerk, providing:
- Secure user registration and login
- Session management
- Protected routes
- User profile management
The application uses Drizzle ORM with PostgreSQL, featuring:
- Users table (managed by Clerk)
- Accounts table
- Categories table
- Transactions table
- Fork & Clone - Start with this solid foundation
- Customize the UI - Change colors, layouts, components to match your vision
- Modify Features - Adapt the finance logic to your domain (e-commerce, inventory, etc.)
- Add New Modules - Extend with your own features and functionality
- Scale Up - The architecture supports growth from MVP to enterprise
- Financial applications
- Dashboard projects
- Data management systems
- Admin panels
- SaaS applications
- Any CRUD-heavy application
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License - feel free to use it for personal or commercial projects!