Getting Started
create-ggstack is an interactive CLI. It writes a pnpm workspace with Turborepo, a typed env package, and the apps and packages you select.
Requirements
- Node.js 22 or newer
- pnpm — the generated monorepo uses pnpm workspaces even if you pass
--npm,--yarn, or--bun
Create a project
The fastest path is the visual builder: pick your stack, copy the command, paste it in a terminal.
- Open Create
- Choose apps, packages, auth, database, payments, email, and tooling
- Copy the generated command. It looks like this:
pnpm create ggstack@latest my-app --stack g1e30--stack packs the whole config into a short code and skips every prompt. Share the builder URL to send someone the same setup. Inspect a code with pnpm create ggstack --decode <code>.
You can still run the CLI interactively:
pnpm create ggstackOr pass a directory name:
pnpm create ggstack my-appOther runners:
npx create-ggstack my-app --pnpm
pnpm dlx create-ggstack my-appWithout --stack, the CLI prompts for apps, package extras (including a shadcn base and, if you want one, a preset when shadcn/ui is on), tooling, auth, a database ORM, a payment provider (Stripe, Polar, or Autumn), an email provider (Resend), and — when you pick Drizzle or Prisma — which database to use. You can also pass a shadcn preset on the command line with --preset <code>. See CLI.
After the CLI finishes
cd my-app
cp .env.example .env
pnpm install
pnpm devpnpm dev runs Turbo dev across apps that define that script (Vite, Next.js, Astro, Electron, Express, Fastify, TanStack Start, React Router). Expo uses start instead — run it from the app package. Fill in .env before anything that reads packages/env; validation fails on empty required values unless you skip it. Details are in Environment.
The scaffolded repo also gets a README.md that lists what you selected and the same next steps.
Add to an existing ggstack project
From the root of a workspace previously created by ggstack, run:
pnpm create ggstack@latest --addSelect the new apps, packages, providers, or tooling you want. The command checks for collisions, adds the new component directories, and merges required environment configuration. See Add to an Existing Project for the complete behavior and limitations.