Plugin System

Plugins extend SmallBlock without modifying core code.

Extension Points

  • Template tags for rendering dynamic regions.

  • Toolbar actions for editor UX.

  • Signals/hooks for lifecycle events (save, publish, delete).

  • Webhooks for outbound integrations.

Minimal Plugin Example

from smallblock.plugins import register_plugin

@register_plugin("hello_toolbar")
def hello_toolbar():
    return {"label": "Hello", "action": "/admin/hello"}

Packaging

  • Use semantic versioning and a clear changelog.

  • Keep plugin dependencies minimal and pinned.