FinTrackr is a modern, full-stack financial management platform that helps users track their expenses, manage budgets, and gain insights into their financial health. Built with the latest web technologies and best practices in mind.
- 🔐 Secure authentication with Clerk
- 💳 Bank integration using Plaid API
- 📊 Interactive financial dashboards and charts
- 💰 Expense tracking and categorization
- 📱 Responsive design for all devices
- 🌓 Dark/Light mode support
- 📈 Real-time financial analytics
- 🔄 CSV import/export functionality
- Framework: Next.js 14 with App Router
- Language: TypeScript
- Styling: Tailwind CSS
- Database: NeonDB (Postgres) with DrizzleORM
- Authentication: Clerk
- Financial Integration: Plaid
- State Management: Zustand
- Charts: Recharts
- UI Components:
- Radix UI
- Shadcn/ui
- React Hook Form
- Zod Validation
- API Integration: Hono & TanStack Query
- Development: ESLint, Bun
- Clone the repository
git clone https://github.com/pakagronglb/fintrackr-finance-saas.git
- Install dependencies
bun install
- Set up environment variables
cp .env.example .env
- Set up your database
bun db:generate
bun db:migrate
- Run the development server
bun dev
Create a .env
file with the following variables:
# Clerk Authentication
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=''
CLERK_SECRET_KEY=''
CLERK_PUBLISHABLE_KEY=''
NEXT_PUBLIC_CLERK_SIGN_IN_URL='/sign-in'
NEXT_PUBLIC_CLERK_SIGN_UP_URL='/sign-up'
# Database
DATABASE_URL=''
# App
NEXT_PUBLIC_APP_URL='http://localhost:3000'
# Plaid
PLAID_CLIENT_TOKEN=''
PLAID_SECRET_TOKEN=''
# LemonSqueezy
LEMONSQUEEZY_STORE_ID=''
LEMONSQUEEZY_PRODUCT_ID=''
LEMONSQUEEZY_API_KEY=''
This project was built following the excellent tutorial by Code With Antonio. Special thanks to Antonio for providing such comprehensive guidance on building modern full-stack applications.
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions, issues, and feature requests are welcome! Feel free to check the issues page.
⭐️ If you found this project helpful, please give it a star!