Extensibility

Make it yours without forking it.

Plugins, registries and adapters let you add behavior at defined seams. Your code stays yours, and upgrades stay boring.

Every extension point is a registry. Core stays small, the edge stays open.

What you can extend

Components

Add blocks to the page builder, each with a props schema and a safe partial.

Data sources

Expose any collection or service as a bindable source for pages.

MCP tools

Give agents new capabilities that run through the same authorization.

Event subscribers

React to record events: notify, sync, index. Webhooks are signed.

Storage adapters

Keep records in Active Record today, or add an adapter for an external database.

HTTP connectors

Call outside APIs from the admin, guarded against SSRF, with secrets encrypted.

Plugins

A plugin is a bundle of contributions.

A manifest declares components, sources, tools and settings. Plugins can be switched on or off in the admin and never get more power than a core file at the same seam.

Open core

Paid features plug in the same way.

Team and Enterprise features arrive as engines that register through the same extension API. Core never asks which edition you have, only whether a feature is enabled.

Build something on top.

The extension seams are documented in 17 architecture decision records.

Take the tour