Blueprint catalogue
36 first-party blueprints. Every one of them is a directory with a manifest; nothing about them is privileged, and a blueprint you write works the same way. See Authoring blueprints.
Pick them with --add, or let a preset pick a coherent set for
you:
atarashi new my-api --add http/fastify --add db/postgres --add orm/drizzle
Blueprints declare capabilities rather than naming each other, so the resolver
pulls in what is missing and refuses combinations that cannot coexist. Two
blueprints that both provide database will not install together, and it
will tell you which ones to choose between.
By category
http
| Blueprint | What it does | Provides |
|---|---|---|
http/express | Express HTTP server with a health check, a versioned router and JSON response helpers. | http http:express |
http/fastify | Fastify HTTP server with structured logging, a health check and a versioned route prefix. | http http:fastify |
http/hono | Hono HTTP server on the Node adapter, with a health check and a versioned route prefix. | http http:hono |
database
| Blueprint | What it does | Provides |
|---|---|---|
db/mongodb | MongoDB connection with a startup ping and a Compose service; hands over to Mongoose when present. | database database:document database:mongodb |
db/mysql | MySQL connection pool with a startup health check and a Compose service. | database database:sql database:mysql |
db/postgres | PostgreSQL connection pool with a startup health check and a Compose service. | database database:sql database:postgres |
db/sqlite | File-backed SQLite database via better-sqlite3, with WAL enabled and no server to run. | database database:sql database:sqlite |
orm
| Blueprint | What it does | Provides |
|---|---|---|
orm/drizzle | Drizzle ORM wired to the selected SQL database, with a starter schema and drizzle-kit scripts. | orm orm:drizzle |
orm/mongoose | Mongoose connection lifecycle and a starter model for a MongoDB project. | orm orm:mongoose |
orm/prisma | Prisma schema and client wired to the selected SQL database, with migrate and studio scripts. | orm orm:prisma |
auth
| Blueprint | What it does | Provides |
|---|---|---|
auth/jwt | Stateless JWT auth: signing helpers, bcrypt password hashing and a bearer/cookie guard. | auth auth:jwt |
auth/session | Cookie-session auth for Express: signed session middleware, bcrypt hashing and a guard. | auth auth:session |
validation
| Blueprint | What it does | Provides |
|---|---|---|
validation/zod | Zod schemas plus a validated, typed environment loader that fails fast on bad config. | validation validation:zod config:env |
middleware
| Blueprint | What it does | Provides |
|---|---|---|
mw/cors | Cross-origin request handling driven by a CORS_ORIGIN allow-list, for Express, Fastify or Hono. | middleware:cors |
mw/error-handler | One consistent JSON error shape: an HttpError class, Zod validation mapping and no stack leaks. | middleware:error-handler |
mw/helmet | Sensible default security headers (CSP, HSTS, frame options) for Express, Fastify or Hono. | middleware:security-headers |
mw/rate-limit | Per-IP request throttling with standard RateLimit headers, for Express, Fastify or Hono. | middleware:rate-limit |
observability
| Blueprint | What it does | Provides |
|---|---|---|
obs/morgan-logger | Human-readable HTTP request logging for Express in development, combined format in production. | logging logging:morgan |
obs/pino | A shared Pino logger with pretty output in development and JSON lines in production. | logging logging:pino |
ci
| Blueprint | What it does | Provides |
|---|---|---|
ci/github | A CI workflow that installs, lints, typechecks, builds and tests on every push and pull request. | ci ci:github |
ci/gitlab | A GitLab pipeline that installs, lints, typechecks, builds and tests with a cached dependency store. | ci ci:gitlab |
meta
| Blueprint | What it does | Provides |
|---|---|---|
meta/editorconfig | Editor-agnostic indentation, charset and newline settings so diffs stay clean across machines. | meta:editorconfig |
meta/husky | A pre-commit hook that lints and formats only the files being committed. | meta:git-hooks |
meta/license | Writes the LICENSE text for the license chosen at generation time. | meta:license |
meta/readme | A README describing exactly this project: its scripts, its environment variables and its blueprints. | meta:readme |
core
| Blueprint | What it does | Provides |
|---|---|---|
core/node-js | Node 20 ESM project in plain JavaScript, with jsconfig for editor navigation. | runtime:node language language:javascript |
core/node-ts | Node 20 ESM project with strict TypeScript, tsx for development and tsc for builds. | runtime:node language language:typescript |
frontend
| Blueprint | What it does | Provides |
|---|---|---|
web/angular-tailwind | Standalone-component Angular app with Tailwind v4 via PostCSS and Vitest for unit tests. | ui ui:angular |
web/next | Next.js App Router with Tailwind v4, TypeScript and the default React Server Component setup. | ui ui:next |
web/react-vite-tailwind | React 19 on Vite with the Tailwind v4 plugin, strict TypeScript and Vitest. | ui ui:react |
infra
| Blueprint | What it does | Provides |
|---|---|---|
infra/docker | Multi-stage Dockerfile that builds with the project's package manager and runs as a non-root user. | infra:docker |
infra/docker-compose | A Compose file for the app that database blueprints extend with their own service and volume. | infra:compose |
lint
| Blueprint | What it does | Provides |
|---|---|---|
lint/biome | Biome as the single linter and formatter: one binary, one config, no plugin matrix. | lint lint:biome format |
lint/eslint-prettier | Flat-config ESLint for correctness and Prettier for formatting, with the two kept from fighting. | lint lint:eslint format |
test
| Blueprint | What it does | Provides |
|---|---|---|
test/jest | Jest in ESM mode, with ts-jest for TypeScript projects and a health-check test. | test test:jest |
test/vitest | Vitest with a coverage gate and a health-check test wired to the chosen HTTP framework. | test test:vitest |
Every blueprint
auth/jwt
Stateless JWT auth: signing helpers, bcrypt password hashing and a bearer/cookie guard.
Requires http, config:env, conflicts on auth.
auth/session
Cookie-session auth for Express: signed session middleware, bcrypt hashing and a guard.
Requires http:express, config:env, conflicts on auth.
ci/github
A CI workflow that installs, lints, typechecks, builds and tests on every push and pull request.
Requires runtime:node, conflicts on ci.
ci/gitlab
A GitLab pipeline that installs, lints, typechecks, builds and tests with a cached dependency store.
Requires runtime:node, conflicts on ci.
core/node-js
Node 20 ESM project in plain JavaScript, with jsconfig for editor navigation.
Requires nothing, conflicts on language.
core/node-ts
Node 20 ESM project with strict TypeScript, tsx for development and tsc for builds.
Requires nothing, conflicts on language.
db/mongodb
MongoDB connection with a startup ping and a Compose service; hands over to Mongoose when present.
Requires runtime:node, config:env, conflicts on database.
db/mysql
MySQL connection pool with a startup health check and a Compose service.
Requires runtime:node, config:env, conflicts on database.
db/postgres
PostgreSQL connection pool with a startup health check and a Compose service.
Requires runtime:node, config:env, conflicts on database.
db/sqlite
File-backed SQLite database via better-sqlite3, with WAL enabled and no server to run.
Requires runtime:node, config:env, conflicts on database.
http/express
Express HTTP server with a health check, a versioned router and JSON response helpers.
Requires runtime:node, config:env, conflicts on http.
http/fastify
Fastify HTTP server with structured logging, a health check and a versioned route prefix.
Requires runtime:node, config:env, conflicts on http.
http/hono
Hono HTTP server on the Node adapter, with a health check and a versioned route prefix.
Requires runtime:node, config:env, conflicts on http.
infra/docker
Multi-stage Dockerfile that builds with the project's package manager and runs as a non-root user.
Requires runtime:node.
infra/docker-compose
A Compose file for the app that database blueprints extend with their own service and volume.
Requires infra:docker.
lint/biome
Biome as the single linter and formatter: one binary, one config, no plugin matrix.
Requires runtime:node, conflicts on lint, format.
lint/eslint-prettier
Flat-config ESLint for correctness and Prettier for formatting, with the two kept from fighting.
Requires runtime:node, conflicts on lint, format.
meta/editorconfig
Editor-agnostic indentation, charset and newline settings so diffs stay clean across machines.
Requires nothing.
meta/husky
A pre-commit hook that lints and formats only the files being committed.
Requires runtime:node, lint.
meta/license
Writes the LICENSE text for the license chosen at generation time.
Requires nothing.
meta/readme
A README describing exactly this project: its scripts, its environment variables and its blueprints.
Requires nothing.
mw/cors
Cross-origin request handling driven by a CORS_ORIGIN allow-list, for Express, Fastify or Hono.
Requires http, config:env.
mw/error-handler
One consistent JSON error shape: an HttpError class, Zod validation mapping and no stack leaks.
Requires http, validation, config:env.
mw/helmet
Sensible default security headers (CSP, HSTS, frame options) for Express, Fastify or Hono.
Requires http.
mw/rate-limit
Per-IP request throttling with standard RateLimit headers, for Express, Fastify or Hono.
Requires http.
obs/morgan-logger
Human-readable HTTP request logging for Express in development, combined format in production.
Requires http:express, config:env, conflicts on logging.
obs/pino
A shared Pino logger with pretty output in development and JSON lines in production.
Requires runtime:node, config:env, conflicts on logging.
orm/drizzle
Drizzle ORM wired to the selected SQL database, with a starter schema and drizzle-kit scripts.
Requires database:sql, language:typescript, conflicts on orm.
orm/mongoose
Mongoose connection lifecycle and a starter model for a MongoDB project.
Requires database:mongodb, conflicts on orm.
orm/prisma
Prisma schema and client wired to the selected SQL database, with migrate and studio scripts.
Requires database:sql, language:typescript, conflicts on orm.
test/jest
Jest in ESM mode, with ts-jest for TypeScript projects and a health-check test.
Requires runtime:node, conflicts on test.
test/vitest
Vitest with a coverage gate and a health-check test wired to the chosen HTTP framework.
Requires runtime:node, conflicts on test.
validation/zod
Zod schemas plus a validated, typed environment loader that fails fast on bad config.
Requires runtime:node, conflicts on validation.
web/angular-tailwind
Standalone-component Angular app with Tailwind v4 via PostCSS and Vitest for unit tests.
Requires language:typescript, conflicts on ui.
web/next
Next.js App Router with Tailwind v4, TypeScript and the default React Server Component setup.
Requires language:typescript, conflicts on ui.
web/react-vite-tailwind
React 19 on Vite with the Tailwind v4 plugin, strict TypeScript and Vitest.
Requires language:typescript, conflicts on ui.
Part of the atarashi documentation, written and maintained by Gautam Suthar.