Archive layout
composer.json must sit at the root of the archive, not inside a wrapper folder:
.git, node_modules, tests, build configuration, .env files and editor settings. Include build output if your plugin ships assets.
Versioning
- Use semantic versioning in
version, and raise it for every release. Installing from an archive runscomposer require <name>:<version>, so a stale version installs the wrong code. - Record the Aikeedo versions you support in
extra.compatibility, for example">=5.0.0". Nothing enforces it, so check the version yourself if your code depends on a specific release. - Ship with
extra.statusset toinactive. Aikeedo manages that field afterwards.
composer.json
Dependencies
Declare third-party libraries inrequire. They’re installed into the installation’s own vendor/ directory when the plugin is installed, so don’t vendor them into your archive.
Install paths
Installing over an existing copy backs the old directory up first and restores it if anything fails.
Ship a README
Customers read this before they read your code. Cover:- What the plugin does, and which Aikeedo versions it supports
- Installation steps, including anything to configure first, such as API keys
- Where its settings live in the admin panel
- Required third-party accounts, and any cost involved
- Whether it needs cron, outbound network access, or a webhook URL the provider must reach
- A changelog
Release checklist
version is raised, and the changelog is updated.composer.json sits at the archive root, and the archive has no wrapper folder.Development files are excluded, and build output is included.
Translation catalogs are up to date and included.
A clean installation test passes: upload, activate, configure, use, deactivate, uninstall.
No errors in
var/log with DEBUG=true.Secrets, license keys and customer data are nowhere in the archive.
Nothing in the core is modified, so an Aikeedo update can’t overwrite your work or break it.
Any public route follows the security checklist.
Distribution options
Whatever you choose, keep older archives available: customers on an older Aikeedo release may need the matching version of your plugin.
Get your add-on listed
We’re looking for community-built plugins to list on aikeedo.com, linking to your own page. See what to send us.