About this plugin
Ideom puts a real mind-map editor inside your WordPress admin. No external service, no accounts, no iframes: maps are ordinary WordPress content, stored in your database, protected by WordPress permissions, and embeddable in any post or page with a block or a shortcode.
Made for thinking
- A real canvas editor. The whole map is drawn on an HTML canvas by a custom React renderer, so dragging, panning and zooming stay smooth even on large maps.
- Markdown in every node. Headings, bold and italics, code, links, lists, quotes — even tables.
- Style it your way. Color branches, change line styles and shapes, resize nodes, drop sticky notes, and react to any node with emoji.
- Keyboard first. A command palette (Ctrl/Cmd+K), find node (Ctrl/Cmd+F), duplicate branch (Ctrl/Cmd+D), and full undo/redo.
- Templates. Star any map as a template and start new maps from it.
- Export. Download any map as an SVG file.
Made for WordPress
- Your data stays home. Every map is a ideom_map post; the document is JSON in post meta. Deactivating or deleting the plugin leaves your maps untouched, and Tools → Export can back them up.
-
Embed anywhere. Use the Mind Map block or the shortcode below. Visitors get the map read-only: they can pan, zoom, fold branches and export, and nothing they do reaches the server.
[ideom_map id=”42″ height=”600″]
-
Start from anywhere. + New → Mind Map in the admin bar opens a fresh map.
- Sensible permissions. A published map is readable by anyone — that is what makes embedding worth doing. Everything else follows WordPress capabilities: creating needs edit_posts, updating or deleting is re-checked on the server for that specific map, and the map list is never public.
- Its own REST API. Maps are served through the plugin’s ideom/v1 namespace, and every write passes strict document validation. Core’s post endpoints are deliberately not exposed.
Worth knowing before you write anything sensitive in a map: a published map is readable by anyone who knows its post id, whether or not it is embedded anywhere. Keep private notes out of published maps, or keep the map as a draft.
REST API
Namespace ideom/v1. Writes are authenticated with cookies plus the standard X-WP-Nonce header; reading a published map needs neither.
- GET /maps — every map the caller may see, newest first, capped at 100
- POST /maps — create a map
- GET /maps/<id> — read one map
- PUT /maps/<id> — overwrite one map
- PUT /maps/<id>/template — star or unstar a map as a template
- DELETE /maps/<id> — delete one map
Errors carry a stable code: ideom_invalid_document (400), ideom_forbidden (403), ideom_not_found (404).
Source Code
This plugin ships built JavaScript and CSS. The unminified source, and the tools that build it, are public:
- Repository: https://github.com/theguriev/ideom
- Each release is built from the tag of the same version as Stable tag.
Where the shipped files come from:
- assets/index.js ← apps/wordpress/src/main.tsx (with packages/engine and packages/storage ), built by apps/wordpress/vite.config.ts
- assets/block.js ← apps/wordpress/src/block.ts, built by apps/wordpress/vite.block.config.ts — a second, separate Vite build
- assets/index.css ← apps/wordpress/src/index.css (Tailwind)
To build it yourself you need Node 22 or newer and pnpm:
com/theguriev/ideom cd ideom pnpm install pnpm wp:package
zip, which is this plugin.