A production-ready full-stack To-Do Application with complete CRUD functionality, modern UI/UX, and a scalable Next.js App Router architecture.
- Full CRUD Support: Create, Read, Update, and Delete tasks.
- Bulk Actions: Delete multiple tasks at once.
- Advanced Filtering & Sorting: Filter by status, priority, category. Sort by due date, priority, title, and creation time.
- Optimistic UI Updates: Instant feedback on client actions without waiting for the server.
- Responsive Dashboard: Beautiful, professional UI built with Tailwind CSS and custom components.
- Dark Mode: Support for light, dark, and system themes.
- Database: Prisma ORM with SQLite (development) and PostgreSQL (production ready).
- Frontend: Next.js 14 (App Router), React, TypeScript, Tailwind CSS, Lucide React
- Backend & API: Next.js Serverless Route Handlers
- Database: PostgreSQL (Prisma ORM)
- Forms & Validation: React Hook Form, Zod
- Notifications: Sonner
- Clone the repository
- Install dependencies:
npm install - Database Configuration:
The development environment uses SQLite. For production, update
prisma/schema.prismato usepostgresqland setDATABASE_URLin.env. - Migrate the Database:
npx prisma migrate dev - Run the App:
npm run dev - Open http://localhost:3000
We recommend using a managed PostgreSQL service like Railway, Neon, Render, or Supabase.
- Create a PostgreSQL database on one of the platforms.
- Copy the connection string URL.
- In
prisma/schema.prisma, change the provider from"sqlite"to"postgresql".
- Push your code to a GitHub repository.
- Import the project in Vercel.
- In the Vercel Environment Variables settings, add:
DATABASE_URL= Your PostgreSQL connection string.
- Vercel will automatically run
npm run build. Add a customized build script overriding default in Vercel inside package.json to generate Prisma Client:"build": "prisma generate && prisma migrate deploy && next build" - Click Deploy.
- Strict TypeScript enforcement (no implicit any)
- Server-side and client-side Zod validation
- Reusable UI primitives isolated in
src/components/ui/ - Tailwind configuration utilizing CSS Variables for precise theming.