← ClaudeAtlas

nodejs-scaffoldlisted

Scaffolds a production-ready Node.js modular-monolith REST API — Fastify, TypeBox code-first OpenAPI, Drizzle + Postgres, JWT+argon2id, outbox/inbox, job queue. Triggers: 'scaffold node api', 'create a fastify backend', 'new node backend', or a repo with no package.json.
tammai/bigin-skills · ★ 0 · API & Backend · score 65
Install: claude install-skill tammai/bigin-skills
# nodejs-scaffold This skill is mechanical: gather config, run the script, relay its output. Do not deliberate — no thinking needed on any step here. Scaffolds a Node.js REST API from a single template. The mechanical work is done by a deterministic script — `scripts/scaffold.mjs` (Node stdlib only, cross-platform, zero prompts). This skill's only jobs: **decide the CLI flags, run the script, report the result.** Do not perform any scaffolding steps yourself. Stack: Node.js ≥22, Fastify (modular monolith), **code-first OpenAPI** via TypeBox + `@fastify/swagger`/`@fastify/swagger-ui` (route schemas generate `src/api/openapi.json`), per-module `drizzle-orm` schemas + `postgres` (postgres.js) + Postgres with `drizzle-kit` migrations, JWT (`@fastify/jwt`, HS256) + argon2id auth, an in-process event bus + `graphile-worker` job queue (outbox/inbox pattern), Idempotency-Key handling, cursor pagination, a fixed nested error contract, `@fastify/cors` + `@fastify/rate-limit`, Fastify's built-in `pino` logger, ESLint (flat config) with `eslint-plugin-boundaries` enforcing module boundaries, Vitest. One template only — no variant menu like nuxt-scaffold's. The generated app ships **two example modules** proving the full architecture end-to-end: `users` (create/list/get + auth) and `posts` (which composes `author_name` from `users` through a real cross-module read — the concrete proof the module boundary and batch-get rule work, not an empty folder a lint rule passes on). Everything e