Build WordPress Plugins Faster with wp-plugin-init Boilerplate

Creating a WordPress plugin from scratch can be time-consuming, especially when using modern tooling like Composer, Vite, Vue.js, and a robust OOP-based MVC structure. That’s where wp-plugin-init comes in — a complete plugin scaffolding tool published on npm, built to speed up your development and follow best practices.

What is wp-plugin-init?

wp-plugin-init is a Node.js CLI tool that generates a fully structured WordPress plugin boilerplate in seconds. It’s tailored for modern plugin development using:

  • PHP OOP and PSR-4 Autoloading via Composer
  • MVC architecture
  • Vue.js (for interactive admin UI)
  • Vite (as a modern asset bundler and hot module reloader)
  • Ready-to-extend admin dashboard
  • Automated namespace and file structure generation

Features

  • ✅ WordPress-ready file structure
  • ✅ MVC directory separation (Controllers, Models, Views)
  • ✅ PSR-4 compliant autoloading
  • ✅ Vite-powered development for assets
  • ✅ Vue.js ready for dynamic admin UI
  • ✅ CLI automation for renaming namespaces, constants, menus, and plugin slugs
  • ✅ Composer autoload update after setup

Installation

To use wp-plugin-init, install it globally:

npm install -g wp-plugin-init

Usage

Simply run the command with your desired plugin name:

wp-plugin-init suite-one

This will:

  • Create a new directory named suite-one
  • Rename all placeholders (PluginsNameSpaces, constants, dashboard menu names)
  • Set correct namespaces (SuiteOne\\)
  • Replace plugin headers in the main file (suite-one.php)
  • Run composer dump-autoload

You’ll end up with a plugin that looks like:

suite-one/
├── app/
│   ├── Controllers/
│   ├── Models/
│   ├── Views/
│   ├── App.php
│   └── AdminMenuHandler.php
├── composer.json
├── package.json
├── vite.config.js
├── public/
├── resources/
│   └── js/
│       └── main.js
├── suite-one.php
└── README.md

What's Inside?

PHP OOP Structure

Your plugin logic is split into:

  • Controllers/ – Manage logic and plugin actions
  • Models/ – Handle data
  • Views/ – Separate template rendering

Composer Autoloading

Namespaces are set dynamically based on your plugin name. After creation:

namespace SuiteOne\Controllers;

Composer’s autoload config is automatically updated.

Vue.js + Vite Integration

Your plugin is asset-ready out of the box. Inside resources/js/main.js, start building your Vue components. Vite handles bundling and live reload.

npm install
npm run dev

During production:

npm run build

Smart Defaults & Automation

wp-plugin-init auto-generates:

  • Plugin headers
  • Namespace structure
  • Dashboard menu entries
  • Constant definitions
  • Vue/Vite asset paths

No manual edits required — just start coding!

Development Tips

  • Use App.php for bootstrapping logic
  • Place reusable components in app/
  • Run composer dump-autoload after adding new PHP classes
  • Customize the admin dashboard from AdminMenuHandler.php
  • Use Vue.js for dynamic forms or settings pages

Example

wp-plugin-init my-cool-plugin

Creates:

// Plugin header
/*
 * Plugin Name:         My Cool Plugin
 */

// Namespace usage
use MyCoolPlugin\Controllers\DashboardController;

Requirements

  • Node.js (v14+)
  • Composer
  • PHP 7.4+
  • WordPress >= 5.8

License

MIT – free to use and extend!

Contribute

Found a bug or want to improve the boilerplate?

Final Thoughts

If you're tired of rebuilding boilerplates or piecing together modern workflows manually, wp-plugin-init is your perfect starting point. It saves time, enforces structure, and empowers you to focus on building features, not boilerplate.

Start your next plugin with power, performance, and productivity — in one command.