Next.js + Drizzle + tRPC Budget App
Author: Cristian González /
Next.js 15 React 19 TypeScript Tailwind CSS Radix UI Components React Hook Form Zod I18n Drizzle tRPC Turso
A modern, full-stack budget tracking application built with Next.js, tRPC, and Drizzle ORM. This application helps users manage their finances by tracking income and expenses, categorizing transactions, and providing insightful analytics.
Features
-
📊 Dashboard Overview
- Real-time financial KPIs
- Transaction history visualization
- Category-wise spending analysis
- Date range filtering for transactions
-
💰 Transaction Management
- Add, edit, and delete transactions
- Categorize transactions (income/expense)
- Add tags for better organization
- Support for multiple payment methods
- Transaction history with pagination
-
📑 Category Management
- Create and manage custom categories
- Color coding for visual organization
- Income/expense categorization
- Bulk category operations
-
🌐 Internationalization
- Multi-language support
- Automatic language detection
- Easy translation management
-
🎨 Modern UI/UX
- Responsive design
- Dark/Light mode support
- Intuitive navigation
- Real-time feedback with toast notifications
Tech Stack
-
Frontend
- Next.js 15
- React 19
- TypeScript
- Tailwind CSS
- Radix UI Components
- React Hook Form
- Zod for validation
-
Backend
- tRPC for type-safe API
- Drizzle ORM
- Turso (SQLite) database
- NextAuth.js for authentication
-
Development Tools
- ESLint
- TypeScript
- Drizzle Kit for database migrations
Getting Started
- Clone the repository
git clone git@github.com:yarmolem/budget.git
cd budget-app
- Install dependencies
npm install
- Set up environment variables
Create a
.env
file in the root directory with the following variables:
NEXTAUTH_SECRET="your-secret-key"
NEXTAUTH_URL="http://localhost:3000"
TURSO_CONNECTION_URL="your-turso-connection-url"
TURSO_AUTH_TOKEN="your-turso-auth-token"
- Run database migrations
npm run db:generate
npm run db:migrate
- Start the development server
npm run dev
The application will be available at http://localhost:3000
Database Management
- Generate migrations:
npm run db:generate
- Apply migrations:
npm run db:migrate
- Open database studio:
npm run db:studio
License
This project is licensed under the MIT License - see the LICENSE file for details.