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.
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:
- Scaffolds the directory structure
- Writes
eslint.config.js,.prettierrc,tsconfig.jsonfrom tested templates - Sets up Husky pre-commit hooks (lint + type-check)
- Generates a GitHub Actions CI pipeline (test → build → deploy)
- Adds Docker and docker-compose files
- Initialises the chosen database schema boilerplate
- 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