Servest — Backend Project Scaffolder & Add-ons Generator

Every backend project starts the same way. npm init -y, install dependencies, write the same boilerplate folder structure, configure ESLint, set up Prisma or Mongoose, wire up auth. Hours of setup before a single line of real code gets written.

Servest exists to eliminate that. It's an open source CLI toolkit — inspired by create-vite for scaffolding and shadcn for the add-ons concept — but built entirely for backend development.

Live at servest.dev — available on npm with 80+ downloads.


The Problem

There are scaffolding tools for frontend. create-vite, create-next-app, create-react-app — all battle-tested, flexible, and fast. Backend has nothing equivalent. The existing options are either too opinionated, locked to a single framework, or don't support the add-ons workflow that makes shadcn so powerful for UI development.

Every time I started a new backend project, I spent the first 1–2 hours on setup that had nothing to do with the actual problem I was solving. I built Servest to fix that — for myself first, and then for every backend developer with the same frustration.


My Role

Creator and sole maintainer — designed the architecture, built both packages, wrote the documentation site, and continue to maintain and extend the ecosystem.

AreaResponsibility
CLI Scaffoldercreate-servest — interactive and non-interactive project generation
Add-ons Systemservest — add utilities, generate files, configure integrations
TemplatesExpress (8 variants), Fastify (8 variants), Django
Docs SiteNext.js, Tailwind CSS, Next MDX Remote
CI/CDGitHub Actions — automated testing and npm publish pipeline

How It Works

Servest consists of two packages that work together:

create-servest — Project Scaffolding

Loading code snippet…

Scaffolds a fully structured backend project instantly. Supports interactive mode (follow the prompts) and non-interactive mode (pass flags directly). Works with npm, yarn, pnpm, bun, and deno.

servest — Add-ons Generator

Loading code snippet…

Runs inside any existing project — not just ones scaffolded with create-servest. Detects the project structure, installs required dependencies, generates the correct files and folders, and updates package.json scripts automatically.

Multiple add-ons can be combined in a single command. If one fails, the rest still apply.


Supported Templates

Express

VariantDescription
express-basic-jsBasic JavaScript
express-basic-tsBasic TypeScript
express-mvc-cjsMVC CommonJS
express-mvc-esmMVC ESM
express-mvc-tsMVC TypeScript
express-modular-cjsModular CommonJS
express-modular-esmModular ESM
express-modular-tsModular TypeScript

Fastify

8 variants covering basic, MVC, and plugin architectures in JS, TS, CJS, and ESM.

Django

django-basic — Django starter with Servest's project conventions.


Add-ons System

Add-onWhat it does
mongoosePre-configured Mongoose setup for MongoDB
prismaPrisma ORM with starter schema and migration commands
drizzleDrizzle ORM with SQLite support
eslintESLint with recommended rules
prettierPrettier formatting config
eslint-prettierESLint + Prettier integrated
lint-stagedPre-commit checks via lint-staged + simple-git-hooks
f-fileNameGenerate related files and folders per project structure

Technical Highlights

Structure-Aware File Generation

The hardest part of building the add-ons system was making it structure-aware. A file generator that just dumps files into a folder isn't useful — f-auth needs to place files in the right location depending on whether the project is MVC or modular, whether it uses CJS or ESM, whether it's TypeScript or JavaScript.

I solved this by building a servest.config.json detection system. Running npx servest@latest init inspects the project and writes a config file that all subsequent add-on commands read. Every add-on uses this config to generate files in the correct location with the correct syntax — no manual path configuration needed.

Resilient Add-on Execution

Add-ons run sequentially but independently. If one add-on fails — a network error during npm install, a permission issue, a missing dependency — the rest of the queue continues. The failure is logged clearly and the developer can re-run just the failed add-on manually. This was a deliberate design decision: a partial setup is always better than a complete rollback.

CI/CD Pipeline

Automated with GitHub Actions — tests run on every pull request and npm publish triggers automatically on version tag. This keeps both packages in sync and ensures no broken versions reach the registry.


What's Next

The roadmap for Servest is ambitious: become the create-vite for backend development across all major frameworks and runtimes.

Upcoming:

  • NestJS, Laravel, and more framework support
  • Browser-based UI — developers will be able to select templates, structure, and add-ons from a visual interface, preview the generated project in the browser, and download it directly to open in their editor. No terminal commands required.

Stack

CLI Packages:  Node.js, TypeScript, Vitest
Docs Site:     Next.js, Tailwind CSS, Next MDX Remote
CI/CD:         GitHub Actions
Registry:      npm (create-servest + servest)

Results

MetricValue
Setup time~2 hours → under 10 minutes
npm downloads80+ developers
Frameworks supportedExpress, Fastify, Django
Templates available17+
Satisfaction rating95% in developer feedback