Planning Custom Extensions
Prepare a maintainable custom CMS module, its deployment responsibilities, and upgrade plan.
Use a custom module when your organization needs a capability beyond the available catalog. Modules are the supported extension mechanism, and their source and lifecycle should be maintained deliberately alongside your installation.
This page is a deployment planning guide. The developer contracts, implementation examples, and module-specific usage belong with the CMS source and installed documentation.
Define the extension before commissioning it
Record:
- The business problem and acceptance criteria.
- Which users and roles should have access.
- Dependencies on core services or other modules.
- New data, retention requirements, and import or export needs.
- External providers, credentials, and ongoing costs.
- The person or team responsible for maintenance.
Confirm the purchased edition and your agreement permit the access and customization you need. A custom extension does not automatically become a supported paid catalog module.
Establish a stable identity
Agree on a stable module slug and versioning scheme. The slug connects module files, permissions, routes, dependencies, and any paid license entitlement. Changing it after deployment can require coordinated migrations and licensing changes.
If the extension will be sold as a paid module, its catalog identity and license entitlement must match the CMS module identity.
Require a complete deliverable
An extension should include its manifest and lifecycle implementation, migrations, permission definitions, settings, frontend assets where needed, documentation, and upgrade instructions. Developers should use the CMS's Example module and repository guidance for the current implementation conventions.
Production deployments require assets compiled for the matching CMS release. Dropping uncompiled source files into a downloaded production release is not a substitute for a proper build.
Test and maintain it
Test the extension against the target CMS version, including installation on a fresh database and upgrade of an existing installation. Verify permissions, dependencies, persistent files, provider failures, backups, and real-time behavior where relevant.
Keep the approved extension artifact, source ownership information, and release compatibility notes with your deployment records. Before applying a core update, confirm that the extension supports the target version and include it in the recovery plan.
Use maintenance and recovery for deployment changes, and keep the extension's daily usage guide within the CMS documentation.