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.