Plugin Architecture
⚠️ Heads up: Beaker is still early. The architecture is evolving
⚠️ Heads up: Beaker is still early. The architecture is evolving, and some implementation details may change as we refine the plugin system and scale support for more backends. If you're contributing, expect a bit of churn - and feel free to propose improvements.
At the core of Beaker is a plugin-based architecture - every feature (CRM, tasks, docs, etc.) is treated as a plugin.
Plugins are loaded dynamically into the main dashboard app and are isolated by design. They define:
- A name and icon
- A
component()
loader function - Optional database schema + Supabase logic
- Sidebar tab + page routes
This enables:
- Swappable modules without modifying the core app
- Per-plugin logic and UI separation
- Easier contribution and extension by external devs
See: ExtensionDeclaration in @beaker/core