An interactive, progressively enhanced project task manager with filtering using Next.js 15 with Tailwind CSS and Prisma. It's been purposely slowed down to showcase the handling of loading state.
See filter-provider
branch for a context API version, which batches all filters into a single state, fixing the problem of them being discarded when toggling across multiple.
See nuqs
branch for a version using nuqs to accomplish the same thing. It's probably better to use a library, right?
This is a Next.js project bootstrapped with create-next-app
.
This project uses next/font
to automatically optimize and load Inter, a custom Google Font.
First, install the dependencies:
npm install
Then, run the development server:
npm run dev
Open http://localhost:3000 with your browser to see the result.
You need decide between prisma local development with sqlite
or a real database with for example postgresql
or sqlserver
. Define it in the schema.prisma
file.
Consider adding a .env
file to the root of the project and use the environment variables inside schema.prisma
with env("DATABASE_URL")
, refer to .env.sample
.
When using sqlite, initialize the database with:
npm run prisma.push
Seed prisma/seed.ts for initial data:
npm run prisma.seed
To view your data in the database, you can run:
npm run prisma.studio
When using a real database with for example postgresql or sqlserver, you need to migrate the database schema with:
npm run prisma.migrate
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.
Check out a TanStack Start clone of this project, made by Devlin Duldulao 🔥