Release Notes | 15 May 2025
📌 If you have any questions shoot us an email or join us on Discord! 💜
We’ve been hard at work improving Multiplayer to make visualizing distributed systems better.
🌟 Help us spread the word about Multiplayer by sharing these updates on Bluesky, Threads, or X. 🌟
New Features​
New Visualization Block for Platform Notebooks​
We’ve added a new block type to Platform Notebooks: the Visualization Block.
This block allows you to write custom HTML, CSS, and JavaScript directly within the notebook (using a secure, sandboxed environment) to add interactive visual elements.
It’s designed for users who want to create interactive visual elements such as:
- Data visualizations using libraries like D3, Chart.js, or ECharts
- Custom dashboards or UI components
- Lightweight frontend experiments or embedded widgets
Key Capabilities
- Runs inside a sandboxed iframe for isolation and security
- Supports modern JavaScript, including ES modules
- Works with CDN-based imports (e.g., esm.sh, jsDelivr)
- Can access variables defined in notebook code blocks via
myVariableName
To use external libraries, include them via type="module"
and import from your preferred CDN.
This block is especially useful when working with dynamic system data or demonstrating how different components interact. It allows teams to prototype and visualize ideas without leaving the context of the notebook.
Notebook Code Blocks now support import
 and require()
​
Platform Notebook Code Blocks now support both import
(ESM) and require()
(CommonJS/UMD), making it easier to structure your code modularly and integrate with widely used JavaScript libraries.
This update enables you to write more flexible, maintainable, and expressive JavaScript directly in your notebooks, whether you're pulling in utility functions or external packages.
Supported Module Systems
1. require()
| CommonJS / UMD
The built-in require()
function supports:
- Loading packages from unpkg.com (e.g.,
require("lodash")
) - Loading JavaScript modules from direct CDN URLs
- Automatic wrapping of
module.exports
for compatibility - Returns the evaluated result directly (no need to manually export)
2. import/export
| ECMAScript Modules (ESM)
Notebook Code Blocks also support native import
and export
syntax:
- Load ESM packages from esm.sh
- Support for modern libraries like
react
,moment
, etc. - Requires explicit use of
export default
or named exports - Returns exported values in the result (e.g.,
{ default: value }
)
Additional Notes
- Asynchronous evaluation is supported with built-in timeouts and abort signals
- Module results are cached internally for better performance
- Runs in an isolated QuickJS runtime
This enhancement gives teams more flexibility when building logic, processing data, or embedding dynamic behavior inside Notebooks—all while staying in a secure, sandboxed environment.
Bug Fixes​
- Replaced short debug session IDs with full-length IDs for improved trace and log correlation in Platform Debugger.
- Resolved access control issue affecting shared entities in collaborative environments.
- Improved handling of debug spans and logs to ensure more consistent trace visibility.
📌 Check our roadmap to see what's coming. If you’re interested in a particular feature send us a note - this will help us prioritize what you need the most!