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 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.jsonHow the sandbox, capabilities and trusted mounts work: the plugin platform doc. Plugin source: gofastr-plugins on GitHub.