Extend Internote with custom interactive elements and publish them to the marketplace
The Internote plugin system lets you build custom interactive elements — simulations, visualisers, educational tools, creative experiments — and embed them in internotes using the same Chalk syntax as any built-in element. Once approved, plugins appear in the marketplace and are available to every educator on the platform.
A plugin is a self-contained web application that runs in a sandboxed iframe embedded within the internote. The sandbox is fully isolated from the internote page — it cannot read auth tokens, access the parent DOM, or touch the host's storage. All communication between the plugin and the internote runtime flows through the Plugin SDK, which wraps a curated postMessage protocol.
Inside the sandbox, your plugin is a blank web page with full access to the browser's rendering stack. You can render with HTML and CSS, draw to a Canvas 2D context, use WebGL, or build a React component tree — anything a normal web page can do.
In Chalk, a plugin element looks like any other element. Educators import a plugin with one directive and place it in a scene's detail panel: