Skip to content
atarashi

v1.0.0 / MIT / Node 20.11+

Choose what it does. Not which folder to copy.

Atarashi builds a project out of 36 small composable blueprints. You pick capabilities: an HTTP framework, a database, an ORM, auth, testing. It resolves them, adds what you forgot, refuses what cannot work, and writes nothing to disk until the whole plan is valid.

No install required. Runs straight from npm.

01 / Compose

Blueprints declare capabilities, not each other.

orm/drizzle requires a SQL database. It does not care which one, so it works with Postgres, MySQL or SQLite, and Atarashi works out the rest.

Ask for an ORM on its own and it tells you a database is missing, then names the ones that would satisfy it. Ask for two databases and it refuses, naming both. When exactly one blueprint can satisfy a requirement, it is added for you.

That indirection is the reason a project generated weeks ago can still grow a new capability. The choices are recorded in atarashi.json, which is what makes atarashi add possible later.

36 blueprints by category

database
4
meta
4
middleware
4
frontend
3
http
3
orm
3
auth
2
ci
2
infra
2
lint
2
logging
2
runtime
2
test
2
validation
1

02 / Refuse

Nothing is written until the plan is valid.

A conflict is an error with a suggested fix, never a half generated directory.

Dry run

Pass --dry-run and it prints the whole plan, every file and every dependency, then writes nothing.

Reproducible

Every project records its spec in atarashi.json. Regenerating from it produces byte identical output. Generated secrets are the deliberate exception.

Offline

The blueprints ship inside the package. The registry is an optimisation, not a requirement.

03 / Grow

Three weeks later, in the same project.

Generated files carry region markers, so a blueprint contributes into a named slot instead of owning a whole file. Adding a capability later injects into those markers rather than scattering new files.

04 / Sets

6 presets, known to work together.

Start from one and adjust it. Add a blueprint, remove another, keep the rest.

backend-minimal

Minimal TypeScript API

Express and TypeScript with validated config and one error shape. No database.

backend-mongo

MongoDB REST API

Express + MongoDB + Mongoose + JWT + Docker, in strict TypeScript.

backend-ts

TypeScript REST API

Express + PostgreSQL + Drizzle + JWT + Docker, in strict TypeScript.

frontend-only

React single-page app

React, Vite and Tailwind on their own, with Biome for linting and formatting.

fullstack-angular

Angular frontend + TypeScript API

The backend-ts API at the root with an Angular and Tailwind app under web/.

fullstack-react

React frontend + TypeScript API

The backend-ts API at the root with a React, Vite and Tailwind app under web/.

05 / Extend

Third party blueprints are not second class.

They use the same format and the same validator as the first party ones.

A blueprint is data, not code: a blueprint.json and a files tree. Scaffold one with atarashi create-blueprint, publish it on npm as atarashi-blueprint-something, and anyone can add it. Hooks run in a restricted worker with no filesystem and no child processes.

Nothing Atarashi generates depends on Atarashi. The output is an ordinary project, and atarashi eject cuts the last link whenever you want it gone.

Try it without installing anything.

SourcePackageDocumentationBy Gautam Suthar