<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Amaan Zaidi</title>
    <description>The latest articles on DEV Community by Amaan Zaidi (@amaan_zaidi_8cd581c2c544c).</description>
    <link>https://dev.to/amaan_zaidi_8cd581c2c544c</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4147427%2F18bbd67e-0add-4912-8eae-836692610384.jpg</url>
      <title>DEV Community: Amaan Zaidi</title>
      <link>https://dev.to/amaan_zaidi_8cd581c2c544c</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/amaan_zaidi_8cd581c2c544c"/>
    <language>en</language>
    <item>
      <title># I Built a Customizable CLI for Node.js Backends 🚀

**BACKKIT**

&gt; Build the backend you actually want.

```bash
npx @ghost1411/backkit
```

#node #javascript #typescript #opensource</title>
      <dc:creator>Amaan Zaidi</dc:creator>
      <pubDate>Mon, 28 Sep 2026 15:09:49 +0000</pubDate>
      <link>https://dev.to/amaan_zaidi_8cd581c2c544c/-i-built-a-customizable-cli-for-nodejs-backends-backkit-build-the-backend-you-1dj6</link>
      <guid>https://dev.to/amaan_zaidi_8cd581c2c544c/-i-built-a-customizable-cli-for-nodejs-backends-backkit-build-the-backend-you-1dj6</guid>
      <description></description>
      <category>cli</category>
      <category>javascript</category>
      <category>node</category>
      <category>opensource</category>
    </item>
    <item>
      <title>I Built a Customizable CLI for Node.js Backends</title>
      <dc:creator>Amaan Zaidi</dc:creator>
      <pubDate>Mon, 28 Sep 2026 14:54:07 +0000</pubDate>
      <link>https://dev.to/amaan_zaidi_8cd581c2c544c/i-built-a-customizable-cli-for-nodejs-backends-3m13</link>
      <guid>https://dev.to/amaan_zaidi_8cd581c2c544c/i-built-a-customizable-cli-for-nodejs-backends-3m13</guid>
      <description>&lt;h1&gt;
  
  
  I Built a Customizable CLI for Node.js Backends 🚀
&lt;/h1&gt;

&lt;p&gt;Every time I started a new Node.js backend, I found myself doing the same things again.&lt;/p&gt;

&lt;p&gt;Setting up the framework.&lt;/p&gt;

&lt;p&gt;Creating the folder structure.&lt;/p&gt;

&lt;p&gt;Configuring the database.&lt;/p&gt;

&lt;p&gt;Adding an ORM.&lt;/p&gt;

&lt;p&gt;Setting up authentication.&lt;/p&gt;

&lt;p&gt;Creating environment files.&lt;/p&gt;

&lt;p&gt;Installing dependencies.&lt;/p&gt;

&lt;p&gt;And then finally... starting the actual project.&lt;/p&gt;

&lt;p&gt;There are already plenty of backend boilerplates and scaffolders out there, but I wanted something different.&lt;/p&gt;

&lt;p&gt;I didn't want a single predefined backend.&lt;/p&gt;

&lt;p&gt;I wanted to &lt;strong&gt;choose the pieces I needed and generate the backend around those choices.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;Backkit&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is Backkit?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Backkit is an interactive CLI for scaffolding customizable Node.js backends.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead of giving you one fixed boilerplate, Backkit lets you choose the stack you want.&lt;/p&gt;

&lt;h3&gt;
  
  
  Choose your stack
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Options&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Language&lt;/td&gt;
&lt;td&gt;TypeScript, JavaScript&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Framework&lt;/td&gt;
&lt;td&gt;Express, Fastify&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Database&lt;/td&gt;
&lt;td&gt;PostgreSQL, MongoDB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ORM / ODM&lt;/td&gt;
&lt;td&gt;Drizzle, Prisma, Mongoose&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Authentication&lt;/td&gt;
&lt;td&gt;Better Auth, JWT, None&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;You simply run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx @ghost1411/backkit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And Backkit guides you through the setup.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Backkit generates
&lt;/h2&gt;

&lt;p&gt;Depending on your selections, Backkit can generate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Project structure&lt;/li&gt;
&lt;li&gt;Framework configuration&lt;/li&gt;
&lt;li&gt;Database setup&lt;/li&gt;
&lt;li&gt;ORM / ODM configuration&lt;/li&gt;
&lt;li&gt;Authentication setup&lt;/li&gt;
&lt;li&gt;Environment configuration&lt;/li&gt;
&lt;li&gt;Dependency installation&lt;/li&gt;
&lt;li&gt;Ready-to-run development setup&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Choose your stack → generate your backend → start building.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;p&gt;The process is essentially:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Your choices
     ↓
