nexdock
v2.1.33
Published
A simple and interactive CLI tool to quickly set up an Express.js project with best practices
Downloads
53
Maintainers
Readme
NexDock
NexDock is a developer-first CLI to scaffold a production-grade Express backend with explicit architecture choices.
Instead of hiding setup behind opaque generators, NexDock asks the right infra questions up front and generates a clean, readable codebase you can own from day one.
Highlights
- Interactive setup with guided prompts
- Preset-driven setup for repeatable projects
- Runtime support: Node, Bun, Deno
- Database support: PostgreSQL, MongoDB, MySQL
- ORM support: Drizzle, Prisma, Sequelize, Mongoose
- Optional modules: Auth, Cache, SMTP, Socket
- Clean TypeScript-first structure
Philosophy
NexDock is built on three principles:
- Explicit over magic
- Reusable over repetitive
- Scalable by default
Requirements
- Node.js installed
- At least one supported runtime: Node, Bun, or Deno
- At least one package manager: npm, pnpm, yarn, bun, or deno
Installation
Install globally:
npm install -g nexdockOr run directly:
npx nexdockQuick Start
Interactive mode:
nexdock my-appPreset mode:
nexdock --preset ./nexdock.preset.jsonIf no options are provided, NexDock starts in interactive mode.
CLI Usage
nexdock [project-name] [options]Flags
| Flag | Alias | Description | | --- | --- | --- | | --mode | -m | Execution mode: start, test, test:bin | | --name | -n | Project name | | --preset | -p | Load preset file | | --generatePreset | -g | Generate preset file | | --debug | -d | Print resolved CLI config |
Preset Workflow
Generate preset after interactive flow:
nexdock --generatePresetDefault output path:
./<project-name>/.nexdockCustom output path:
nexdock --generatePreset ./nexdock.preset.jsonExample preset:
{
"name": "myawesomeapp",
"runtime": "bun",
"packageManager": "bun",
"db": {
"enable": true,
"provider": "postgresql",
"connectionString": "postgres://postgres:password@localhost:5432/myawesomeapp",
"orm": "drizzle",
"name": "myawesomeapp"
},
"cache": {
"enable": true,
"service": "multi"
},
"auth": {
"enable": true
},
"smtp": {
"enable": true,
"service": "gmail"
},
"git": true,
"socket": true
}Full schema reference:
Generated Output
FAQ
Q: Can I reuse presets across multiple projects?
A: Yes. Presets are designed for repeatable backend setup.
Q: If runtime is bun, do I need Bun installed locally?
A: Yes. The selected runtime must be installed.
Contributing
- Fork this repository
- Create a feature branch
- Make focused changes with clear commits
- Add or update tests where needed
- Open a pull request
Author
- GitHub: https://github.com/codewithevilxd
- Email: [email protected]
- Portfolio: https://nishantdev.space
License
MIT. See LICENSE.
