A task & habit tracker built with Next.js, Drizzle ORM, and PostgreSQL—fully containerized with Docker.
Note: Before running the app for the first time, you need to seed the database with a default data.
- Next.js
- Tailwind CSS
- Shadcn UI
- Drizzle ORM
- PostgreSQL
- Docker & Docker Compose
- Adminer
- Docker & Docker Compose installed
This is a Next.js project bootstrapped with create-next-app.
First, create your .env file
DATABASE_URL="postgres://postgres:mypassword@localhost:5432/postgres"start containers:
docker-compose up -dthis will launch:
- PostgreSQL on port
5432 - Adminer on port
8080
then, install dependecies
npm installrun the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun devOpen http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.
This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.
Before running the app for the first time, you need to seed the database with a default user. I provide a seed script that:
- Create default user and settings.
- Inserts three sample tasks (TASK, HABIT, EVENT) with today’s date as the start_date.
npm run db:seedAfter seeding you should see in logs:
Seed complete!- Access Adminer at http://localhost:8080
- System: PostgreSQL
- Server: postgres (service name)
- Username: postgres
- Password: mypassword
- Database: postgres
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.