Installation
Three tools have to exist on your machine before anything else works: Node, pnpm, and Docker. Everything after that is four commands.
For the rest of the setup surface, see Commands (scripts), Onboarding (pack env walkthrough), and Env variables (full catalog).
Prerequisites
| Tool | Version | Why |
|---|---|---|
| Node.js | 20 or newer | Runs the backend, the frontend dev server, and the CLI. |
| pnpm | 9 or newer | The monorepo uses pnpm workspaces. npm and yarn will not resolve it. |
| Docker | Any recent | Runs Postgres and Valkey locally so you do not install databases by hand. |
Node.js
Check what you have:
node --versionIf it prints anything below v20, install a current version. On macOS and Linux the least painful route is a version
manager, because you will want to switch versions eventually:
# macOS / Linux
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
nvm install 22
nvm use 22On Windows, install from nodejs.org or use nvm-windows.
pnpm
Node 20+ ships with Corepack, which is the tidiest way to get pnpm:
corepack enable
corepack prepare pnpm@latest --activate
pnpm --versionIf Corepack is unavailable, npm install -g pnpm works too.
pnpm is not optional
The repo is a pnpm workspace. Running npm install in it will produce a broken node_modules and a lockfile that
conflicts with everyone else's. If pnpm --version fails, stop here and fix that first.
Docker
Install Docker Desktop on macOS or Windows, or Docker Engine on Linux. Start it and confirm the daemon is up:
docker infoDocker only runs Postgres and Valkey for local development. If you already have a Postgres you want to use, you can skip
Docker and point DATABASE_URL at it instead.
Create the project
npx @hype-stack/cli create my-app
cd my-appThe CLI asks which AI assistants your team uses and writes the agent rules in each tool's own format. Tick as many as
you need. Pass --editor cursor,claude,codex to skip the question; the valid values are cursor, t3code, claude,
codex, copilot, opencode, and windsurf.
Install dependencies
pnpm installOne lockfile covers the whole monorepo: backend, frontend, admin app, and shared packages.
Start the databases
docker compose up -dThis starts Postgres and Valkey on ports scoped to this project, so several Hype Stack projects can run side by side without colliding.
Check they came up:
docker compose psSet environment variables
cp apps/backend/.env.example apps/backend/.env
cp apps/frontend/.env.example apps/frontend/.envThe defaults point at the Docker containers you just started, so the app boots as-is. You only need to edit these when you add a pack that talks to a third party, and the CLI tells you which variables it needs when that happens. See Env Variables for how they are typed and validated.
Run migrations
pnpm --filter @hype-stack/backend prisma:migrateThis creates the tables and generates the Prisma client that Kysely types its queries against.
Start everything
pnpm dev| App | URL |
|---|---|
| Frontend | http://localhost:4200 |
| Backend | http://localhost:3000 |
Both run with hot reload. For the Electron desktop build instead of the browser:
pnpm --filter @hype-stack/frontend start:appSame codebase, native window.
Verify
Before you move on, confirm the stack is actually healthy:
- Open the frontend at
http://localhost:4200and confirm it loads. - Hit the backend health check:
curl http://localhost:3000/ping(or open it in a browser). - Run a typecheck from the repo root:
pnpm typecheckIf those three pass, the workspace is wired correctly.
Related setup pages
| Page | When you need it |
|---|---|
| Commands | Full list of pnpm / Nx scripts |
| Onboarding | Fill .env after installing packs |
| Env variables | Typed catalog of backend and frontend keys |
| Troubleshooting | Common failures by area |
When it does not work
docker compose up fails with a port already in use. Something else is on the Postgres or Valkey port. Either stop
it, or change the host port in docker-compose.yml, then update DATABASE_URL to match.
Migrations fail to connect. The containers are probably still starting. Run docker compose ps and wait for the
health check, then try again.
Types are wrong after a schema change. The Prisma client is generated, not written. Re-run the migrate command, which regenerates it.
pnpm dev starts but the frontend cannot reach the API. Check that apps/frontend/.env exists. Without it the
frontend has no API URL and every request fails.
Next
- Fastest Template to start from a finished app instead of the bare starter.
- Compose Your Stack to add auth, billing, or notifications.
- Commands for everything
pnpm devis doing under the hood. - Going to production when you are ready to ship.
Every purchase and sponsorship funds my 8+ years of work on open source given freely to the community. It keeps the lights on, funds new packs, and keeps the ecosystem alive. Even a small tier means a lot. Thank you!
