Introduction to Custom Widgets
The killer feature of monodit is the ability to write your own custom widgets directly within the application.
You don't need to set up a local development environment, learn a specific framework, or deploy external code. You simply write standard web technologies—HTML, CSS, and JavaScript—in the widget settings modal or author a manifest file and import it.
The Sandbox Environment
Security and stability are our top priorities. To ensure that custom widgets cannot interfere with the main dashboard application or steal your session data, every custom widget runs inside a heavily restricted Iframe Sandbox.
- Isolation: Your widget cannot access the parent window (
window.parent), cookies, or the browser's local storage. - Communication: Widgets communicate with the main dashboard solely through a secure, predefined messaging bridge (
window.ctx).
This means you can experiment freely. Even if you write a widget with an infinite loop or broken layout, it will be contained within its own grid cell and won't crash your dashboard.
Where to Go Next
-
Widget Authoring Guide — Complete guide to writing, exporting, and sharing custom widgets. Includes the full manifest format, sandbox constraints, and three working examples (counter, RSS reader, shared todo list).
-
Theme Authoring Guide — Complete guide to creating Basic (token-based) and Dynamic (code-driven) custom themes. Includes the manifest format, all six required tokens, and four working examples.
-
Bridge API Reference — Detailed reference for every
ctxmethod available inside the sandbox:ctx.storage,ctx.store,ctx.assets,ctx.proxyFetch,ctx.openUrl,ctx.onResize,ctx.onConfigChange, and token APIs. -
Storage & Buckets — Explains host-managed buckets, storage contracts, document storage, asset storage, topology, and quotas.