Portable TypeScript API starter built as a small pnpm workspace monorepo.
- Hono-based shared app core with REST + OpenAPI
- Node adapter and Cloudflare Worker adapter
- Strict TypeScript + ESM
- Zod contracts shared across validation, types, and OpenAPI
- Biome, Vitest, tsup, and tsx
- OpenTelemetry-first observability with optional Sentry
- Agent-oriented repo docs and package boundaries
apps/api-node: Node runtime, local server, Docker entrypoint, OTEL bootstrapapps/api-worker: Cloudflare Worker adapter proving runtime portabilitypackages/api-core: runtime-neutral app assembly and middlewarepackages/contracts: route definitions, DTOs, and OpenAPI generationpackages/config: typed env parsing for Node and Worker runtimes
pnpm install
pnpm dev:nodeThen open:
http://localhost:3000/healthzhttp://localhost:3000/readyzhttp://localhost:3000/openapi.jsonhttp://localhost:3000/docs
pnpm lint
pnpm typecheck
pnpm test
pnpm build
pnpm openapi:generate
pnpm openapi:check
pnpm verifyCopy .env.example to .env when you want local overrides. Everything is validated on startup.