Provides setup scripts and guidance for scaffolding full-stack applications and APIs.
/plugin marketplace add gaurangrshah/gsc-plugins/plugin install appgen@gsc-pluginsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
scripts/setup-api-only.shscripts/setup-monorepo.shscripts/setup-nextjs-app.shProvides setup scripts and guidance for scaffolding full-stack applications and APIs.
This skill helps the appgen agent scaffold projects using the appropriate framework and structure based on the application type.
Use when: Building complete web applications with frontend and backend.
Framework: Next.js 15 (App Router)
Features:
Script: ./scripts/setup-nextjs-app.sh
Usage:
./setup-nextjs-app.sh "project-name" "/output/path"
Use when: Building backend services, REST APIs, GraphQL servers.
Framework Options:
Features:
Script: ./scripts/setup-api-only.sh
Usage:
./setup-api-only.sh "project-name" "/output/path" "hono|express|fastify"
Use when: Multiple apps/packages need to share code.
Framework: Turborepo
Structure:
monorepo/
├── apps/
│ ├── web/ # Next.js app
│ └── api/ # Hono API
├── packages/
│ ├── database/ # Prisma schema + client
│ ├── ui/ # Shared UI components
│ └── typescript-config/ # Shared tsconfig
└── turbo.json
Script: ./scripts/setup-monorepo.sh
Usage:
./setup-monorepo.sh "project-name" "/output/path"
| Requirement | Recommended Type |
|---|---|
| SaaS dashboard with UI | Full-Stack (Next.js) |
| Admin panel | Full-Stack (Next.js) |
| REST API for mobile app | API-Only (Hono) |
| GraphQL server | API-Only (Express + Apollo) |
| Microservices | API-Only (Hono or Fastify) |
| Multiple frontends sharing API | Monorepo |
| Mobile + Web sharing backend | Monorepo |
Prisma:
npm install prisma @prisma/client
npm install -D prisma
Drizzle:
npm install drizzle-orm
npm install -D drizzle-kit
Zod:
npm install zod
Auth.js (Next.js):
npm install next-auth
Lucia (Universal):
npm install lucia @lucia-auth/adapter-prisma
Vitest:
npm install -D vitest @vitest/ui
Supertest (API testing):
npm install -D supertest @types/supertest
Playwright (E2E):
npm install -D @playwright/test
project-name/
├── app/
│ ├── (auth)/ # Auth pages (login, signup)
│ ├── (dashboard)/ # Protected dashboard pages
│ ├── api/ # API routes
│ └── layout.tsx # Root layout
├── components/
│ ├── ui/ # shadcn/ui components
│ └── features/ # Feature components
├── lib/
│ ├── db.ts # Database client
│ ├── auth.ts # Auth config
│ └── utils.ts # Utilities
├── prisma/
│ └── schema.prisma
├── tests/
│ ├── unit/
│ ├── integration/
│ └── e2e/
└── docs/
project-name/
├── src/
│ ├── routes/ # API route handlers
│ │ ├── users.ts
│ │ └── posts.ts
│ ├── services/ # Business logic
│ ├── middleware/ # Auth, validation
│ ├── types/ # TypeScript types
│ └── index.ts # App entry
├── prisma/
│ └── schema.prisma
├── tests/
│ ├── unit/
│ └── integration/
└── docs/
monorepo/
├── apps/
│ ├── web/ # Next.js frontend
│ └── api/ # Hono backend
├── packages/
│ ├── database/ # Shared Prisma
│ ├── ui/ # Shared components
│ ├── typescript-config/
│ └── eslint-config/
├── turbo.json
└── package.json
Strict mode:
{
"compilerOptions": {
"strict": true,
"noImplicitAny": true,
"strictNullChecks": true,
"noUnusedLocals": true,
"noUnusedParameters": true
}
}
{
"extends": ["next/core-web-vitals", "prettier"],
"rules": {
"@typescript-eslint/no-unused-vars": "error",
"@typescript-eslint/no-explicit-any": "warn"
}
}
{
"semi": true,
"singleQuote": true,
"tabWidth": 2,
"trailingComma": "es5"
}
All setup scripts must:
# Scaffold Next.js app
cd /path/to/appgen-projects
./setup-nextjs-app.sh "task-manager" "."
# Result:
# - task-manager - appgen/
# - Next.js 15 with App Router
# - TypeScript configured
# - Tailwind CSS
# - Ready for database integration
# Scaffold Hono API
cd /path/to/appgen-projects
./setup-api-only.sh "blog-api" "." "hono"
# Result:
# - blog-api - appgen/
# - Hono framework
# - TypeScript configured
# - Basic route structure
# - Ready for Prisma integration
# Scaffold monorepo
cd /path/to/appgen-projects
./setup-monorepo.sh "acme" "."
# Result:
# - acme - appgen/
# - Turborepo structure
# - web app (Next.js)
# - api app (Hono)
# - Shared packages
After running a scaffold script, the appgen agent should:
Verify infrastructure:
cd project-dir
npm install # Should succeed
npm run dev # Should start (if applicable)
Add database:
Add authentication:
Document architecture:
Symptoms:
Solutions:
npm cache clean --forceSymptoms:
Solutions:
lsof -ti:3000 | xargs killrm -rf node_modules && npm installv1.0 (2024-12-13)
Use when working with Payload CMS projects (payload.config.ts, collections, fields, hooks, access control, Payload API). Use when debugging validation errors, security issues, relationship queries, transactions, or hook behavior.