mrkeyoor.com_
Tue 10 Nov 08:25 UTC
Webevaluationupdated 10 Nov 2026

lexical review

Lexical is a framework for building web text editors, with a framework-agnostic core and official React bindings. It manages document state and supplies editing pieces such as history and plugins. Your application assembles the interface and decides how to store content.

Verdict

The supplied run establishes a successful contributor install and build. Tests were skipped, and browser editing was not verified. Choose Lexical when custom editing behavior justifies maintaining your interface, saved-document fixtures and applicable package migrations. Check persistence and representative editing flows before treating the workspace build as evidence that your application is ready to ship.

We ran it

Lab card: what happened when we ran lexicalScreenshot of lexical (lexical.dev)
Install✓ · 57s2424 packages · 1805 MB
Build✓ · 31s
Testsn/ano test script
Repo3135 files~657,111 lines of source · 28.7 MB · 15 CI workflows

Answers from our run

Does lexical build from source?

Dependencies installed in 57 seconds (2424 packages), and the build succeeded in 31 seconds. We cloned commit a983160 into a clean Debian container with 3 CPUs and no project-specific setup.

Does lexical have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Who should not use lexical?

Teams expecting the React quick start to deliver a finished publishing interface: the example composes plain-text editing and history.

What are the alternatives to lexical?

Tiptap, Slate. The supplied run establishes a successful contributor install and build.

SetupN/AThe contributor workspace installed and built, but consumer integration and a supported browser application were not reproduced.
DocsN/AThe supplied README, editor-state documentation and release notes support specific claims, but their completeness for custom integrations was not assessed.
CommunityN/AThe supplied metadata records a recent push, but support quality, issue responses and resolution times were not assessed.
MaturityN/ANo browser editing, accessibility, collaboration or persistence workload was executed to assess product reliability.

Who it’s for

Product teams whose editor needs custom document types or behavior beyond a basic text field.
React developers prepared to assemble editing plugins and maintain their own interface.
Engineers who can keep representative saved documents and check them when upgrading editor packages.

Who it’s NOT for

Teams expecting the React quick start to deliver a finished publishing interface: the example composes plain-text editing and history.
Applications requiring saved JSON alone to preserve selection and runtime node keys: the state documentation explicitly excludes them.
Maintainers unable to handle applicable package migrations: v0.53.0 removes deprecated extensions and unchecked node type arguments.
Sites required to support browsers older than the README lists, unless they independently establish compatibility.

Setup reality

The supplied November 4, 2026 sandbox run at a983160 installed the pnpm workspace in 57 seconds, recording 2,424 dependencies and 1,805 MB on disk. The build succeeded in 31 seconds. Tests were skipped; the measurement records "no tests script/target, skipped" and contains no passing-test result.

The README's React quick start uses lexical and @lexical/react, then composes a contenteditable surface, a plain-text plugin and history. Your application still needs content storage and its chosen controls. That package-consumer path was not separately measured, and the full workspace footprint is not a browser bundle measurement.

The sandbox configuration specified 3 CPUs, 8 GB RAM and image lab-node:22. The image label does not establish actual runtime or operating-system versions. Browser editing, persistence round trips, accessibility and collaboration have no measured outcome in this run.

Saving a Lexical document makes its node types your responsibility

A Lexical document saved as JSON needs the same node types registered when you restore it. The editor-state documentation makes that requirement explicit. For a team introducing custom nodes, adoption includes keeping stored content readable as the application changes.

Lexical's core is framework agnostic, with official React bindings. Its README lists plugins, history, serialization and Yjs collaboration. The React quick start composes a contenteditable surface with plain-text behavior and history. Your team supplies the application's controls and persistence decisions.

That makes Lexical worth evaluating when you need custom editing behavior and can maintain the resulting integration. Teams seeking a finished publishing interface should account for the work beyond the quick start. The repository run below helps estimate contributor setup; it does not assess your document design.

What happened when we ran it

The supplied sandbox run installed Lexical's pnpm workspace in 57 seconds and built it in 31 seconds at commit a983160 on November 4, 2026. It recorded 2,424 dependencies occupying 1,805 MB on disk. These figures cover the repository workspace. They do not establish an application's installed dependency footprint or shipped JavaScript size.

