RouteGraph v1.0.0 is out. It's stable, it's typed, it's not going to rewrite your framework of choice into a decorator soup. → Try it in 90 seconds

Packages

Ten packages. Independently versioned, independently installed, all at 1.0.0. You install @routegraph/core and exactly one adapter — the rest are opt-in, which is our polite way of saying we didn’t make you download five frameworks’ worth of dependencies just to draw a GET /health.

⚠️

There is no unscoped routegraph package on npm. The workspace root is private. Every real install starts with @routegraph/core.

🧠 @routegraph/core
Scanner, loader, validator, the RouteGraph class. Zero runtime dependencies — the engine, not a framework.
pnpm add @routegraph/core zod
🚂 @routegraph/express
Express v4/v5 adapter. The reference implementation — most examples start here.
pnpm add @routegraph/express express
🔥 @routegraph/hono
Hono v4 adapter. Runs on Node, Bun, Deno, and Cloudflare Workers, same routes/.
pnpm add @routegraph/hono hono
⚡ @routegraph/fastify
Fastify v4/v5 plugin. Built-in Fastify validation is disabled in favor of Zod, on purpose.
pnpm add @routegraph/fastify fastify
🦊 @routegraph/elysia
Elysia plugin, Bun-native. Needs @elysiajs/node if you’re running it on Node instead.
pnpm add @routegraph/elysia elysia
🌿 @routegraph/koa
Koa v2 adapter. Requires koa-body ahead of it in the middleware chain — see the adapter notes.
pnpm add @routegraph/koa koa @koa/router koa-body
👀 @routegraph/watcher
Chokidar-based file watcher. Reloads changed, added, or removed route files into a running graph.
pnpm add -D @routegraph/watcher
📚 @routegraph/docs
The self-contained interactive docs UI, plus static export. No React, no CDN, no build step.
pnpm add -D @routegraph/docs
🔌 @routegraph/client
Type-safe fetch client, inferred from your routes. No runtime codegen, no hand-maintained .d.ts.
pnpm add @routegraph/client
🧭 @routegraph/cli
The routegraph command: init, dev, build, routes, validate, generate-client, export-docs.
pnpm add -D @routegraph/cli

Peer dependencies

zod is a peer dependency of @routegraph/core — install it yourself. Each adapter peers on its own framework (express, hono, fastify, elysia, koa + @koa/router + koa-body) so you never pull in four frameworks you’re not using.

TypeScript

Every package builds against the same strict base config — no any types anywhere in the codebase:

tsconfig.base.json
{
  "strict": true,
  "exactOptionalPropertyTypes": true,
  "noUncheckedIndexedAccess": true,
  "noImplicitReturns": true,
  "noFallthroughCasesInSwitch": true,
  "forceConsistentCasingInFileNames": true
}

All packages are ESM-only. If your project is still on CommonJS, that’s the one real prerequisite here.