From WordPress to EmDash: first impressions

I have used WordPress for years. It is familiar, flexible, and everywhere. For this personal site, though, I wanted something smaller: a place to publish projects and occasional write-ups without carrying a full CMS ecosystem.

That search led me to EmDash - Cloudflare's open-source, Astro-based CMS positioned as a modern alternative to WordPress. This post is my first pass: what clicked, what felt different, and what I am still figuring out.

Why I looked beyond WordPress

WordPress can do almost anything. That is also the problem for a small personal site. Themes, plugins, updates, PHP hosting, and a UI built for much larger sites add friction when all I want is:

  • A project list that is easy to maintain
  • Occasional technical writing
  • A lean front end that feels like a Hacker News personal site, not a magazine theme

I also considered a pure Markdown + static site. That is still attractive. EmDash won for one practical reason: I can write and publish from a browser admin when I do not want to open the editor and push Git for every note.

What felt familiar

If you know WordPress, EmDash does not feel alien. There is still an admin, content types, drafts, publish, media, menus, and taxonomies. The mental model of "edit content in the CMS, render it on the site" is intact.

Setup on Node with SQLite was straightforward for a solo site. I scaffolded a project, ran the local server, and had an admin at /_emdash/admin. For someone used to installing WordPress on a VPS, that path is comparable - just without PHP and MySQL.

What felt different

The biggest shift is the stack. EmDash sits on Astro. The public site is normal Astro pages querying collections. That means the design is code-first. There is no theme marketplace where you click Install and get a finished look. You shape the front end yourself - which is exactly what I wanted for a lean site, but it is more work on day one than picking a WordPress theme.

Content is structured (Portable Text, typed fields) rather than "a blob of HTML in the classic editor." That is nicer for consistency and tooling, and a bit stricter when you are used to pasting anything into WordPress.

The plugin story is also different. EmDash is early compared with WordPress's endless plugin library. The trade-off EmDash advertises is safer, sandboxed plugins. For my use case - personal projects site - I barely need plugins yet. Still: if your workflow depends on a specific WordPress plugin, do not assume there is a drop-in replacement.

First setup lessons

A few things I learned quickly:

  • Seed content only lands cleanly on a fresh database. Changing seed.json later means re-seeding or editing in admin.
  • Keep EMDASH_ENCRYPTION_KEY safe. You will need the same key when you deploy.
  • Local passkey setup can be awkward in some browsers. The local dev bypass is useful while iterating.
  • Decide your content model early. I made Projects a first-class collection and kept Writing for optional notes. That matches how I want the site to read.

Where I land after week one

EmDash is not "WordPress but identical." It is closer to "WordPress-shaped publishing on a modern Astro stack." For a personal projects site, that feels right: browser publishing when I want it, full control over the front end, and less ceremony than a full WordPress install.

I still need to put this on my VPS properly and replace the sample projects with real ones. But the core loop already works: open admin, write, publish, refresh the site.

If you are coming from WordPress and mainly want a lean personal site, EmDash is worth a weekend of experimentation. If you need a huge plugin catalog on day one, stay on WordPress a bit longer - or accept that you will rebuild some workflows yourself.

Comments

No comments yet

← Writing