Ship a Plugin ZIP
When a LocalWP Devkit project is ready to deliver, build a project plugin ZIP from the devkit root:
bun run build:zip -- --project <slug>
The command runs the project check before packaging. If the check fails, fix the project and rerun the command.
Output
The ZIP is written inside the project:
projects/<slug>/dist/oh-my-idetch-<version>.zip
The ZIP root is:
oh-my-idetch/
This is the runtime plugin artifact for that project.
What Goes Into the ZIP
The project ZIP contains the runtime plugin surface:
| Included | Purpose |
|---|---|
oh-my-idetch.php | WordPress plugin entry file. |
src/** | Project runtime PHP source. |
cms/acf-json/** | Project CMS field JSON when present. |
flags.json | Production mode marker with MODE=PROD. |
The ZIP does not include devkit tooling, project notes, tests, generated agent skills, local environment files, Local site backups, Local Blueprints, or premium plugin files.
Before You Ship
Run the normal LocalWP verification loop first:
bun run project:check -- --project <slug>
bun run localwp:sync -- --project <slug>
bun run localwp:doctor -- --project <slug>
bun run localwp:capabilities -- --project <slug>
Then verify the site in LocalWP using the bound Local domain. For WooCommerce, facets, dropdowns, drawers, checkout gateways, or other interactive OhMyEtch behavior, browser/runtime verification is required; the project ZIP command only proves the package can be built from checked source.
Keep the Devkit
Do not duplicate the whole devkit for every site. Keep the devkit as the long-lived workspace and create a new projects/<slug> folder for each site. Each project can build its own deployable plugin ZIP.