Tests were skipped. The measurement records "no tests script/target, skipped"; it does not explain how a target was selected or establish that Lexical lacks tests. The README separately lists contributor commands for unit tests, Chromium end-to-end tests, linting and type checks. Those commands are not passing results from this run.

The checkout contained 3,135 files, approximately 657,111 source lines and 28.7 MB. The scan recorded monorepo workspaces and 15 CI workflow files, with no Dockerfile or tests directory detected. Those file flags do not establish test coverage or CI success.

The sandbox configuration specified 3 CPUs, 8 GB RAM and image lab-node:22. The image name alone establishes neither the runtime nor operating-system version. Browser editing, accessibility, collaboration and persistence round trips were not measured.

The practical finding is a successful contributor install and build. Allow space for that workspace if you intend to contribute; the 1,805 MB figure says nothing about a browser download.

Document JSON omits selection and runtime node keys

Lexical maintains an underlying editor state as its source of truth. Its documentation describes state snapshots becoming immutable after updates. The state contains the node tree and selection, but serialization preserves a narrower set of information.

The toJSON method serializes the document tree only, excluding selection and runtime node keys. To restore saved content, the documentation instructs developers to parse the JSON and apply the resulting state with the same node types registered. Reopening at a particular caret position therefore requires more than storing document JSON alone.

Dollar-prefixed helpers operate inside synchronous read or update callbacks. The documentation says to finish asynchronous work first, then enter an update with the result. This lifecycle matters when adding remote content or custom editing behavior.

Before adopting custom nodes, keep a saved document containing the types you expect to ship. Reload it with the intended registrations, edit it and save it again. Repeat that check during upgrades. This is a proposed acceptance check, not a persistence result from the supplied sandbox.

Version 0.53.0 includes migration obligations

The supplied release metadata identifies v0.53.0, published October 28, 2026. The v0.53.0 notes remove extensions deprecated as of v0.52.0 and unchecked node type arguments. For affected traversal and lookup calls, they instruct developers to remove the type argument and narrow the result with a node guard. The notes describe runtime behavior for that type-argument change as unchanged.

The release also changes how experimental @lexical/mdast tables store column alignment. Its notes say editor states serialized with the old state lose column alignment on load. Teams using that experimental feature should include alignment in their saved-document checks; the warning does not apply to every Lexical document.

The release lists fixes for input composition, selection and iOS interactions. These are maintainer-reported changes, not behaviors verified by the sandbox build. Similarly, the README's accessibility claims do not assess an application's toolbar labels, dialogs or custom nodes.

The measured checkout is identified by commit a983160. The supplied evidence does not establish that this checkout is the v0.53.0 release tag. The release notes and the workspace measurements answer separate questions.

Compare the document model and required features

Tiptap describes a headless editor extended through extensions. Its README says Pro Extensions need a valid subscription. Check the exact extensions your product requires and whether they belong to the paid offering. The supplied lab run provides no cost or performance comparison with Tiptap.

Slate documents a schema-less core, nested documents and React integration. Its README labels the project beta and warns that APIs will have breaking changes. Evaluate whether that document model suits your application and whether your team can maintain the integration through those changes.

For more detail on the React integration, the supplied existing @lexical/react page covers version 0.49.0. Its version differs from the v0.53.0 release notes discussed here.

Lexical's supplied public metadata records a push on November 10, 2026. That is evidence of a recent repository update; it does not establish support response times or application reliability. Those dimensions remain unassessed.

Before committing stored content to Lexical, keep a representative document, a paste sample and the keyboard flow your users need. Require an upgrade to pass those checks before applying it to production content.

Alternatives

ProjectWhat it isPick it when
Tiptap gh↗A headless editor extended through extensions.Evaluate Tiptap when its extensions match your document needs. Its README says Pro Extensions need a valid subscription, so check whether your required features fall in that offering.
Slate gh↗A customizable editor framework with React integration, a schema-less core and nested documents.Evaluate Slate when its nested document model fits your design and you can accommodate API changes. Its README labels it beta and warns of breaking changes.

What people are saying

  1. [velocity-scout] meta/lexical

Sources

  1. Lexical README
  2. Lexical editor state
  3. Lexical v0.53.0
  4. Tiptap README
  5. Slate README
  6. Lexical public metadata

More web reviews

Serein · vue · astryx · ungoogled-chromium · docsify · ScanRuler · the whole board →