16 plugins, each one go get away

The heavy-JavaScript features that would break the core's runtime budget live in a sibling repo. Most run in an opaque-origin sandboxed iframe and reach the host only over a versioned postMessage bridge; the few that must touch the host page say so.

richtext

Full Rich Text block editor built on ProseMirror.

mermaid

Isolated Mermaid diagram editor/renderer.

monaco

Configurable Monaco (VS Code) code editor.

pdf

PDF viewer / editor / redactor built on pdf.js (render) + pdf-lib (write).

datagrid

Data grid over AG Grid Community's infinite row model — the fifth sandboxed heavy-JS plugin, and the first whose traffic is pages rather than one document.

tour

Guided product-tour ("app cues") plugin: spotlights host-page elements with stepped tooltip bubbles, progress, and don't-show-again persistence.

map

Interactive vector map (MapLibre GL + OpenFreeMap).

chart

One chart spec, two agreeing renderers: a pure-Go SSR SVG (chart/ssr — the page works with JavaScript off) and a sandboxed Observable Plot frame that hydrates it into an…

logstream

Live log tail in an opaque-origin sandboxed iframe (xterm.js).

imageedit

Crop / annotate / redact image editor, and the proof that the pdf plugin's bytes-over-the-bridge design generalizes: the frame has connect-src 'none' and receives the image as an…

formbuilder

Form-schema authoring tool — the first plugin whose output the framework itself consumes and enforces.

calendar

Month/week/day calendar written from scratch — no FullCalendar, no upstream JS library at all (~24 KB bundle, 0 npm dependencies).

whiteboard

Collaborative whiteboard, and the proof that collaboration does not need a socket in the cage.

scanner

Barcode and QR scanning where the camera is UNREACHABLE from the plugin: an opaque-origin frame is refused getUserMedia outright (SecurityError: Invalid security origin, and an…

genui

Generative UI: a model composes a view out of a FIXED registry of React components, naming component ids and typed props — never markup, never CSS, never code.

sqlnotebook

A SQL notebook running a real SQLite engine (sql.js, WebAssembly) inside the opaque-origin frame.

Where this list comes from

Built from the plugins.json file in the gofastr-plugins v0.5.0 release (2026-09-01). Nothing looks plugins up at runtime: go get the package and mount it with app.RegisterPlugin.

curl -fsSL -O https://github.com/DonaldMurillo/gofastr-plugins/releases/download/v0.5.0/plugins.json

How the sandbox, capabilities and trusted mounts work: the plugin platform doc. Plugin source: gofastr-plugins on GitHub.