Use this project to kick off your End-to-End typesafe project with TRPC and Nuxt.
- Fast HMR (Vite)
- Typesafe API (TypeScript & tRPC)
- Vue3 / Nuxt 3
- Typescript
- eslint # https://nuxt.com/modules/eslint#nuxtjseslint-module
- Prisma ORM # https://www.prisma.io/ (Next-auth schema)
- Pinia state management
- tRPC API # https://trpc.io/
- Nuxt Auth # https://sidebase.io/nuxt-auth/ (GitHub and Auth0 enabled)
- Vite
npm i- populate .env
- prisma setup
eslint --init
npx nuxi init v3-project-namenpm inpm i @trpc/server @trpc/client trpc-nuxt zod @next-auth/prisma-adapter @pinia/nuxtnpm i -D pinia --legacy-peer-depsnpm i -D @sidebase/nuxt-auth @types/node prisma eslint @nuxtjs/eslint-config-typescript- continue setup using "from this template" section
├── server │ ├── api │ │ ├── trpc │ │ │ └── [trpc].ts <-- tRPC HTTP handler │ │ └── auth │ │ └── [...].ts <-- catch all auth HTTP handler │ ├── middleware │ │ └── 0.auth-session.ts <-- first in order, add auth session to event ctx │ ├── trpc │ │ ├── trpc.ts <-- procedure helpers │ │ ├── context.ts <-- create app context │ │ ├── router.ts <-- main app router │ │ └── routers <-- sub-routers │ │ ├── user.ts │ │ └── [..] │ └── prisma.ts <-- prisma client ├── prisma │ ├── migrations │ │ └── [..] │ ├── schema.prisma │ └── seed.ts ├── plugins │ └── client.ts <-- tRPC client plugin ├── store │ └── index.ts <-- main pinia store Start the development server on http://localhost:3000
npm run devBuild the application for production:
npm run buildLocally preview production build:
npm run previewCheck out the deployment documentation for more information.