iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
I built slash-editor because, in the products I worked on, creating a Notion-like editor was less difficult at the editing-engine level than at the block-interaction level. I wanted slash insertion, hover drag handles, nested reordering, a “Turn into” menu and block comments—alongside keyboard and mouse controls, a UI developers could adapt, and a project-described MIT dependency graph.
That is my account of the problem and design goals, not a benchmark or a claim that other editors share the same limitations. The project describes slash-editor as a React block editor with a headless Tiptap/ProseMirror core and UI components supplied through a shadcn registry. Its article presents a feature snapshot labeled “What’s in 0.5”; it does not establish what the latest release supports.
What I wanted from a Notion-like editor
The block editor I wanted was not just a rich-text field with a toolbar. I was looking for an interaction layer that could make blocks easy to create, move, nest and transform. The specific interactions I wanted included:
- A slash menu for inserting blocks.
- Hover drag handles and block menus.
- Reordering blocks, including nested content.
- A “Turn into” action for changing a block’s type.
- Block comments.
In my experience, those interactions—not simply choosing an editor engine—were the hard part of making the editor feel like the product I had in mind. I encountered tradeoffs involving styled npm components, trying a different engine such as Slate, or finding features such as templates, AI or comments tied to commercial licenses or paid plans. That describes my experience; it is not an exhaustive comparison of the editor market.
#1 Best Overall
I wanted three things to work together: keyboard-first block editing with mouse equivalents; UI styled using the consuming app’s shadcn tokens, including dark mode; and a dependency graph the project describes as MIT. I also wanted sync, AI and uploads to be supplied through adapters so a team could connect its own backend rather than depend on services hosted by the editor project.
How slash-editor is structured
The project separates editing logic, React integration and the visible UI. That division is intended to let developers work with the editor core without taking on a fixed React component library, while still providing React hooks and installable UI.
| Layer | Role |
|---|---|
@slash-editor/core |
Tiptap/ProseMirror extensions, schema and commands; no React or CSS. |
@slash-editor/react |
Hooks over @tiptap/react for lifecycle, store subscriptions and caret anchors. |
| shadcn registry | UI components copied into the consuming application, where developers can change the code. |
The project documentation describes the same broad split: a headless core, React bindings and independently installable UI components. In the author’s account, the core exposes UI state machines through subscribe and getState. React hooks turn those into React state and anchor geometry; registry components render the interface using primitives such as Popover and Command.
That approach makes the UI part of the application’s code rather than a sealed component package. It gives a team room to adapt the copied components, but it also means the team owns those modifications and any maintenance that follows.
Why drag handles and nesting shaped the implementation
Finding a block when the pointer is not on text
A pointer in the gutter or block padding may not correspond to a usable caret position. The implementation described by the author resolves hover and drop targets using cached block rectangles instead. This is meant to let a drag handle identify the relevant block even when the pointer is outside the text itself.
For a move, the author describes performing a delete and insert in one transaction. The stated benefits are that the operation becomes one undo step and carries the block ID with it.
Rank #3
Nesting that follows the document schema
For nested content, placement checks the document schema rather than wrapping everything in one universal block container. The author’s rationale is that this keeps the document as plain Tiptap JSON for extensions and Markdown serialization, rather than introducing a wrapper that could complicate those uses.
IDs and collaboration
The author says block IDs are assigned when blocks are inserted, not during rendering. When pasted content would duplicate an ID, the implementation regenerates it; remote y-sync transactions are skipped. These are design claims presented as support for combining the editor with Yjs collaboration, block-anchored comments and Mermaid diagrams—not independent compatibility test results.
What the version 0.5 snapshot describes
The article’s feature list is explicitly a snapshot of version 0.5, not confirmation of the current release. It describes a broad set of editing, content and collaboration features:
Rank #4
- Block controls: slash menu with ranking, aliases, groups and custom items; drag handles and block menus.
- Content blocks: headings, lists, task lists, toggles, callouts, quotes, columns and tables.
- Media and embeds: image, video, file and embed blocks that use an upload adapter.
- Extensions and navigation: mentions, adapter-based AI actions, Mermaid diagrams and a table of contents.
- Collaboration: real-time collaboration with Yjs, Hocuspocus or WebRTC, along with presence avatars and comments.
- Document workflows: read-only documents, Markdown import and export, and Markdown shortcuts.
- Developer resources: documentation files intended for coding agents.
The project’s stated non-goals define important boundaries. It does not describe a hosted sync server, AI gateway or asset storage service. The article also says it does not target DOCX/PDF fidelity, pagination or track changes. React was the supported framework at the time described, even though the core itself is renderer-free.
What “fully MIT” means here—and what remains unverified
The project and its author describe slash-editor as having an MIT dependency graph, with no paid tier or hosted dependency. Those are project statements, not an independent audit of every dependency or a verification of current package metadata. Anyone relying on the licensing claim should inspect the current package and dependency licenses for the specific version they plan to use.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Likewise, “Notion-grade block UX” is best understood as the author’s goal and product framing, not a measured quality rating. The reviewed article and documentation introduction do not report adoption numbers, performance benchmarks, accessibility or security audits, production case studies or independent comparative evaluations.
Best Value
How to decide whether this editor fits a project
Rather than treating the feature list as a verdict, evaluate the editor against the requirements your product actually has:
- Interaction model: Does it provide the block operations your users need, and can they perform them by keyboard as well as mouse?
- UI ownership: Do you want components copied into your application so you can change them, and are you prepared to maintain those changes?
- Licensing boundaries: Verify the license for the exact release and its dependencies; do not rely only on a project-level description.
- Infrastructure: Identify who will operate sync, AI and asset storage. The project describes these as adapter-based integrations rather than hosted services.
- Framework support: Confirm that the supported framework matches your application. React is the support described in the article’s snapshot.
- Document workflows: Check whether the product needs formats or editing workflows outside the stated scope, including DOCX/PDF fidelity, pagination or track changes.
The article invites developers to try the playground, open it in two tabs with a collaboration room parameter, inspect the starter and send feedback on the API shape before 1.0. That is the author’s invitation; it is not a report of independent testing or confirmation of the current release status. The article’s displayed posting date is September 30 without a year, and the documentation introduction does not state a publication date or current release version. For volatile details such as package versions and release status, consult the project’s current materials.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.
Free tools Windows power users keep installed
One-click scans. No signup required.

