All projects

Project Scaffolding CLI

An open-source CLI tool that reduces new-project setup from 2–3 hours to under 5 minutes. 400+ GitHub stars, adopted by teams outside the original company.

Node.jsTypeScriptCLIOpen Source

Background

Every new project at my previous company started with the same 2–3 hour slog: copy-paste linting config, set up Husky, write the CI workflow, scaffold the test harness, add the Docker boilerplate. Different engineers made different choices, so projects were inconsistent and onboarding was painful.

What I Built

A CLI tool — create-project — that codifies the team’s conventions into a single command:

npx create-project my-app --template api --db postgres

Running that command:

  1. Scaffolds the directory structure
  2. Writes eslint.config.js, .prettierrc, tsconfig.json from tested templates
  3. Sets up Husky pre-commit hooks (lint + type-check)
  4. Generates a GitHub Actions CI pipeline (test → build → deploy)
  5. Adds Docker and docker-compose files
  6. Initialises the chosen database schema boilerplate
  7. Prints a checklist of manual steps (secrets, env vars, DNS) that can’t be automated

Design Decisions

Templates over code generation — Rather than building a templating engine, I use literal file copies with token replacement. The template files are readable and diffable, which makes maintaining them much easier than a generator approach.

Escape hatches everywhere--no-ci, --no-docker, --no-hooks flags let teams opt out of any layer they don’t need.

Zero runtime dependencies — The generated projects don’t depend on the CLI at all. It’s a one-shot tool, not a framework.

Impact

  • 400+ GitHub stars, 80+ forks
  • Adopted by at least 5 companies outside the original team
  • New project setup time: ~5 min vs 2–3 hours previously
  • Consistent project structure across 30+ active repos at the original company