Plugins
A plugin is a TypeScript package that adds its own database tables, API routes and admin pages to the CMS. Plugins are compiled into the API Worker at build time, so there is no runtime code loading.
Enable and disable
Section titled “Enable and disable”Open Installed Plugins in the admin sidebar (Admin and above). It lists every plugin bundled into your deployment with its version and an on/off switch.
- Toggling takes effect immediately, with no redeploy. A disabled plugin’s routes return
404and its sidebar entries disappear. - A plugin with dependencies stays off while those dependencies are off.
- With no saved choice, a bundled plugin is enabled.
- Disabling a plugin does not delete its data.
Adding a plugin that is not bundled yet is a code change and a redeploy: add the package and register it in apps/api/src/plugins/registered-plugins.ts.
Bundled plugins
Section titled “Bundled plugins”| Plugin | Purpose |
|---|---|
commerce |
Product catalog, cart, checkout, orders and Paystack payments |
hello |
A minimal example plugin used as a reference for authors |
Commerce
Section titled “Commerce”When enabled, Commerce adds a Commerce group to the sidebar with Products, Categories, Orders, Customers and Settings. Its API lives under /api/plugins/commerce/v1/* (admin, session required) and /api/plugins/commerce/public/v1/* (storefront, unauthenticated).
- Catalog and order management need the Editor role; the customers list needs Admin.
- Storefront customers are ordinary CMS accounts with role
none, using the same authentication as the rest of the site. - Settings holds store name, default currency and the storefront URL used in email links.
- Payments use Paystack: set the
PAYSTACK_SECRET_KEYWorker secret. Without it the payment routes return503(“Payments are not configured”). @kenresoft-cms/astroexposes storefront methods undercms.commerce.
Building a plugin
Section titled “Building a plugin”The plugin SDK (@kenresoft-cms/plugin-sdk), the manifest format, permissions, events and the reference plugin are documented in the repository’s docs/PLUGINS.md. A plugin author guide is not published on this site yet.