Two products, one AI layer. Your content stays HTML.
The editor built
for writing.
RapidFire Editor replaces TinyMCE in place on the post screen, stores plain HTML in post_content, and lets WordPress save. RapidFire Content Engine sits on top of it and edits whole courses. RapidFire AI generates content sections and blocks inside both. Everything stays HTML.
Free core on wordpress.org. Paid components add AI, the Content Engine and the Design Layer.
WordPress
- Dashboard
- Posts
- Media
- Pages
- Comments
How to read a Hazcard
Reading a Hazcard
A Hazcard is a single-sheet summary, produced by CLEAPSS, which brings together the hazard classification, the recommended maximum concentration for school use and the PPE required. Read it in full before you requisition the substance from the prep room.
The number in the top corner is the Hazcard number, not the CAS number.
247 words · Saved in post_content
Publish
Status: Draft
Visibility: Public
Writing
Reading ease
71
2 protected terms
Categories
□ Safety
□ CLEAPSS
41%
of all websites run WordPress
8M
sites install a plugin to keep the 2013 editor
May 2026
core opened TinyMCE's deprecation, no successor named
197.1 KB
admin bundle, gzipped, under a 200 KB build gate
Two products
One editor for documents.
One engine for courses.
They share one codebase and one promise — your content is stored as HTML and every save is a WordPress revision — but they answer different questions, so they are priced and shipped as two products.
Replaces TinyMCE on any post screen.
A modern writing surface in the exact spot the classic editor sat: readability and spelling on every keystroke, RapidFire AI rewrites and generated blocks that land in a Proposed pane, and shortcodes rendered as your site renders them. The core is free and GPL on wordpress.org.
WordPress
- Dashboard
- Posts
- Media
- Pages
- Comments
How to read a Hazcard
Reading a Hazcard
A Hazcard is a single-sheet summary, produced by CLEAPSS, which brings together the hazard classification, the recommended maximum concentration for school use and the PPE required. Read it in full before you requisition the substance from the prep room.
The number in the top corner is the Hazcard number, not the CAS number.
247 words · Saved in post_content
Publish
Status: Draft
Visibility: Public
Writing
Reading ease
71
2 protected terms
Categories
□ Safety
□ CLEAPSS
Edits a whole course, not one page at a time.
Built on the Editor for course businesses: every lesson and topic in one scrolling pane, a readability heat map across the module, import from a marked-up Word document, and one revision per step. Runs on LearnDash today through a provider interface.
The whole module, one pane
Heat map
- Lesson 1 — Why safety matters74
- └ Topic — Reading a hazard label62
- └ Topic — PPE selection17
- Lesson 2 — Risk assessment55
- └ Topic — The five steps68
- Quiz — Check: hazards8 questions
Import from a document
[LESSON] Why safety matters
[TOPIC] Reading a hazard label
[TOPIC] PPE selection
→ parsed tree reviewed · 3 drafts created
Proposed beside Live
One Voice across the module. 14 paragraphs accepted, 3 skipped. Publish writes one revision per touched step.
RapidFire AI
Generate content and blocks inside both products.
RapidFire AI is the AI layer inside the Editor and the Content Engine. It writes content sections, media blocks and interactive tiles — and stores the result as plain HTML in post_content.
Prompt: Add a lab-safety introduction with an image, a checklist, and a summary block.
Generated introduction
Before any practical work begins, read the Hazcard and check the PPE required for the concentration you will use.
The problem
Three ways to write in WordPress.
None of them is an editor for prose.
Each of these is good at something. None of them is good at the thing a writer actually does, which is put one sentence after another and know whether a sentence can be read.
TinyMCE, the classic box
It loads fast, it stores plain HTML, and eight million sites still choose it.
It is a text area from 2013 that still works. There is no structure beyond headings and lists, no preview of a shortcode, and no idea what a course or a learner is.
The block editor
It made visual composition possible without a builder, and it is core, free and default.
It is a page-composition tool, and it is core, free and default. Every paragraph is a block wrapped in markup that only it fully understands.
Page builders
Elementor and Bricks are excellent at page design, and they earned their installs.
They store the page as JSON and render it with their own engine. Deactivate the plugin and the page dies. That is the seam.
The design decision
Three sentences no
page builder can say.
They are all the same decision, made once: the stored form is the page. Nothing is rendered from JSON, so there is no render step between your content and the visitor.
Your content is stored as HTML, not JSON.
Content lives in post_content as ordinary markup. Interactive tiles and layout blocks are comment-delimited regions of that same HTML, upgraded in the browser only when a tile is present.
Turn RapidFire off and every page still renders.
Deactivate every RapidFire plugin and reload. The page is still there, because the page was never a rendering of something else. Uninstalling changes no content.
Nothing RapidFire does can lose your content.
On open, the editor compares what it would store against what is stored, byte for byte. A no-change save is byte-identical. A loss verdict makes the document read-only and offers the classic editor instead.
How it works
It mounts where TinyMCE was,
and lets WordPress do the saving.
RapidFire never posts your content through its own route. It writes into the field WordPress already uses, so everything downstream keeps working exactly as it did.
- 1
Mounts in place
On the post screen for any post type you choose, RapidFire hides the TinyMCE area and takes its place.
- 2
Writes the same field
Every change writes the document's HTML into the hidden content field WordPress already reads.
- 3
WordPress saves
Save submits the form. Autosave, preview and revisions all read the field. RapidFire adds no save path of its own.
- 4
Everything else is untouched
Custom fields, shortcodes, and your SEO plugin's analysis keep reading what they always read.
Block-editor sites keep the block editor. The setting is per post type, not site-wide. Point posts and lessons at RapidFire and leave pages on blocks. Block content opens as blocks, one block is edited as nodes, every other block is sealed, and the editor saves valid blocks. At 0.13.0 a no-change save wrote the stored block content back byte for byte.
The writing rail
The help a writer actually
needs, next to the writing.
No RapidFire editor helps with the words. The rail replaces a stack of separate plugins and the habit of writing somewhere else and pasting it in.
Reading ease on every keystroke
One server-side implementation, so the chip in the tree and the gauge in the rail can never disagree. Scores are cached in post meta.
Spelling and grammar with protected terms
LanguageTool, public or self-hosted as a setting. A protected term is never flagged and never changed.
Voices, not a chat box
A Voice is a saved configuration: service, model, reading-ease target, brief, protected terms, preferred and avoided vocabulary, temperature.
A Proposed pane beside the Live one
Every rewrite lands as a proposal, matched paragraph to paragraph by stable block id. Accept one paragraph or all of them. Nothing reaches your content until you save.
The surface writers expect
Slash menu, markdown shortcuts, a floating bar, drag and drop blocks with a drop line, editable images with resize and caption.
Your shortcodes, rendered as your site renders them
Shortcodes and embeds run through the site's own pipeline in a sandboxed preview. The editor can render in the site's styles.
Video search and embed
Search for a video against the step you are writing and embed it without leaving the screen. Results are cached per query.
Keys stay on the server
Bring your own Anthropic or OpenAI key. It is write-only, never returned over REST, and every request is logged with user, step, Voice, tokens and cost.
The spend cap refuses rather than invoices. Set a limit per site. When it is reached, the next request is declined. You do not find out at the end of the month.
Product two — the Content Engine
A course is a tree of
steps, not a set of pages.
The Editor writes documents; the Content Engine runs courses. It is a separate, paid product on top of the Editor that adds everything about a course rather than a document, and it runs on LearnDash today through a provider interface.
The whole module in one pane
Every lesson and topic in one scrolling surface, each scored, each editable, each saved to its own post as its own revision.
Proposed beside Live
Paragraph-level diff and accept across a whole module. Publish takes only the paragraphs that changed, and writes one revision per touched step.
Import from a document
Drop in a Word or PDF strawman marked with [LESSON] and [TOPIC] breakers. Review the parsed tree, then create the lessons, topics and quizzes as drafts.
Who it is for
One codebase, five conversations.
The same editor answers a different question for each population, and every promise below is checkable against the build or a named public source.
Replace TinyMCE. Keep everything else.
Classic Editor sitesA modern editor on the same screen, writing into the same field, saving through WordPress as it always has. Meta boxes, custom fields, shortcodes, autosave, revisions and preview are untouched.
Proof: In-place mount and WordPress saves, both proven. Built on MIT-licensed Lexical, the editor behind Ghost and Payload.
Write the article, not the blocks.
Long-form publishersOne document, one surface: slash menu, markdown shortcuts, a floating bar and drag and drop, without a toolbar for every paragraph.
Proof: Block content opens as blocks and saves as valid blocks that the block editor accepts. Proven at 0.13.0.
The editor LearnDash never had.
Course businessesWhole-module editing with one revision per step, a readability heat map across the course, and governed AI into a Proposed pane in your own voice. LearnDash gives you the tree. RapidFire fills it.
Proof: 52 LearnDash integration assertions run on every build. Protected terms are never flagged and never changed.
The editor you can put in a contract.
AgenciesA written guarantee: every save is a revision, every diff is inside a text node, and a page that cannot round-trip is never written. Priced per site, always — no site packs, no agency bundles.
Proof: The three-vendor canary, a single stored save path, and a release that fails if it has blown assertions that a client would notice.
AI you can put between an author and a regulation.
Safety & compliance publishersEvery rewrite is governed by a named Voice with protected terms as a hard constraint, lands in a proposal, is accepted paragraph by paragraph, and is logged with user, step, Voice, tokens and cost.
Proof: The acceptance test takes every AI suggestion across a module and every diff must fall inside a text node, or the build fails.
Writers first, at network scale.
Enterprise publishersOne editor across a network, chosen per site and per post type, with a revision on every save and a spend cap that refuses rather than invoices. Network keys, network spend caps and a network audit export are quoted, never published.
Proof: Conflict refusal, a server-side lock and shared-step disclosure are all proven. Multisite keys and caps arrive at Stage 8.
Proof, not adjectives
Three tests you can watch in under a minute.
Every claim on this site is checkable against the build. These are the three that matter most, and you can run all of them yourself.
The no-change save
Open a real post. Save it without typing, and diff the stored content. It is identical, byte for byte.
The deactivation test
Switch off every RapidFire plugin and reload the page. It renders. That is the whole design.
The acceptance test
Take every AI suggestion across a module. Every diff falls inside a text node or the build fails.
Straight answers
The questions people ask first.
- Another editor? We just got used to blocks.
- Keep blocks for pages. Point posts and lessons at RapidFire. The setting is per post type, nothing is site-wide, and block content round-trips byte for byte.
- What happens to my content if I uninstall it?
- Nothing. It is plain HTML in
post_content. Turn RapidFire off and every page renders. That is the whole design. - Will it break my SEO plugin, meta boxes or shortcodes?
- No. RapidFire replaces the editor area and nothing else. Every box keeps reading the field it always read, and shortcodes render through the site's own pipeline.
- Is AI going to rewrite something it shouldn't?
- It cannot. Rewrites go to a Proposed pane, protected terms are a hard constraint in the system prompt, and the acceptance test refuses any save that touches a tag, a shortcode or a protected term.
- Is this a page builder?
- No. The Design Layer is a small set of tokens and presets, so pages agree and CSS stays finite. The page on the left is the real page, every control is a token or a preset, and nothing is rendered from JSON.
- TinyMCE still works. Why move?
- It works, and core has said it will not be advanced. May 2026 opened its deprecation with no named successor. RapidFire is the successor we are building in the open.
Write in WordPress. Keep it forever.
The core is free and GPL, on wordpress.org. Start there, and add AI, the Content Engine or the Design Layer when you need them.