Skip to main content

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