How plugins extend the QNTX frontend with custom element types, rendering, and real-time updates.
Plugins are process-isolated gRPC services. They can register HTTP endpoints (/api/{plugin}/*) and WebSocket handlers, but the frontend has no mechanism for plugins to:
All element types are hardcoded in element-registry.ts at build time. A plugin like qntx-code that wants a "Go Editor" element or a biotech plugin that wants a "Protein Viewer" element has no extension point.
AT Protocol plugin (qntx-atproto) provides a feed element using server-rendered HTML fragments. The plugin serves HTML via HTTP endpoint, frontend fetches and mounts it into the element content area.
Plugins implement the UIPlugin interface which returns ElementDef structs defining custom element types.
AT Protocol plugin (qntx-atproto) provides a feed element (🦋) showing Bluesky posts.
Python plugin has not been migrated to custom UI yet.