Your Miro board, opened here.
One command pulls the board through Miro's own API into a JSON file, and Tuval reads that file. The token never leaves your shell, the browser never talks to Miro, and the board arrives with its geometry intact rather than as a picture of itself.
Two commands and a drop
Make a developer token with boards:read at miro.com, run the export script with the board id, and drop the JSON on a board here. Nothing is uploaded to us in between: the file is written on your machine and read in your browser.
What comes across
Frames, and what is inside them
Frames arrive as frames and keep their name. Items nested in a frame stay nested, resolved after every id is known so a child listed before its parent still lands in the right place.
Sticky notes, shapes and text
A sticky keeps its size and the nearest colour from our palette rather than a colour we do not have. Shapes and text keep their box. Cards and app cards become sticky notes, since that is what they are once the tracker they pointed at is gone.
Images and documents
Placed at the same size and position, from the URL Miro gives them.
Connectors, last
Drawn after everything else, because both ends have to exist here first. A connector whose endpoint did not come across is counted rather than drawn between the wrong two things.
What does not come across
Anything Miro has that this list does not name — a widget type we do not draw. It is counted by type and reported when the import finishes, so you know what to go back for instead of finding out in a meeting.
The point is to stop paying for the board, not to keep a copy of it
An export you cannot open is a hostage note. This one opens, and once it is open the sticky notes on it can become issues without being retyped.