DevFlow

DevFlow Modules

All 50 DevFlow modules grouped by category. Every module page lists the exact files it creates, the packages it installs and the scripts it adds.

DevFlow ships 50 modules in 10 categories. Each module is an independent unit: it can be applied on its own, it never overwrites a file that already exists, and every page below lists the exact artefacts it produces.

# Apply a single module
npx create-devflow --only eslint

# Preview a single module without touching the project
npx create-devflow --only eslint --dry-run

How to read these pages

Each module page follows the same structure so you can compare them quickly:

  1. The problem — what breaks when you configure this by hand
  2. The command — the exact invocation
  3. Generated files — the real file contents, not a summary
  4. Packages and scripts — what ends up in package.json
  5. Manual setup — what the equivalent hand-written configuration looks like
  6. Limits — what the module does not do
  7. FAQ — the objections people actually raise

Lint & format

ModuleLanding pageGenerates
ESLintESLint moduleeslint.config.mjs
PrettierPrettier module.prettierrc.json, .prettierignore
TypeScript strict—tsconfig.json (only when missing)
Biome—biome.json
EditorConfig—.editorconfig
Stylelint—.stylelintrc.json
markdownlint—.markdownlint.json
cspell—cspell.json

Git hooks & commits

ModuleLanding pageGenerates
HuskyHusky module.husky/pre-commit, .husky/commit-msg
lint-stagedlint-staged modulelint-staged.config.mjs or package.json key
CommitlintCommitlint modulecommitlint.config.mjs
Commitizen—package.json config + commit script
Lefthook—lefthook.yml
git-cliff—cliff.toml
standard-version—.versionrc.json

Testing

ModuleLanding pageGenerates
VitestVitest modulevitest.config.ts
Testing Library—src/test/setup.ts
Jest—jest.config.ts / jest.config.mjs
Playwright—playwright.config.ts, e2e/example.spec.ts
Cypress—cypress.config.ts and support files
Mock Service Worker—src/mocks/handlers.ts, src/mocks/server.ts

CI/CD

ModuleLanding pageGenerates
GitHub ActionsGitHub Actions module.github/workflows/ci.yml
GitLab CI—.gitlab-ci.yml
Codecov—codecov.yml
Dependabot—.github/dependabot.yml
Renovate—renovate.json

Containers

ModuleLanding pageGenerates
DockerfileDocker moduleDockerfile
Docker Compose—docker-compose.yml
.dockerignore—.dockerignore

Monorepo

ModuleLanding pageGenerates
TurborepoMonorepo moduleturbo.json + turbo scripts
NxMonorepo modulenx.json
WorkspacesMonorepo modulepnpm-workspace.yaml, tsconfig.base.json

Security

ModuleLanding pageGenerates
npm auditSecurity moduleaudit script
GitleaksSecurity module.gitleaks.toml, .github/workflows/gitleaks.yml
TrivySecurity module.github/workflows/trivy.yml
OSV-ScannerSecurity module.github/workflows/osv-scanner.yml

Releases and documentation

ModuleGenerates
release-it.release-it.json
Changesets.changeset/config.json, .changeset/README.md
semantic-release.releaserc.json
conventional-changelogchangelog script
READMEREADME.md
CONTRIBUTINGCONTRIBUTING.md
CODE_OF_CONDUCTCODE_OF_CONDUCT.md
SECURITY.mdSECURITY.md
LICENSELICENSE (MIT, Apache-2.0 or proprietary)

Developer environment

ModuleGenerates
.nvmrc.nvmrc or a volta block in package.json
.env.example.env.example and .gitignore entries
VS Code.vscode/extensions.json, .vscode/settings.json
Dev Container.devcontainer/devcontainer.json
MakefileMakefile

Conflicts

Some modules replace each other and cannot be applied together. The interactive wizard blocks the conflicting pairs, and --only accepts a single id so you cannot create the conflict by accident:

PairUse instead of
Husky ↔ LefthookPick one hook manager
ESLint + Prettier ↔ BiomeBiome replaces both
Vitest ↔ JestPick one test runner
Playwright ↔ CypressPick one E2E runner
Renovate ↔ DependabotPick one update bot
release-it ↔ semantic-releasePick one release driver
Nx ↔ TurborepoPick one build system

On this page