Now booking · Q2 2026

Migrate WordPress
to EmDash,
the right way.

Done-for-you migrations from WordPress and static sites to Astro + EmDash. Your marketing team edits via Claude, Codex, or any MCP-compatible agent. We handle the move.

Get Started → See services From $1,500 · ships in 2–4 weeks
Core Web Vitals · all green MCP-native, marketer-safe Astro 6 · Cloudflare Workers
build target · WordPress vs. Astro + EmDash SPEC
WordPress · industry p75TTFB
1.84 s
Astro + EmDash · our gateTTFB
0.120 s
Response time · simulated 60s windowms
LCP
< 1.5 s
CLS
< 0.05
INP
< 200 ms
Lighthouse mobile · gated in CI Read the brief →
— for the unfamiliar

What is EmDash?

FILEDApril 1, 2026
FROMCloudflare, Inc.
STATUS● live

An open-source content management system Cloudflare launched on April 1, 2026 — Apache-licensed, written in TypeScript, designed to run on Cloudflare Workers (or Node, or any JavaScript runtime). What sets it apart from headless WordPress alternatives is that EmDash is built for AI agents from the foundation up.

01

Typed JSON, not blob fields

Content lives as typed JSON schemas the LLM can read. No more grepping serialized post-meta tables.

{ "title": string,
  "hero": Hero,
  "body": Block[] }
02

MCP server, in the box

Claude, Codex, or any MCP-compatible agent edits the site directly. The introspectable CLI returns structure LLMs parse without hand-holding.

$ emdash mcp serve
→ ready · 142 tools
→ claude connected
03

Sandboxed Worker plugins

Plugins run in isolated Cloudflare Worker isolates with explicit permissions. The end of 30-plugin runtime breakage.

permissions:
  - read:posts
  - write:media
04

Runs anywhere JS runs

Workers by default. Node, Bun, Deno also work. Apache-licensed, written in TypeScript, content portable as flat files.

runtime: workers
fallback: node | bun
license: Apache-2.0
For marketing teams who've watched WordPress fight every Claude or Cursor edit, EmDash is the first CMS that treats AI editing as the primary workflow rather than a bolted-on afterthought. — We migrate WordPress and static sites to it.
Launched
April 1, 2026
License
Apache 2.0
Language
TypeScript
Runtime
Cloudflare Workers
Maintainer
Cloudflare
Repository
github.com/cloudflare/emdash

Built on the same primitives
we ship to clients:

Astro EmDash Cloudflare MCP Claude · Codex
the third option

Two bad options.
We're building a third.

Marketing teams want to edit. Devs want a fast site. Most stacks force a trade-off — EmDash doesn't.

01 · WordPress CMS-first

A CMS that owns your stack.

Marketers can edit. Engineers ship through plugins, page builders, and PHP. Performance dies by a thousand cuts; security patches arrive on Tuesdays.

plugins + builder + DB + PHP host
02 · static + git Dev-first

A static site that owns your team.

Engineers love it. Marketers can't touch it. Every typo becomes a pull request; every campaign becomes a sprint.

0 plugins · 0 marketer access
03 · Astro + EmDash The right way

A site that respects both.

Static-site speed, content marketers can edit through Claude or Codex, governed like git. Files-as-database — no CMS to babysit, no plugin tax.

1 stack · MCP-native · CWV-green
the moving parts

Same site,
half the moving parts.

A typical WordPress migration replaces five things with one folder of typed Markdown. EmDash compresses the plugin stack into one MCP layer your marketing team can actually steer.

before · wordpress

~27 · moving parts
  • WordPress corePHP
  • MySQLDB
  • Page builderbuilder
  • Custom Fields pluginfields
  • SEO pluginplugin
  • Cache plugincache
  • Security pluginsecurity
  • Form + spam pluginsforms
  • SMTP pluginmail
  • + functions.php, mu-plugins, snippets

after · astro + emdash

4 · primitives
  • Astro 6framework
  • EmDashcms layer
  • Cloudflare Pages + Workersedge
  • MCPai surface
files-as-database · sub-1s ttfb target · no plugin tax
marketer-safe

A site your team can actually edit.

EmDash exposes your content as MCP tools. Marketers ask Claude or Codex in plain language; the agent commits a clean git diff your engineers can review. Same governance — without the ticket queue.

  • 01
    Plain-language edits. "Change the headline on the pricing page" — the change ships as a typed git commit, no CMS UI to learn.
  • 02
    Schema-aware. The agent knows your collections, your fields, and your validation. It won't put a phone number where a URL should go.
  • 03
    Reviewable diffs. Every edit is a PR. Engineers approve in GitHub; marketers see the preview URL the moment it merges.
  • 04
    No new accounts. Your team edits in the Claude or Codex they already use. No CMS login, no role matrix, no "did you save?"
C claude · demo session connected
M
Update the WordPress migration page — change the duration line from "ships in 3–5 weeks" to "ships in 2–4 weeks" and add a meta tag "fixed-price scope".
C
Found content/services/migrate-wordpress.md. Here's the diff:
- duration: "ships in 3–5 weeks"
+ duration: "ships in 2–4 weeks"
+ meta: "fixed-price scope"
C
Opened PR #42 · preview ready in ~12s. Want me to ping @quang for review?
Yes — and add a row to the changelog. enter
honest by default

No fake testimonials.
Here's what we will tell you.

EmDash itself is new. We're early, and we'd rather say so than line up stock photos pretending otherwise. Two honest things to know before you book the call.

The tech is new. The team isn't.

OC WEBFIRM has been shipping marketing sites for SMBs and agencies since 2014. Every migration on this site uses the same playbook we've run on plain Astro for years — only now your marketing team can edit through Claude or Codex.

  • 12+ years shipping marketing sites
  • Astro stack since 2023
  • Same playbook, MCP-wired

Read the OC WEBFIRM story →

Be the first migration we publish.

We won't fake testimonials and we won't ship a generic case study. If you migrate off WordPress with us in the next two months, we'll trade discounted pricing for a published case study with your real numbers and your team named.

  • One slot — still open
  • Discounted pricing for the build
  • Published case study, your numbers

Talk to us →

how it ships

Four weeks. No stalls.

A migration is a project, not a six-month overhaul. We work in fixed weekly milestones. You see the next one before the current one ends — drag the dot to look ahead.

Week 1
Week 2
Week 3
Week 4
Week 1 · phase 01

Audit and content map.

We crawl the live site, build a row-by-row content map, and flag everything that is broken, duplicated, or quietly costing Core Web Vitals. You get a working preview URL by day seven.

  • Full URL inventory
  • Plugin and theme dependency audit
  • Lighthouse + CWV baseline
  • Day-7 preview URL

Migrate the right way.

30-minute intro call. We'll walk through your current site, give you a fixed-price estimate, and tell you honestly if you'd be better off staying put.

Replies within 1 business day NDA on request
Project · intro call
30 min · free
Q2 2026
Starts at
$1,500
Ships in
2–4 weeks
Stack
Astro · EmDash · CF
Booking
Q2 2026 · open