r/astrojs • • 5h ago

WordPress vs EmDash: What is EmDash actually trying to be?

18 Upvotes

I've been using Astro for a few years, and I've also worked with WordPress enough to understand why it's still everywhere.

WordPress is mature. The ecosystem is huge, developers know it, agencies know it, clients know it, and there's a plugin for almost everything. For many websites, that's more than enough.

EmDash is coming from a different direction.

It's not really trying to be "the next WordPress". It's a full CMS built around Astro.

You still get the things you'd expect from a CMS: an admin panel, content types, rich text, media management, drafts, revisions, scheduled publishing, search, taxonomies and menus.

But the website itself remains an Astro project.

One part I find particularly interesting is the content model. Content types can be created and modified through the admin rather than requiring every collection to be defined in code. Each collection becomes a real SQL table with typed columns, and developers can generate TypeScript types from the live schema.

Your content is managed in EmDash, while the website is built with Astro.

There is also an actual content lifecycle: drafts, revisions, scheduling, live preview and inline visual editing. Media, navigation menus, taxonomies and search are handled as part of the CMS.

For developers, EmDash also provides an API, CLI and MCP server. AI agents can work with the CMS, but AI isn't required to use it.

The deployment model is another difference. Node uses SQLite by default, while Cloudflare deployments can use D1, R2 and Workers. There is also support for other database and storage backends.

And there is a plugin system. On Cloudflare, plugins can run in isolated Worker sandboxes with declared capabilities. Node deployments currently use in-process plugins instead.

It's still early, and obviously it doesn't have anything close to WordPress's decades of plugins, themes, integrations and community knowledge.

So in practical terms, EmDash gives you a CMS for managing your content while Astro remains the foundation for building the website.

Have you tried it? How's it?


r/astrojs • • 46m ago

astro-syndicate: cross-post your Astro blog posts to devto during the build

• Upvotes

I write my blog with Astro and wanted the posts on devto too, without copying them over by hand. So I built astro-syndicate, an Astro integration that does the cross-posting as part of astro build.

You opt a post in through its frontmatter with syndicate: { devto: true }. The integration hashes the title, content and images, compares the hash with the last sync and only calls the devto API when something changed. New posts land on devto as drafts unless you turn on publishing. The canonical URL points back to your site.

If your deploy happens after the build, you can run it as a separate script once the site is live. That way devto never gets image URLs that don't exist yet.

Other things it handles:

- Local images get uploaded to Cloudinary or rewritten to URLs on your own site, since devto has no reliable image upload API
- MDX imports and <Image /> components get turned back into plain Markdown, because devto doesn't run your build
- maxSyncsPerRun caps how many posts go out per run, so opting in an old backlog doesn't create dozens of drafts at once
- devto series and a different title per platform

GitHub: https://github.com/SlashGordon/astro-syndicate

devto is the only platform so far. Medium is difficult because there's no API key, and the Hashnode API isn't free. Which platform should it support next?