You will need the following installed on your system:
- mise
- Node.js (via mise)
- pnpm (via mise)
- Docker
-
Clone the repository
git clone https://github.com/fairdataihub/nuxt-starter.git
-
Install the dependencies
mise trust # only needed if you are using mise on this project for the first time mise install pnpm install -
Add your environment variables. An example is provided at
.env.examplecp .env.example .env
-
Start the development server
pnpm dev
-
Open the application in your browser
open http://localhost:3000
The application uses a PostgreSQL database for storing data. You can use Docker to run these services locally.
docker-compose -f ./dev-docker-compose.yaml up
docker-compose -f ./dev-docker-compose.yaml up -d # if you want the db to run in the backgroundClose the database with:
docker-compose -f ./dev-docker-compose.yaml downThe application uses Prisma to interact with the database.
This template supports both Prisma and Kysely by design.
- Use Prisma for schema management, migrations, and generated types/client.
- Use Kysely when you need more explicit SQL composition, advanced joins, or query-builder ergonomics.
Why both:
- Complex reporting or performance-sensitive queries can be written in Kysely without abandoning type safety.
- You keep one source of truth for schema/migrations while still having low-level control where it matters.
Example API routes are included for both approaches under server/api/thing (Prisma) and server/api/kysely-thing (Kysely).
The application uses Nuxt UI to build the UI components. It also uses Tailwind CSS for styling.