Every time I started a new Express.js project, I ended up repeating the same work.
Create the folders.
Set up app.ts, server.ts, and index.ts.
Choose between TypeScript or JavaScript.
Deal with ESM vs CommonJS.
Add linting, formatting, testing, env files, security middleware, database starter, auth starter, and then fix the small things that always break the flow.
So I decided to build a CLI for it.
create-fast-express-structure is a production-focused scaffolder for Express.js apps with a clean MVC structure and optional features you can actually choose based on your project.
Why I made it
A lot of generators either feel too minimal or too opinionated.
Sometimes you just want:
- a solid MVC base
- clean structure
- good defaults
- optional add-ons only when you need them
- a setup that does not look like a toy project
I wanted something that works for real projects, not just hello-world demos.
What it does
With one command, you can generate an Express.js project with support for:
- TypeScript or JavaScript
- ES Modules or CommonJS
- minimal MVC structure by default
- optional security middleware
- optional Tailwind + EJS views
- optional JWT auth starter and RBAC
- optional MongoDB/Mongoose or PostgreSQL with Prisma or Drizzle
- optional Vitest or Jest
- optional ESLint or Biome
- Prettier, Docker, Git, Husky, Commitlint
- dry-run, skip-install, presets, and CI-friendly flags
Example usage
npm create fast-express-structure@latest my-ap
Or with more control:
npx create-fast-express-structure my-api --template secure-api --language ts --module esm
A few more examples:
fes my-api --yes --skip-install
fes my-api --auth --validation --rate-limit --env
fes data-api --db postgresql --orm prisma --env --no-tailwind
fes my-api --dry-run --template mvc-full
Something I cared about a lot
I did not want the CLI to dump everything into the project whether the user needs it or not.
So the prompts are dynamic.
I’d love honest feedback
I’m still improving it, and I’d really like feedback from people who build Express APIs in real projects.
What would you expect from a scaffolding tool like this?
What is always missing in most Express starters?
If you do not choose auth, it does not keep asking auth-related questions.
If you do not want Tailwind or views, it skips that path.
If you want TypeScript, it integrates it through my fast-ts-integrator setup.
The goal was simple: keep the experience clean, but still powerful.
Links
NPM:
https://www.npmjs.com/package/create-fast-express-structure
GitHub:
https://github.com/YoussefSelk/fast-express-structure
Top comments (0)