supastarter for Next.js – Skill
Expert guidance for building production-ready SaaS applications with the supastarter Next.js starter kit. Next.js only; no Vue/Nuxt content.
When to Use This Skill
Use this skill when:
- Building or modifying a supastarter Next.js app
- Adding features (new entities, API endpoints, UI, i18n)
- Working with Prisma, oRPC, Better Auth, Stripe, or the monorepo structure
- Debugging setup, configuration, deployment, or troubleshooting
- The user mentions supastarter Next.js, Prisma, oRPC, Better Auth, or related stack topics
High-Level Workflow: New Feature
Follow this order when adding a feature:
- Schema – Add or update Prisma models in
packages/database/prisma/schema.prisma; run migrations.
- Queries – Add query functions in
packages/database/prisma/queries/ and export from queries/index.ts.
- API – Add oRPC procedures in
packages/api/modules/<name>/ (types, procedures, router); mount router in packages/api/orpc/router.ts.
- UI – Add React components in
apps/web/ (e.g. modules/shared/components/); use shadcn, TanStack Query, session hooks.
- i18n – Add translation keys in
packages/i18n/translations/{en,de}.json.
Full walkthrough: assets/recipes/feedback-widget.md.
Project Structure (Next.js Monorepo)
apps/web/ # Next.js app (App Router, app/, components/, config/, lib/)
packages/
api/ # Hono + oRPC (modules/, orpc/router.ts)
auth/ # Better Auth config
database/ # Prisma schema, migrations, queries
i18n/ # Translations
mail/ # React Email templates, providers
storage/ # S3-compatible storage
ui/ # Shared UI (shadcn)
config/ # Shared config
Use package exports (e.g. @repo/api, @repo/database) instead of deep relative imports.
References (Progressive Disclosure)
Load only the reference files you need. All paths are from the skill root, one level deep.
Before writing code, read references/coding-conventions.md. For copy-paste patterns and commands, use references/code-patterns.md and references/quick-reference.md.
| Topic |
File |
| Coding conventions (read first) |
references/coding-conventions.md |
| Code patterns (examples) |
references/code-patterns.md |
| Quick reference (commands, paths) |
references/quick-reference.md |
| Tech stack |
references/tech-stack.md |
| Setup, install, deps |
references/setup.md |
| Env, config, feature flags |
references/configuration.md |
| Debugging, common issues |
references/troubleshooting.md |
| Prisma schema, migrations, queries |
references/database-patterns.md |
| Hono/oRPC, procedures, router |
references/api-patterns.md |
| Better Auth, session, protected endpoints |
references/auth-patterns.md |
| Orgs, roles, multi-tenancy |
references/organization-patterns.md |
| Stripe, webhooks, subscriptions |
references/payments-patterns.md |
| AI features, models |
references/ai-patterns.md |
| UI, theming, extensions |
references/customization.md |
| S3-compatible, uploads |
references/storage-patterns.md |
| Emails, templates, providers |
references/mailing-patterns.md |
| i18n, locales, translations |
references/internationalization.md |
| Meta, sitemap, structured data |
references/seo.md |
| Deploy, production |
references/deployment.md |
| Cron, background jobs |
references/background-tasks.md |
| Analytics integration |
references/analytics.md |
| Monitoring, errors |
references/monitoring.md |
| E2E tests |
references/e2e-testing.md |
Assets
- Env template: assets/env.example – environment variable keys and short comments (no secrets).
- Full recipe: assets/recipes/feedback-widget.md – build a feature from DB → API → UI → i18n (feedback widget example).
Scripts
- generate_module.py – Scaffolds a new API module (types, procedures, router). See scripts/README.md or the Scripts section below.
How to run (from supastarter monorepo root):
python scripts/generate_module.py <module-name>
Example: python scripts/generate_module.py feedback creates packages/api/modules/feedback/ with types.ts, procedures/create.ts, and router.ts. Mount the router in packages/api/orpc/router.ts manually.
Conventions (Summary)
- TypeScript everywhere; interfaces for object shapes.
- Named function exports for React components; prefer Server Components; use
"use client" only when needed.
- Forms: react-hook-form + zod; API: oRPC procedures in
packages/api/modules/.
- Use
@repo/* package imports; do not instantiate Prisma/Drizzle in app code.
- pnpm, Biome (format/lint), Turbo; Node.js ≥ 20.
Before writing code, read references/coding-conventions.md. For examples and commands: references/code-patterns.md, references/quick-reference.md, references/customization.md, references/api-patterns.md.
Official Docs
1---2name: supastarter-nextjs-skill3description: Guides development with supastarter for Next.js only (not Vue/Nuxt): tech stack, setup, configuration, database (Prisma), API (Hono/oRPC), auth (Better Auth), organizations, payments (Stripe), AI, customization, storage, mailing, i18n, SEO, deployment, background tasks, analytics, monitoring, E2E. Use when building or modifying supastarter Next.js apps, adding features, or when the user mentions supastarter Next.js, Prisma, oRPC, Better Auth, or related Next.js stack topics.4license: See LICENSE5---67# supastarter for Next.js – Skill89Expert guidance for building production-ready SaaS applications with the supastarter Next.js starter kit. **Next.js only**; no Vue/Nuxt content.1011## When to Use This Skill1213Use this skill when:1415- Building or modifying a supastarter Next.js app16- Adding features (new entities, API endpoints, UI, i18n)17- Working with Prisma, oRPC, Better Auth, Stripe, or the monorepo structure18- Debugging setup, configuration, deployment, or troubleshooting19- The user mentions supastarter Next.js, Prisma, oRPC, Better Auth, or related stack topics2021## High-Level Workflow: New Feature2223Follow this order when adding a feature:24251. **Schema** – Add or update Prisma models in `packages/database/prisma/schema.prisma`; run migrations.262. **Queries** – Add query functions in `packages/database/prisma/queries/` and export from `queries/index.ts`.273. **API** – Add oRPC procedures in `packages/api/modules/<name>/` (types, procedures, router); mount router in `packages/api/orpc/router.ts`.284. **UI** – Add React components in `apps/web/` (e.g. `modules/shared/components/`); use shadcn, TanStack Query, session hooks.295. **i18n** – Add translation keys in `packages/i18n/translations/{en,de}.json`.3031Full walkthrough: [assets/recipes/feedback-widget.md](assets/recipes/feedback-widget.md).3233## Project Structure (Next.js Monorepo)3435```36apps/web/ # Next.js app (App Router, app/, components/, config/, lib/)37packages/38 api/ # Hono + oRPC (modules/, orpc/router.ts)39 auth/ # Better Auth config40 database/ # Prisma schema, migrations, queries41 i18n/ # Translations42 mail/ # React Email templates, providers43 storage/ # S3-compatible storage44 ui/ # Shared UI (shadcn)45 config/ # Shared config46```4748Use package exports (e.g. `@repo/api`, `@repo/database`) instead of deep relative imports.4950## References (Progressive Disclosure)5152Load only the reference files you need. All paths are from the skill root, one level deep.5354**Before writing code**, read [references/coding-conventions.md](references/coding-conventions.md). For copy-paste patterns and commands, use [references/code-patterns.md](references/code-patterns.md) and [references/quick-reference.md](references/quick-reference.md).5556| Topic | File |57|-------|------|58| **Coding conventions** (read first) | [references/coding-conventions.md](references/coding-conventions.md) |59| **Code patterns** (examples) | [references/code-patterns.md](references/code-patterns.md) |60| **Quick reference** (commands, paths) | [references/quick-reference.md](references/quick-reference.md) |61| Tech stack | [references/tech-stack.md](references/tech-stack.md) |62| Setup, install, deps | [references/setup.md](references/setup.md) |63| Env, config, feature flags | [references/configuration.md](references/configuration.md) |64| Debugging, common issues | [references/troubleshooting.md](references/troubleshooting.md) |65| Prisma schema, migrations, queries | [references/database-patterns.md](references/database-patterns.md) |66| Hono/oRPC, procedures, router | [references/api-patterns.md](references/api-patterns.md) |67| Better Auth, session, protected endpoints | [references/auth-patterns.md](references/auth-patterns.md) |68| Orgs, roles, multi-tenancy | [references/organization-patterns.md](references/organization-patterns.md) |69| Stripe, webhooks, subscriptions | [references/payments-patterns.md](references/payments-patterns.md) |70| AI features, models | [references/ai-patterns.md](references/ai-patterns.md) |71| UI, theming, extensions | [references/customization.md](references/customization.md) |72| S3-compatible, uploads | [references/storage-patterns.md](references/storage-patterns.md) |73| Emails, templates, providers | [references/mailing-patterns.md](references/mailing-patterns.md) |74| i18n, locales, translations | [references/internationalization.md](references/internationalization.md) |75| Meta, sitemap, structured data | [references/seo.md](references/seo.md) |76| Deploy, production | [references/deployment.md](references/deployment.md) |77| Cron, background jobs | [references/background-tasks.md](references/background-tasks.md) |78| Analytics integration | [references/analytics.md](references/analytics.md) |79| Monitoring, errors | [references/monitoring.md](references/monitoring.md) |80| E2E tests | [references/e2e-testing.md](references/e2e-testing.md) |8182## Assets8384- **Env template**: [assets/env.example](assets/env.example) – environment variable keys and short comments (no secrets).85- **Full recipe**: [assets/recipes/feedback-widget.md](assets/recipes/feedback-widget.md) – build a feature from DB → API → UI → i18n (feedback widget example).8687## Scripts8889- **generate_module.py** – Scaffolds a new API module (types, procedures, router). See [scripts/README.md](scripts/README.md) or the Scripts section below.9091**How to run** (from supastarter monorepo root):9293```bash94python scripts/generate_module.py <module-name>95```9697Example: `python scripts/generate_module.py feedback` creates `packages/api/modules/feedback/` with `types.ts`, `procedures/create.ts`, and `router.ts`. Mount the router in `packages/api/orpc/router.ts` manually.9899## Conventions (Summary)100101- TypeScript everywhere; interfaces for object shapes.102- Named function exports for React components; prefer Server Components; use `"use client"` only when needed.103- Forms: react-hook-form + zod; API: oRPC procedures in `packages/api/modules/`.104- Use `@repo/*` package imports; do not instantiate Prisma/Drizzle in app code.105- pnpm, Biome (format/lint), Turbo; Node.js ≥ 20.106107**Before writing code**, read [references/coding-conventions.md](references/coding-conventions.md). For examples and commands: [references/code-patterns.md](references/code-patterns.md), [references/quick-reference.md](references/quick-reference.md), [references/customization.md](references/customization.md), [references/api-patterns.md](references/api-patterns.md).108109## Official Docs110111- Next.js docs (only): <https://supastarter.dev/docs/nextjs>112- Download docs as .md: <https://supastarter.dev/nextjs-docs.zip>