offloadcms
A static-site press for WordPress

PUB LISH ED.

WordPress sites that cost nothing to keep alive.

Point offloadcms at a running WordPress site. It prints every entry to static HTML on Cloudflare's edge — fast for people, and readable for the AI crawlers WordPress hands nothing to.

$0/ month — one self-contained instance on the Cloudflare free tier.

The running cost

A small WordPress site never stops running.

A blog with a hundred visitors a month still runs a database, executes PHP on every request, and queues plugin and security updates that break in your sleep. You pay — in money and in maintenance — for traffic that barely exists.

Hosting

A box that runs 24/7 for a page that changes monthly.

$8–30 / mo
Plugins & security

Patch, test, repeat. One bad update is downtime.

your weekends
Speed

PHP + DB on every hit. Cold caches on every deploy.

TTFB tax
AI readability

Crawlers that don't run JS get a blank shell.

invisible
The signature move

Watch a running site go to press.

offloadcms reads the site from the database once and prints it: every entry becomes static HTML plus the structured data a crawler needs. This is the real publish pipeline — D1, render, edge — shown as a single press run.

running · wp-admin live · db queried per request
wp-admin / edit post #128

Hello world

A live PHP request rebuilds this page from the database every single time someone — or no one — visits.

autosaving mysql: 41 queries 18 plugins
$0.00billing this month
STATIC$0 / month · readable by GPTBot, ClaudeBot, PerplexityBot
Same galley, new press

Your WordPress concepts map one to one.

Nothing to relearn. The data model mirrors WordPress, so an import lands where you expect it.

post_type

Posts & pages

Drafts, scheduled, published, revisions — the editorial states you already use.

taxonomy

Categories & tags

Hierarchical categories and flat tags, archives generated for both.

meta / acf

Custom fields

ACF-like field groups, typed and attached to any entry.

wp_media

Media library

Uploads land in R2 with responsive sizes and image SEO baked in.

nav_menu

Menus & roles

Menus, widgets, and WordPress roles carry across intact.

permalink

Permalink structures

Keep your URL scheme. Existing links and SEO equity survive the move.

What runs it
$0

per month · Cloudflare free tier

One self-contained instance per Cloudflare account.

It owns its own storage and serves exactly one site. No shared infrastructure, no per-seat bill.

D1

Content

Your posts, taxonomy, and settings in SQLite at the edge.

R2

Media

Object storage for uploads — no egress fees.

KV

Sessions & cache

Magic-link auth and fast key reads.

Workers + Pages

Serve

The admin API and the printed static site, on the same edge.

Pricing

Free to run yourself. Hand us the keys if you'd rather not.

The CMS is the same on every plan. You pay only to skip the operations — not for features.

Self-host
$0
forever · your Cloudflare account

Run a full instance on the Cloudflare free tier. You own the data and the resources.

  • One self-contained instance, one site
  • D1 + R2 + KV + Workers + Pages
  • WordPress import + static publish
  • Community support
Read the docs
Most popular
Managed
$12 /mo
we run the instance for you

We provision, deploy, and keep it published. You write; we operate.

  • Everything in Self-host
  • Managed provisioning + deploys
  • Automatic publish on save
  • Backups + uptime monitoring
  • Email support
Start managed
Agency
Custom
done-for-you, at scale

Bulk WordPress migrations and multi-site management for studios and agencies.

  • Everything in Managed
  • Done-for-you migrations
  • Multi-instance dashboard
  • Priority support + SLA
Talk to us

Subscriptions billed securely through Polar — Merchant of Record. Cancel anytime. Prices shown are placeholders pending your final plan.

The way in

Offload the weight.

Point offloadcms at your WordPress database and uploads directory — no REST API dependency, nothing to install on the old box. It imports your content and prints the site to static. The server you were keeping alive can go dark.

import · natalievo.com
The press run, in order

From database to printed edge.

Each step feeds the next — the order is the product.

Read the site from D1

Posts, pages, taxonomy, media references, and settings are assembled into one site model.SiteData ← D1

Render each entry to static HTML

Content stored as structured JSON is serialized to flat HTML with a complete head: JSON-LD, canonical, Open Graph.render-site.ts · buildHead · jsonld

Generate sitemap, robots, RSS, search

A sitemap, a robots.txt that allows AI crawlers, RSS feeds, and a Pagefind static search index.generateRobots · feeds · pagefind

Upload the bundle to Pages

The static bundle ships to your Cloudflare Pages project — same account, no cross-account token.Pages Direct Upload

Stop paying to keep it running

PRINT IT
ONCE.

Take a WordPress site off life support, print it to the edge, and let the crawlers read it. Then forget the bill.