If you need one whole local project
Nested canvases, Windows files, search across the tree and backup recovery should all stay in one library.
8 capabilities of Schemas in order: what it is, the problem it solves, how it works here, and how Miro and draw.io answer it. With an honest mark wherever we are not first.
Nested canvases, Windows files, search across the tree and backup recovery should all stay in one library.
Comments, mentions, sharing and realtime editing matter more than working offline and owning the files locally.
You need mature pages, layers, export and a choice of local or cloud storage for individual diagrams.
The axis of this comparison is the functionality of Schemas. We take our capabilities one at a time and look at how Miro and draw.io answer each of them. This is not a review of Miro or draw.io: they have areas we do not implement, and those areas do not appear here.
Any element on a canvas can own a child canvas of its own — with its own contents, its own camera and a way back to the parent.
Complex work does not fit on one plane. The usual response is to stretch it sideways, and a month later the project is a field where the thread is gone.
A double click opens the next level, the breadcrumb trail leads back to the parent. The tree of levels is stored with the root canvas, so search and export understand depth, not just the current screen.
Depth is not a mode or a separate feature — it is a property of the element model. That is why it needs no hand-made links between documents and does not fall apart when the project moves.
Strong board organisation: named areas, layers and nested containers in diagram mode.
Mature pages inside one file; moving to the next level is built with links between pages.
Building process, UML and architecture diagrams on a real canvas: shapes, groups, labels and three link types.
A diagram is not there for the picture. If shapes and links cannot be brought to order, the diagram stays a draft and stops being a document you can point at.
Shapes, groups, labels and links stay part of the project and go into the export together with the level they belong to.
We claim no superiority here: both Miro and draw.io are mature diagram editors. Our difference is that the diagram lives inside a project with a tree of levels and its material, rather than as a separate document beside them.
Extensive sets of shapes and templates for diagrams on a shared board.
Large shape libraries, including UML and architecture notations, and precise work with geometry.
PDFs, documents, SVGs, images, archives, audio, video and links sit next to the diagram as managed project files.
Material torn out of its context loses its meaning: the diagram in one place, the contract in another, the reference in a third — and the link between them held only in someone’s memory.
The project keeps the file in its own local library and builds a preview for orientation, while the original stays an ordinary Windows file — you can open it, copy it and pass it on.
A file does not turn into a cloud attachment or a link into someone else’s folder: it is part of the project and moves with it.
Files are attached to the board and live in the team’s cloud space.
The diagram and the material stay separate files in the storage you choose.
The library, settings, history and material are stored on your computer; the core work needs no account and no internet.
If a project lives in someone else’s service, access to it depends on the network, on the plan, and on whether the service is running at all.
The app opens like an ordinary Windows program and reads the local library folder: the SQLite database, the managed files, the previews and the service data.
Working offline is the normal mode here, not the emergency one. That said, draw.io Desktop also works entirely without a network: our difference is that offline work is joined to one library and a tree of levels.
There is no official offline mode; Miro’s strength is sharing and working together through the cloud.
The Desktop version is offline on Windows, macOS and Linux; files can be stored locally.
Global search finds a specific element deep inside the project, shows the path to it and opens the right canvas.
In a multi-level project an object is easier to lose than a file: you remember it exists, but not which level or which branch it is on.
The result is not a list of files: search returns the path to the object, opens the canvas that owns it and takes you back to the element itself.
Search understands the tree of levels because the tree is part of the project model, not a folder-naming convention someone has to keep to by hand.
Finds boards and their contents inside the team’s cloud space.
Finds shapes and text in the open diagram file.
The native package keeps the whole project, while external formats hand the material to wherever it will be continued, shown or signed off.
A project you cannot take out of the app is a hostage of the tool. A project that only comes out as a picture cannot be continued.
The .cppboard and .cppcanvas formats keep the tree and let work continue exactly. SVG, PNG, JPEG, WebP, PDF, PPTX, JSON, draw.io and standalone HTML cover showing and handing over.
Only our native formats promise exact continuation of editing — the external ones solve different problems and can lose part of the structure, and we say so plainly. draw.io meanwhile remains the benchmark for open file compatibility.
PDF, JPG, SVG and CSV; part of the structure, the comments and the interactivity does not carry over.
The files suit Git and external storage, with a strong import ecosystem.
Import and export do not work only on “the whole project”: you can take the current canvas, a chosen branch, or the project in full.
Usually the choice is between handing over everything and assembling what you need by hand. Both are bad when one branch — and only that branch — has to go.
Import adds material to the current context rather than to the root of the project. Export hands over the chosen scope in the chosen format.
Choosing the scope is possible precisely because the project is a tree: a branch has a boundary you can name, check and hand over.
Export covers the board or a fragment selected on it.
Export covers a page, a selection, or the whole diagram file.
Action history, safe deletion, a recycle bin, a library check and backup recovery of the working context.
In a large project the cost of an accidental action grows: a mistake costs not one element but the whole context you assembled.
The library check verifies the database, the links between records and the required files. A full backup is created without overwriting an existing one and stays where you tell it to.
Recovery is part of the local library, not a service you are given: the copy stays with you and does not depend on access to an account.
Board versions are kept in the cloud space together with the board itself.
The history is determined by where the file sits, not by the editor.