woocraft
A free, open source command line tool that scaffolds a real WooCommerce extension (PSR-4 PHP, React admin UI, phpcs and PHPStan built in) and takes it all the way to a Marketplace-ready zip.

ABOUT THIS APP
Most guides on building a WooCommerce extension stop at hello world. The moment you need Marketplace-quality code, security-focused linting, PHPStan checked against the WordPress function surface, translations, and a clean production zip, you're wiring all of that together by hand, usually by copying whatever the last extension did and hoping it still works. woocraft is the command line tool that does that wiring for you. Run one command and you get a real extension: PSR-4 PHP with a Composer autoloader, a REST route already registered, an admin screen built with React, Vite and Tailwind, and a plugin header that already has the fields WooCommerce and WordPress.org actually check. Nothing to assemble, nothing to configure before you can start writing your own feature. From there, every command you need lives behind npm run. lint and stan run PHP_CodeSniffer and PHPStan against a ruleset generated straight from your plugin header and composer.json, so there's no phpcs.xml or phpstan.neon to maintain by hand. deploy builds the admin UI, mirrors the compiled plugin into a real local WordPress install (a plain path or a DevKinsta site, picked once and remembered), activates it, and runs wp plugin check against it. build does all of that, then packages an isolated, Marketplace-ready zip: production Composer autoloader, no dev dependencies, no .git, no Vite source, nothing that doesn't belong in a submission, then runs the same QIT tests WooCommerce's own Marketplace review runs, checking first that your extension is actually registered so you never burn a build on a test that can't possibly pass yet. All of it is driven by one file, woocraft.json, committed at your project root. Set your description, PHP, WordPress or WooCommerce requirements, or which PHPStan release to pin, and the next deploy or build writes it into the plugin header, composer.json, package.json and readme.txt for you. Add an entry to a version log and that becomes your official release, your changelog.txt entry, and your readme.txt changelog, all at once, all dated, all left alone once written unless you change them yourself. Get something wrong in the file and woocraft tells you exactly what and how to fix it, instead of failing somewhere confusing three steps later. woocraft is free, open source under the MIT license, and built the same way the extensions it scaffolds are meant to be built: reviewed, documented, and something you can actually read all the way through.
TECH STACK
WHAT'S INSIDE
Scaffold a real extension, not a stub
PSR-4 PHP with a Composer autoloader, a REST route already registered, and an admin screen built with React, Vite and Tailwind, all wired together and ready to run.
phpcs and PHPStan, already configured
A PHP_CodeSniffer ruleset and PHPStan level 5 with WordPress and WooCommerce stubs, both generated from your plugin header and composer.json. No config files to maintain by hand.
Deploys straight into WordPress
Mirrors the compiled plugin into a real local install, a plain path or a DevKinsta site, activates it, and runs wp plugin check. Run it again after every change.
One config file, not scattered settings
woocraft.json holds your description, requirements, PHPStan version, release log, QIT setup and WordPress target. Get something wrong and it tells you exactly what.
A changelog that writes itself
Add a version and a one-line note to woocraft.json. The next deploy or build updates the plugin header, package.json, composer.json, readme.txt, and both changelogs.
Marketplace-ready packaging
An isolated production build: no dev dependencies, no .git, no Vite source, no composer.lock, nothing that doesn't belong in a submission.
QIT built in, not bolted on
Runs the same quality tests WooCommerce's own Marketplace review runs, and checks your extension is actually registered before wasting a build on a test that can't pass yet.
Translations out of the box
Generates languages/<slug>.pot from every translatable string in the plugin, via WP-CLI.
A FEW TERMS WORTH KNOWING
A handful of woocraft-specific terms come up throughout, worth having straight upfront.
- woocraft.json
- The one file woocraft reads and writes, committed at your project root. It holds your description, version requirements, PHPStan pin, release log, QIT setup and WordPress target.
- QIT
- WooCommerce's own Quality Insights Toolkit: security, PHPStan, PHP compatibility, the WordPress.org plugin checker, and an activation test. The same suite the Marketplace review itself runs.
- System Under Test (SUT)
- The extension listing on your WooCommerce.com account that QIT actually tests against, identified by its slug or ID there, not just any zip you hand it.
- Marketplace-ready zip
- What npm run build produces: a clean, isolated copy of the plugin with a production autoloader and nothing that shouldn't ship, packaged separately from your own working directory.
FROM ZERO TO MARKETPLACE READY
Three commands cover the whole lifecycle: scaffold it, build it, ship it.
- 01One command to start
Scaffold a real extension
Answer a few questions (name, slug, PHP namespace, which local WordPress to deploy into) and woocraft installs everything, warms the toolchain, and deploys the plugin right away.
- 02Every command in one place
npm run, not fifteen different tools
lint, stan, check, deploy, build, qit, pot. Config is generated, not hand-maintained, and every flag is documented right there in the help output.
- 03Ship with confidence
One command to a Marketplace-ready zip
npm run build checks, translates, deploys, verifies with wp plugin check, packages an isolated zip, then runs QIT against it. A clean run means you're actually ready to submit.
Free, open source, and yours to read.
No account, no lock-in, no hidden tier. Install it, scaffold your extension, and read every line of what it generates.
WRITING ABOUT WOOCRAFT
See more of the studio
Explore the rest of the products, then compare how each one solves a different workflow with the same practical approach.
Feedback
