Pick your platform
Use this page to find your platform, see what works there today, and jump to a five-minute quick start.
Every platform runs the same Rust core, so documents, extensions, and commands behave the same everywhere. A document you create in Dart exports byte for byte the same as one created in Rust or TypeScript.
What’s available today
| Platform | Package | Status | Quick start |
|---|---|---|---|
| Server: Rust | canvist_headless | Available | Rust |
| Server: Node, Deno, Bun, Workers | @canvist/headless | Available | TypeScript |
| Server: Dart | canvist | Available | Dart |
| Server-side rendering | canvist_headless (ssr feature) | Available in Rust; JavaScript soon | SSR |
| Flutter | canvist_flutter | Engine available; editor widget soon | Flutter |
| Web | @canvist/web | Preview | Web |
| React | @canvist/react | Preview | React |
| Vue | @canvist/vue | Preview | Vue |
| iOS | Canvist Swift package | Coming soon | iOS |
| Android | canvist-android | Coming soon | Android |
| macOS, Windows, Linux | canvist_desktop | Coming soon | Desktop |
| React Native and Lynx | @canvist/react-native | Coming soon | React Native and Lynx |
Available means the package works and its tests run on every change. canvist hasn’t had its first release yet, so every quick start shows how to install from GitHub, and the registry command for after the release.
Which one do I need?
- You’re processing content on a server: importing Markdown, cleaning pasted HTML, migrating TipTap JSON, or running a collaboration endpoint. Use the server package for your language.
- You’re building a Flutter app: use
canvist_flutter. Your engine code stays the same when the editor widget ships. - You want an editor in a web page: use
@canvist/web, or its React and Vue bindings. Do server work with@canvist/headless. - You’re an AI coding agent: read Integrate canvist with an agent first.