We started with WordPress. Like everyone else.

WordPress powers 43% of the web. It's mature, extensible, and everyone knows how to use it. But if you're building a modern SaaS, WordPress eventually becomes the thing you fight instead of the thing that helps.

Here's why we left — and why we built EmDash as the alternative.

The WordPress Tax

WordPress is free. But the "free" comes with hidden costs:

**Plugin bloat.** Every plugin adds its own dependencies, its own database tables, its own JavaScript bundles. Install 10 plugins and your "lightweight" site now loads 3MB of scripts. Install 30 and you're debugging PHP conflicts at 2AM.

**Hosting complexity.** Sure, you can run WordPress on shared hosting for $5/month. But the moment you need Redis, object caching, or WP-CLI automation, you're looking at $50-100/month VPS. Plus the constant security updates.

**The admin experience.** The WordPress admin is built for bloggers in 2005. Gutenberg improved things, but it's still PHP-rendered, mobile-unfriendly, and slow. Your clients will hate it.

**Scaling nightmares.** WordPress scales horizontally with caching, but the architecture is fundamentally synchronous PHP. Need real-time features? Good luck.

What We Actually Wanted

When we started AIKit, we had a clear spec:

- Serverless from day one (Cloudflare Workers + Pages)

- Edge-deployed global CDN

- Plugin architecture (not a monolithic CMS)

- Modern frontend (Astro, not PHP templates)

- No database management (we wanted D1/SQLite-native)

- AI-first content management

Nothing on the market checked all boxes. So we built it.

Enter EmDash Plugin Studio

EmDash started as an internal tool. We needed a CMS that could:

1. Run on Cloudflare's edge (zero server management)

2. Support plugins without modifying core code

3. Handle Portable Text content (Sanity-compatible)

4. Generate SEO metadata automatically

5. Schedule content with cron

6. Cost exactly $0 until we needed scale

Six months later, we had the first working version. Another three months, and we realized: this should be a product, not just our internal tool.

The Architecture (In Plain English)

EmDash uses a sandboxed plugin system:

```astro

---

// Your Astro site imports EmDash for content

import { getContent } from 'emdash-plugin-studio'

// Plugins register themselves via the admin UI

// No core code changes needed

const posts = await getContent('posts', { plugin: 'auto-blog-seo' })

---

```

Each plugin runs in an isolated worker context. One plugin can't crash another. One plugin's database queries can't block another's. This is critical for a multi-plugin ecosystem.

The Migration: Moving 3 Years of Content

Migrating from WordPress wasn't trivial. Here's what we did:

Step 1: Export WordPress XML

We used the standard WordPress export tool. Got a 12MB XML file with all posts, pages, media, and metadata.

Step 2: Transform to Portable Text

Our migration script read the WordPress XML, extracted content as HTML, converted to markdown, then to Portable Text JSON. HTML-to-Portable-Text conversion was the hardest part — WordPress's block editor outputs nested HTML that doesn't map cleanly to Sanity's block model.

Step 3: Import to D1

We wrote a one-shot import script that inserted all posts into `ec_posts`, created revision records, and migrated SEO metadata to `_emdash_seo`.

Step 4: Set Up 301 Redirects

Old WordPress URLs ( `/2024/01/seo-tips/` ) needed to map to new EmDash URLs ( `/blog/seo-tips` ). We used Cloudflare Workers to handle redirects at the edge — zero latency, zero server cost.

What We Gained

| Metric | WordPress (Before) | EmDash (After) |

|--------|-------------------|----------------|

| Page load time | 1.2s | 280ms |

| Builds | 15 min | 45 seconds |

| Monthly cost | $45 | $0 |

| Plugin management | Admin UI + FTP | Admin UI + marketplace |

| SEO control | Yoast (heavy) | Auto Blog/SEO (lightweight) |

| Content scheduling | Manual | Automated cron |

Would We Go Back?

Not a chance. And we don't think you should either — unless your site is a simple blog with no custom functionality. For anything beyond that, the serverless, plugin-native approach is strictly better.

The WordPress ecosystem is impressive. But it's built for a different era — when server-side rendering was the only option, when plugins installed code directly into your site, and when "scaling" meant renting a bigger server.

EmDash is built for the edge era. Serverless, plugin-sandboxed, AI-ready, and free until you outgrow it.

Ready To Migrate?

The EmDash Plugin Studio is free. The Auto Blog/SEO plugin handles your content and SEO. The migration tool exports from WordPress. If you have 10+ posts, you can migrate in an afternoon.

We did it. So can you.

---

*This post was generated, SEO-optimized, and published entirely through EmDash and the Auto Blog/SEO plugin — the dog-fooding pipeline we wrote about in our previous post.*