Skip to content

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.

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 404 and 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.

Plugin Purpose
commerce Product catalog, cart, checkout, orders and Paystack payments
hello A minimal example plugin used as a reference for authors

When enabled, Commerce adds a Commerce group to the sidebar with Products, Categories, Customers, Orders and Settings. See Commerce for the catalog, cart, checkout, orders and Paystack payments.

See Plugin development. The repository’s docs/PLUGINS.md is the full design record.