Quick Start (5 minutes)
The fastest way to a running Nestia project is to clone the starter, install, and run. We will explore the code on the next page.
Prerequisites: Node.js 20+, a package manager (npm / pnpm / yarn / bun), and Go 1.26+ for the first build (Nestia compiles a small build-time helper once, then caches it; you pay this ~30-second cost once per machine). No Go installed? Grab it from go.dev/dl , or skip ahead to the in-browser Playground — no local setup needed there.
1. Clone the starter
npx nestia start my-app
cd my-appThe nestia start command clones nestia-start — a tiny NestJS project preconfigured with @nestia/core, @nestia/sdk, and a working build pipeline. It also runs install, build, and the test suite, so when the command returns you already know everything works.
Already have a NestJS project? Skip ahead to Setup for the install steps on an existing repo. Come back here after you have ttsc building cleanly.
2. Start the dev server
npm
npm run start:devThe server listens on http://localhost:37001 by default.
3. Call an endpoint
In a second terminal:
curl http://localhost:37001/healthYou should see "OK". That is a real, type-checked NestJS controller — wired with Nestia’s @TypedRoute.Get() instead of NestJS’s @Get().
What just happened
You ran a NestJS server where:
- The controller uses
@TypedRoute.Get()— same shape as@Get(), but the response is type-checked and serialized 200× faster. - The build runs through
ttsc— a Go-based TypeScript compiler that applies Nestia’s transformer at compile time. (tsccannot apply the transform; that is why the starter usesttsc.) - A client SDK is already generated under
src/api/from those controllers. We will use it in Chapter 6.
Troubleshooting
go: command not found or a Go diagnostic on first build.
ttsc builds the Nestia transformer from Go source on demand. Install Go 1.26+ from go.dev/dl , then rerun the build.
Anything else.
Most install-time errors come from running nest build instead of ttsc. See Setup → Troubleshooting for the full list.
Next
Continue to Your First Endpoint to see what makes those controllers tick.