Configuration
     ↓
Template selection
     ↓
File generation
     ↓
Dependency installation
     ↓
Ready-to-run backend
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Backkit takes the choices you make through the CLI and uses them to determine what should be generated.&lt;/p&gt;

&lt;p&gt;This means the resulting project isn't a huge boilerplate where you have to delete half the code before starting.&lt;/p&gt;

&lt;p&gt;You get the components you selected.&lt;/p&gt;




&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;p&gt;You don't need to install Backkit globally.&lt;/p&gt;

&lt;p&gt;Run it directly using &lt;code&gt;npx&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx @ghost1411/backkit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it.&lt;/p&gt;

&lt;p&gt;The interactive CLI will start and guide you through the configuration.&lt;/p&gt;




&lt;h2&gt;
  
  
  Quick Start
&lt;/h2&gt;

&lt;p&gt;Run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx @ghost1411/backkit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You'll be able to select the technologies you want.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;? Choose your language
❯ TypeScript
  JavaScript

? Choose your framework
❯ Express
  Fastify

? Choose your database
❯ PostgreSQL
  MongoDB

? Choose your ORM / ODM
❯ Drizzle
  Prisma
  Mongoose

? Choose authentication
❯ Better Auth
  JWT
  None
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once the configuration is complete, Backkit generates your project.&lt;/p&gt;

&lt;p&gt;Then:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;your-project
npm &lt;span class="nb"&gt;install
&lt;/span&gt;npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And you're ready to start building.&lt;/p&gt;




&lt;h2&gt;
  
  
  Example Generated Structure
&lt;/h2&gt;

&lt;p&gt;A generated TypeScript + Express backend could look something like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;your-backend/
├── src/
│   ├── config/
│   ├── controllers/
│   ├── db/
│   ├── middleware/
│   ├── routes/
│   ├── services/
│   └── index.ts
│
├── .env
├── .env.example
├── package.json
├── tsconfig.json
└── README.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The exact structure depends on the options selected during setup.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why did I build this?
&lt;/h2&gt;

&lt;p&gt;I've worked on multiple Node.js backend projects, and I kept noticing the same pattern.&lt;/p&gt;

&lt;p&gt;The first part of the project was often:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Setup
Setup
Setup
Setup
Setup
...
Finally start building
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The actual backend logic came later.&lt;/p&gt;

&lt;p&gt;I wanted to automate that repetitive part.&lt;/p&gt;

&lt;p&gt;But I also didn't want to create another tool that says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Here is my preferred backend architecture. Use it."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Different projects need different stacks.&lt;/p&gt;

&lt;p&gt;A small API might need Express and PostgreSQL.&lt;/p&gt;

&lt;p&gt;Another project might use Fastify and MongoDB.&lt;/p&gt;

&lt;p&gt;Someone else might prefer Prisma.&lt;/p&gt;

&lt;p&gt;Someone else might prefer Drizzle.&lt;/p&gt;

&lt;p&gt;And sometimes you don't need authentication at all.&lt;/p&gt;

&lt;p&gt;That's where the idea for Backkit came from.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why customization matters
&lt;/h2&gt;

&lt;p&gt;Imagine two projects.&lt;/p&gt;

&lt;h3&gt;
  
  
  Project A
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;TypeScript
+
Express
+
PostgreSQL
+
Drizzle
+
Better Auth
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Project B
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;TypeScript
+
Fastify
+
MongoDB
+
Mongoose
+
No Authentication
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With a traditional boilerplate, you might start with one and manually modify it.&lt;/p&gt;

&lt;p&gt;With Backkit, the idea is to make those choices &lt;strong&gt;before generation&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Don't adapt your project to a boilerplate. Generate a boilerplate that fits your project.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  The Architecture
&lt;/h2&gt;

&lt;p&gt;At a high level, Backkit follows a simple pipeline:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                  ┌─────────────────┐
                  │   User Choices  │
                  └────────┬────────┘
                           │
                           ▼
                  ┌─────────────────┐
                  │  Configuration  │
                  └────────┬────────┘
                           │
                           ▼
                  ┌─────────────────┐
                  │ Template Select │
                  └────────┬────────┘
                           │
                           ▼
                  ┌─────────────────┐
                  │ File Generation │
                  └────────┬────────┘
                           │
                           ▼
                  ┌─────────────────┐
                  │  Dependencies   │
                  └────────┬────────┘
                           │
                           ▼
                  ┌─────────────────┐
                  │ Ready Backend   │
                  └─────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important part is keeping the different components modular.&lt;/p&gt;

&lt;p&gt;Adding another framework, database, ORM, or authentication provider should extend the system rather than require rewriting the entire CLI.&lt;/p&gt;




