Skip to content

Proof

Watch it, don't take our word for it.

Premium software is software you can put between an author and eight years of content. That is not a claim you can make with adjectives, so here are three tests instead. Run them in this order.

Test one

The no-change save

Open a real post in RapidFire. Do not type anything. Save it. Then diff what is stored against what was stored before.

It is identical. Not equivalent, not normalized — identical, byte for byte. At 0.13.0 that holds for block-editor content too: nine blocks of the test topic open as blocks, save as blocks, and the block editor validates all nine.

This is the test that matters most, because an editor that quietly rewrites content on open is an editor that has already damaged your archive before you noticed.

No-change savePass
$ wp post get 4210 --field=content > before.html
# open in RapidFire, save, no edits
$ wp post get 4210 --field=content > after.html
 
$ diff before.html after.html
(no output)
 
$ sha256sum before.html after.html
9f2c1a_e40b before.html
9f2c1a_e40b after.html
 
✓ byte-identical
Deactivation testPass
$ wp plugin deactivate rapidfire \
rapidfire-editor rapidfire-engine
Success: Deactivated 3 of 3 plugins.
 
$ curl -s https://site.test/lesson-1/ \
| grep -c '<p>'
14
 
$ curl -s https://site.test/lesson-1/ \
| grep -c 'rapidfire'
0
 
✓ page renders, plugin absent

Test two

The deactivation test

Switch off every RapidFire plugin. Reload the page. It renders, in full, with your theme's own styles, and no trace of RapidFire in the markup.

This works because the stored form is the page. There is no render step, no JSON in post meta, and no frontend runtime that has to be present for a paragraph to appear. Interactive tiles are comment-delimited regions of ordinary HTML that read on their own, and are upgraded in the browser only when a tile is actually present.

We do not say "no lock-in." We say what your content is — HTML in post_content — and what happens with the plugin off. You can check both in under a minute.

Test three

The acceptance test

Open fifteen steps. Take every AI suggestion. Save. Every single diff must fall inside a text node, with no tag, no shortcode and no protected term touched — or the build fails.

That is the guarantee an agency can put in a contract, and it is the reason a safety publisher can let a model near a regulation. A protected term is a hard constraint in the system prompt, and the checker never flags one either.

Rewrites land in the Proposed pane. Nothing reaches post_content until you save.

Acceptance test — 15 stepsPass
running: accept-all-suggestions.spec
 
steps opened 15
suggestions accepted 147
diffs inside text node 147
tags touched 0
shortcodes touched 0
protected terms touched 0
 
— assertions ————————————————
declared 52 ran 52 passed 52
 
✓ acceptance test passed
a run that declares 52 and runs 51 fails

Then the numbers

Gated, not asserted.

Every figure below is a build gate. If the build exceeds it, the build fails, which is why these are numbers rather than adjectives.

197.1 KB

admin bundle, gzipped, against a 200 KB gate. None of it ever reaches a visitor.

30 KB

front-end stylesheet gate. One static stylesheet for the whole site.

5 KB

per interactive tile, loaded only on a page where that tile is present.

0 bytes

of per-page CSS, ever. A guard fails the build if any is emitted.

Wrapper depth of one. Because the stored form is the page, there is no render step for a cache miss to expose. On shared hosting, where a page cache hides a builder's cost until it misses, the miss is cheap.

Status at 0.13.0

What's ready now, and what's coming next.

RapidFire 0.13.0 is already writing, editing and publishing real content in WordPress. The table below shows exactly which features are shipping today and which are planned for the next releases.

RapidFire status at 0.13.0 by area: what is shipping today and what is planned for upcoming releases.
AreaBuilt and proven at 0.13.0Not yet
EditorLexical editor with headings, lists, quotes, links and code; editable images with resize, caption, link and replace; slash menu; markdown shortcuts; floating bar; drag and drop; site-styles toggle; shortcodes and embeds rendered as the site renders them.Tables as a first-class node. Find and replace. Real-time collaboration, deferred.
Writing railServer-side reading ease. LanguageTool spelling and grammar with protected terms. Video search and embed. Voices. Settings with write-only keys.AI drafting through the rail. AI images. Diagrams.
Round tripThe canary, with ok, cosmetic and loss. Classic content with autosymmetry. Six core blocks edited as nodes, every other block sealed. A no-change save byte-identical to the seed.More core blocks on the editable list, each added after its own proof.
Content EngineProducts, courses and a tree with outline numbers. Open and save with conflict refusal. Proposed pane with paragraph diff, accept and Publish. Full Editor Mode. Whole-module checks. 52 LearnDash integration assertions.Tree editing. Import. Build. AI. Block-builder tiles and statements.
DeliveryEvery version packaged, recorded in the shipped-versions ledger, committed and pushed. Bundle at 197.1 KB gzipped under a 200 KB gate. Accessibility targets gated.A second plugin for the editor alone. The wordpress.org listing.

How to read this site. Anything written in the present tense has shipped and runs on the test stack. Anything gated to a stage carries its stage on the label, like Stage 8 or Planned. We would rather lose a sale than move a claim forward by one release.

Every claim on this site is checkable.

If you find one that isn't, that is a bug in the site and we want to hear about it.