RichTextBox.AspNetCore
1.0.0-preview.19
dotnet add package RichTextBox.AspNetCore --version 1.0.0-preview.19
NuGet\Install-Package RichTextBox.AspNetCore -Version 1.0.0-preview.19
<PackageReference Include="RichTextBox.AspNetCore" Version="1.0.0-preview.19" />
<PackageVersion Include="RichTextBox.AspNetCore" Version="1.0.0-preview.19" />
<PackageReference Include="RichTextBox.AspNetCore" />
paket add RichTextBox.AspNetCore --version 1.0.0-preview.19
#r "nuget: RichTextBox.AspNetCore, 1.0.0-preview.19"
#:package RichTextBox.AspNetCore@1.0.0-preview.19
#addin nuget:?package=RichTextBox.AspNetCore&version=1.0.0-preview.19&prerelease
#tool nuget:?package=RichTextBox.AspNetCore&version=1.0.0-preview.19&prerelease
RichTextBox for ASP.NET Core
RichTextBox.AspNetCore is the official ASP.NET Core wrapper around the RichTextEditor 2.0 runtime — Tag Helper, server endpoints, AI provider adapters, upload pluggability, and DOCX export — shipped as a single package under a perpetual one-time license.
Drop the <richtextbox> tag into any Razor page and you get a Word-class editor with AI Toolkit, slash commands, @mentions, Track Changes, threaded comments, revision history, Yjs presence, dictation, and mobile-first layout. Every collaboration / review feature ships in the base license — no premium tier, no usage credits.
30-second setup
// Program.cs
builder.Services.AddRichTextBox();
builder.Services.AddRichTextBoxOpenAiResolver(opts =>
{
opts.ApiKey = builder.Configuration["OpenAI:ApiKey"];
opts.Model = "gpt-4o-mini";
});
var app = builder.Build();
app.MapRichTextBoxUploads(); // also maps DOCX export + AI streaming endpoints
@* MyPage.cshtml *@
@addTagHelper *, RichTextBox
<form method="post">
<richtextbox asp-for="Body"
toolbar="full"
height="540px"
enable-ai-toolkit="true"
enable-slash-commands="true"
enable-tracked-changes="true"
enable-comments="true"
enable-revision-history="true" />
</form>
That's the full integration. Drop RichTextBox.lic next to Program.cs, post the form as normal, and the model receives clean HTML.
What's in the box
Editor & toolbar
- Drop-in
<richtextbox>Tag Helper (Razor Pages and MVC) - Static web assets bundled — no separate CDN required
- Toolbar presets (
default,basic,full,mobile,office) plus custom toolbar strings — see the Toolbar Items Reference for every available item ID - Skins, resize modes, context menus, fullscreen, autosave
- Mobile toolbar mode (44×44 tap targets, sticky header, bottom-sheet dropdowns) via
enable-mobile-toolbar="true"
AI Toolkit
- Ask AI dropdown, AI Chat docked panel, AI Review drawer
- Built-in provider resolvers for OpenAI, Anthropic, Azure OpenAI (one-line DI)
- Streaming responses (Server-Sent Events) — tokens render as they arrive
- BYOK pattern +
IRichTextBoxAiResolverfor any custom backend
builder.Services.AddRichTextBoxOpenAiResolver(opts => { ... }); // OpenAI / Groq / Ollama / Together
builder.Services.AddRichTextBoxAnthropicResolver(opts => { ... }); // Claude
builder.Services.AddRichTextBoxAzureOpenAiResolver(opts => { ... }); // Azure OpenAI
Collaboration & review
- Slash commands — type
/to insert blocks - @Mentions —
@,#, custom triggers; async data sources - Track Changes — Word-style human suggesting mode
- Threaded comments — anchored to selection ranges
- Revision history — snapshots, diff API, named versions
- Yjs presence + opt-in concurrent typing (
textSync: true)
All toggleable via enable-* Tag Helper attributes; all share a single editor.reviewLedger store.
Export & dictation
- DOCX export — server-side via MIT-licensed
DocumentFormat.OpenXmlatPOST /richtextbox/export/docx - PDF export — client-side via the
html2pdftoolbar item - Markdown — round-trip via
enable-structured-content="true" - Dictation — Web Speech API, microphone toolbar button, opt-in via
enable-dictation
Pluggable cloud uploads
IRichTextBoxUploadStoreinterface — default writes to disk; swap for S3 / Azure Blob / Cloudinary / GCS with one DI registration- See the cloud upload providers reference for copy-paste sample stores
Operations
RichTextBox.licvalidation- Configurable file-extension allow-lists, size limits, upload roots
- Folder-aware image gallery endpoint
- Built-in AI suggestion ledger + review-log persistence (file or custom store)
Tag Helper attribute reference (highlights)
| Attribute | Effect |
|---|---|
asp-for |
Model-bind the editor's HTML to a property |
toolbar |
Preset name (default, basic, full, mobile, office) or a custom config key |
height, width, skin |
Size and theme |
enable-ai-toolkit |
Turn on Ask AI / AI Chat / AI Review |
enable-slash-commands, enable-mentions |
Notion-style / picker and @-mention chips |
enable-tracked-changes, enable-comments, enable-revision-history |
Review stack |
current-user-id, current-user-name, current-user-color |
Author attribution for Track Changes / comments |
enable-collab |
Yjs presence (peer-dependency Y.Doc + provider) |
enable-dictation, dictation-lang, dictation-continuous |
Speech-to-text |
enable-mobile-toolbar |
Compact 44×44 tap-target toolbar with bottom-sheet dropdowns |
enable-structured-content |
JSON / Markdown export helpers |
auto-save, auto-save-key, auto-save-delay |
Form-level autosave |
image-items-json, gallery-images-json, html-templates-json |
Custom dialog libraries |
Full list of attributes and item IDs at richtextbox.com/ToolbarItems.
Endpoints mapped by MapRichTextBoxUploads()
| Default route | Configurable via | Purpose |
|---|---|---|
POST /richtextbox/upload |
Options.UploadEndpoint |
Image / file upload (delegates to IRichTextBoxUploadStore) |
GET / POST /richtextbox/gallery |
Options.GalleryEndpoint |
Folder-aware image gallery |
POST /richtextbox/ai |
Options.AiDemoEndpoint |
AI requests (resolved via IRichTextBoxAiResolver) |
POST /richtextbox/ai/stream |
Options.AiStreamEndpoint |
Streaming AI responses (SSE) |
POST /richtextbox/export/docx |
Options.DocxExportEndpoint |
HTML → .docx download |
GET / POST /richtextbox/ai/ledger |
Options.AiSuggestionLedgerEndpoint |
Persisted AI / review-suggestion ledger |
GET / POST /richtextbox/ai/review-log |
Options.AiReviewLogEndpoint |
Review-decision audit log |
Pricing model
Perpetual one-time license. No subscription, no per-load metering, no AI usage-credit invoices. The full v2.0 stack — including Track Changes, Comments, Revision History, AI Toolkit, DOCX export, dictation, and Yjs presence — ships in the base license.
See richtextbox.com/Pricing for current pricing tiers.
Migrating from TinyMCE or CKEditor 5
Most teams finish in under a day. Existing HTML keeps working; toolbar config maps mostly 1→1; the features you're paying premium for ship in our base license.
Step-by-step config cheat sheets: richtextbox.com/Migrate
Versioning & release notes
Every preview release is documented at richtextbox.com/ReleaseNotes. Recent highlights:
- preview.13 — Pluggable cloud upload providers (
IRichTextBoxUploadStore) - preview.12 — Dictation, mobile toolbar mode, improved Paste from Word
- preview.11 — DOCX export, named revisions + diff API
- preview.10 — Streaming AI (SSE), Yjs concurrent typing preview, public Accessibility statement
- preview.9 — First-party AI provider resolvers (OpenAI / Anthropic / Azure)
- preview.8 — v2.0 collaboration & review plugins (Slash, Mentions, Track Changes, Comments, Revision History, Yjs)
Documentation
- Live demos — richtextbox.com/Demos
- End-User Guide (for document authors) — richtextbox.com/UserGuide
- Toolbar items reference — richtextbox.com/ToolbarItems
- Cloud upload providers — richtextbox.com/UploadProviders
- Accessibility statement (WCAG 2.2 AA) — richtextbox.com/Accessibility
- Comparison vs TinyMCE / CKEditor / Froala / TipTap — richtextbox.com/Compare
Support
- Email support@richtextbox.com — first response within one business day
- Trial license requests — sales@richtextbox.com
- Accessibility issues — accessibility@richtextbox.com
© Richscripts Inc. — all rights reserved. Licensed under the RichTextBox.AspNetCore EULA.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- DocumentFormat.OpenXml (>= 3.1.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0-preview.19 | 38 | 7/14/2026 |
| 1.0.0-preview.5 | 71 | 4/8/2026 |