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.
$ 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.html9f2c1a_e40b before.html9f2c1a_e40b after.html✓ byte-identical
$ wp plugin deactivate rapidfire \rapidfire-editor rapidfire-engineSuccess: 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.
running: accept-all-suggestions.specsteps opened 15suggestions accepted 147diffs inside text node 147tags touched 0shortcodes touched 0protected terms touched 0— assertions ————————————————declared 52 ran 52 passed 52✓ acceptance test passeda 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.
| Area | Built and proven at 0.13.0 | Not yet |
|---|---|---|
| Editor | Lexical 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 rail | Server-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 trip | The 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 Engine | Products, 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. |
| Delivery | Every 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.