Features / Editor

Rich Text Editor.

A Lexical-powered editor with formatting, tables, code blocks, media embeds, and inline toolbars. Add a richText field to any collection and your editors get a polished writing experience out of the box.

Overview

What it does

Nextly's rich text editor is built on Meta's Lexical framework, providing a modern editing experience that supports bold, italic, headings, lists, links, tables, and code blocks out of the box.

You add rich text to your collections using therichText()field helper. The admin panel renders a full editor with an inline toolbar for formatting, and content is stored as structured Lexical JSON in your database.

The editor is designed to give content authors freedom while keeping your data structured. Editors interact with a familiar word-processor-style interface, while developers get clean, predictable JSON output.

KeyCapabilities.

Everything your editors need, nothing they don't.

Rich Formatting

Bold, italic, underline, strikethrough, headings (H1-H6), and highlight. Standard formatting with keyboard shortcuts.

Lists & Structure

Ordered and unordered lists, blockquotes, horizontal rules, and dividers. Build structured content with purpose-built block types.

Tables

Insert and edit tables directly in the editor. Add rows and columns, merge cells, and control alignment.

Code Blocks

Inline code and fenced code blocks for technical content. Syntax-aware formatting for developer-focused documentation.

Links & Media

Insert links with URL validation. Embed images from your media library with the upload relationship.

Inline Toolbar

Select text to reveal a floating toolbar for quick formatting. Keep the editing area clean and distraction-free.

Code Example

How it works

Add a richText field to any collection. The admin panel automatically renders the Lexical editor for that field.

collections/posts.ts
import { defineCollection, text, richText } from"@revnixhq/nextly/config";

export default defineCollection({
 slug:"posts",
 fields: [
  text({ name:"title", required: true }),
  text({ name:"slug", unique: true }),

  // Lexical-powered rich text editor
  richText({
   name:"content",
   required: true,
   admin: {
    description:"Main post content",
   },
  }),

  richText({
   name:"excerpt",
   admin: {
    description:"Short summary for previews",
   },
  }),
 ],
});

Start building with Nextly

Free, open source, and yours to own. No sign-up required.

>_npx create-nextly-app@latest