matembo-dev
v1.1.25
Published
A CLI tool for scaffolding full-stack projects with **Next.js** (frontend) and **Express.js** (backend) — ready to go in seconds.
Downloads
489
Readme
matembo-dev
A CLI tool for scaffolding full-stack projects with Next.js (frontend) and Express.js (backend) — ready to go in seconds.
Installation
You can use matembo-dev directly without installing it globally via npx:
npx matembo-dev <command>Or install it globally to use it anytime:
npm install -g matembo-devCommands
create <AppName> — Scaffold a new fullstack project
Creates a new project folder with a Next.js frontend and an Express.js backend already set up inside it.
npx matembo-dev create MyAppWhat gets created:
MyApp/
├── frontend/ ← Next.js starter
└── backend/ ← Express.js starterAfter running the command, follow these steps:
# Start the frontend
cd MyApp/frontend
npm install
npm run dev
# Start the backend (in a separate terminal)
cd MyApp/backend
npm install
npm run devinit <type> — Initialize a template in your current folder
Copies a starter template directly into your current working directory. Useful when you already have a project folder and just want to drop in a template.
Available types:
| Type | Description |
| ----------- | -------------------------- |
| backend | Express.js backend starter |
| frontend | Next.js frontend starter |
| fullstack | Both frontend and backend |
# Initialize a backend project in the current folder
npx matembo-dev init backend
# Initialize a frontend project in the current folder
npx matembo-dev init frontend
# Initialize a fullstack project in the current folder
npx matembo-dev init fullstackAfter running init, follow these steps:
npm install
npm run dev--start — Start the application
Starts your application using the configuration found in your project.
npx matembo-dev --startRequires a
tool.config.jsortool.config.jsonfile in your project root.
--build — Build the application
Builds your application.
npx matembo-dev --build⚙️ Configuration
matembo-dev looks for a config file in your project root. You can use any of these formats:
tool.config.json
{
"port": 3000
}tool.config.js
export default {
port: 3000,
};Or add it inside your package.json:
{
"tool": {
"port": 3000
}
}🗂️ Project Structure (after create)
MyApp/
├── frontend/
│ ├── app/
│ │ ├── (auth)/
│ │ │ ├── signin/
│ │ │ └── signup/
│ │ ├── context/
│ │ ├── services/
│ │ ├── globals.css
│ │ ├── layout.tsx
│ │ └── page.tsx
│ ├── components/
│ ├── icons/
│ ├── public/
│ ├── next.config.ts
│ ├── package.json
│ └── tsconfig.json
│
└── backend/
├── src/
│ ├── config/
│ ├── controllers/
│ ├── middleware/
│ ├── models/
│ ├── routes/
│ ├── utils/
│ └── validators/
├── server.js
├── app.js
└── package.jsoncreate vs init — What's the difference?
| | create <AppName> | init <type> |
| ---------------------------- | ------------------ | -------------------------- |
| Creates a new folder | ✅ Yes | ❌ No |
| Works in current folder | ❌ No | ✅ Yes |
| Scaffolds frontend + backend | ✅ Always | ✅ Choose type |
| Best for | Starting fresh | Adding to existing project |
🛠️ Requirements
- Node.js v18 or higher
- npm v7 or higher
📄 License
MIT © MatemboDev
🤝 Contributing
Have ideas or found a bug? Feel free to open an issue or pull request on the GitHub repository.
Built with ❤️ by MatemboDev