&lt;h2&gt;
  
  
  Built With
&lt;/h2&gt;

&lt;p&gt;Backkit is currently built around the Node.js ecosystem.&lt;/p&gt;

&lt;h3&gt;
  
  
  Core
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Node.js&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TypeScript&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;npm / npx&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Project generation
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Node.js filesystem APIs&lt;/li&gt;
&lt;li&gt;Template-based generation&lt;/li&gt;
&lt;li&gt;Interactive CLI prompts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The project is intentionally designed to be extensible so more backend technologies can be added over time.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why &lt;code&gt;npx&lt;/code&gt;?
&lt;/h2&gt;

&lt;p&gt;One of the things I wanted was to make trying Backkit as frictionless as possible.&lt;/p&gt;

&lt;p&gt;Instead of asking users to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; @ghost1411/backkit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;they can simply run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx @ghost1411/backkit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No global installation.&lt;/p&gt;

&lt;p&gt;No setup before trying it.&lt;/p&gt;

&lt;p&gt;Just run the command and start creating a backend.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;p&gt;Backkit is still in its early stage, so there is a lot of room to expand.&lt;/p&gt;

&lt;h3&gt;
  
  
  Current
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;[x] Interactive CLI&lt;/li&gt;
&lt;li&gt;[x] Custom stack selection&lt;/li&gt;
&lt;li&gt;[x] Project generation&lt;/li&gt;
&lt;li&gt;[x] Template-based architecture&lt;/li&gt;
&lt;li&gt;[x] npm package&lt;/li&gt;
&lt;li&gt;[x] &lt;code&gt;npx&lt;/code&gt; support&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Planned
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;[ ] More backend frameworks&lt;/li&gt;
&lt;li&gt;[ ] More databases&lt;/li&gt;
&lt;li&gt;[ ] More ORMs / ODMs&lt;/li&gt;
&lt;li&gt;[ ] More authentication providers&lt;/li&gt;
&lt;li&gt;[ ] More architecture patterns&lt;/li&gt;
&lt;li&gt;[ ] Custom user templates&lt;/li&gt;
&lt;li&gt;[ ] Community-contributed templates&lt;/li&gt;
&lt;li&gt;[ ] More configuration options&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The long-term idea is to make Backkit feel less like a single boilerplate and more like a &lt;strong&gt;component library for backend development&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Open Source
&lt;/h2&gt;

&lt;p&gt;Backkit is open source, and I'd love to see other developers experiment with it.&lt;/p&gt;

&lt;p&gt;If you build Node.js backends, I'd especially like feedback on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What frameworks should be supported?&lt;/li&gt;
&lt;li&gt;What databases should be added?&lt;/li&gt;
&lt;li&gt;What authentication options would be useful?&lt;/li&gt;
&lt;li&gt;What should the generated structure look like?&lt;/li&gt;
&lt;li&gt;What would make the CLI easier to use?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Found a bug?&lt;/p&gt;

&lt;p&gt;Open an issue.&lt;/p&gt;

&lt;p&gt;Have an idea?&lt;/p&gt;

&lt;p&gt;Open an issue.&lt;/p&gt;

&lt;p&gt;Want to contribute?&lt;/p&gt;

&lt;p&gt;Pull requests are welcome.&lt;/p&gt;




&lt;h2&gt;
  
  
  Try Backkit
&lt;/h2&gt;

&lt;p&gt;Give it a try:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx @ghost1411/backkit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Links
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/amaan1114/backkit" rel="noopener noreferrer"&gt;https://github.com/amaan1114/backkit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;npm:&lt;/strong&gt; &lt;a href="https://www.npmjs.com/package/@ghost1411/backkit" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/@ghost1411/backkit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you find the project useful, consider giving it a ⭐ on GitHub.&lt;/p&gt;

&lt;p&gt;It helps more developers discover the project.&lt;/p&gt;




&lt;h2&gt;
  
  
  I'd Love Your Feedback
&lt;/h2&gt;

&lt;p&gt;Backkit is still very early, and I'm curious about how other developers would use it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you could generate your ideal Node.js backend with one command, what would you want to choose?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Framework?&lt;/p&gt;

&lt;p&gt;Database?&lt;/p&gt;

&lt;p&gt;ORM?&lt;/p&gt;

&lt;p&gt;Authentication?&lt;/p&gt;

&lt;p&gt;Architecture?&lt;/p&gt;

&lt;p&gt;Let me know in the comments.&lt;/p&gt;




&lt;h1&gt;
  
  
  Backkit
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Build the backend you actually want.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>backend</category>
      <category>cli</category>
      <category>javascript</category>
      <category>node</category>
    </item>
  </channel>
</rss>
