{"id":74372,"date":"2026-04-22T21:00:10","date_gmt":"2026-04-22T13:00:10","guid":{"rendered":"https:\/\/www.hongkiat.com\/blog\/?p=74372"},"modified":"2026-04-20T13:49:58","modified_gmt":"2026-04-20T05:49:58","slug":"what-is-emdash-cms","status":"publish","type":"post","link":"https:\/\/www.hongkiat.com\/blog\/what-is-emdash-cms\/","title":{"rendered":"A look into EmDash CMS"},"content":{"rendered":"<p>When <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/blog.cloudflare.com\/emdash-wordpress\/\">Cloudflare announced EmDash CMS on April 1st<\/a>, I thought it was a joke.<\/p>\n<p>But as I looked at the <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/github.com\/emdash-cms\/emdash\">GitHub code<\/a>, read Cloudflare\u2019s announcement, and saw <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/ma.tt\/2026\/04\/emdash-feedback\/\">Matt Mullenweg\u2019s response<\/a>, I realized this isn\u2019t just another CMS trying to beat WordPress. I think it\u2019s an interesting test of what a CMS could be in a world with AI tools, serverless hosting, and more security worries.<\/p>\n<figure>\n    <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/assets.hongkiat.com\/uploads\/what-is-emdash-cms\/emdash-cover.jpg\" alt=\"EmDash CMS Cloudflare WordPress alternative\" width=\"1000\" height=\"600\">\n  <\/figure>\n<p>The real question isn\u2019t if EmDash will replace WordPress. It\u2019s whether it shows us what CMS software might look like next.<\/p>\n<h2>What is EmDash CMS?<\/h2>\n<p>EmDash is Cloudflare\u2019s attempt to make a <strong><q>next version of WordPress<\/q><\/strong>. It is written in TypeScript and built on <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/astro.build\">Astro<\/a>, which runs well on serverless platforms, especially Cloudflare\u2019s own services. It tries to keep WordPress\u2019s flexibility and admin panel, but adds type safety and plugin sandboxing to fix security issues that WordPress has been facing for years.<\/p>\n<h2>Prerequisites<\/h2>\n<p>Before you start playing with EmDash, here\u2019s what you\u2019ll need:<\/p>\n<ul>\n<li><strong>Node.js 22+<\/strong>: For local development<\/li>\n<li><strong>A Cloudflare account<\/strong>: For the best experience (though it can run elsewhere)<\/li>\n<li><strong>Basic TypeScript knowledge<\/strong>: The entire codebase is TypeScript<\/li>\n<li><strong>Familiarity with Astro<\/strong>: EmDash uses Astro for frontend rendering<\/li>\n<\/ul>\n<h2>Installation<\/h2>\n<p>You have a few options to install EmDash, depending on how you want to try it:<\/p>\n<h3>Create a new EmDash site locally<\/h3>\n<p>For local development and testing, use the <code>npm<\/code> command:<\/p>\n<pre>\r\nnpm create emdash@latest\r\n<\/pre>\n<h3>Deploy directly to Cloudflare<\/h3>\n<p>If you want to skip local setup and go straight to deployment, use the Cloudflare deploy link:<\/p>\n<pre>\r\nhttps:\/\/deploy.workers.cloudflare.com\/?url=https:\/\/github.com\/emdash-cms\/templates\/tree\/main\/blog-cloudflare\r\n<\/pre>\n<h3>Try the online playground<\/h3>\n<p>For a quick look without any setup, check out the <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/emdashcms.com\/playground\">EmDash playground<\/a>.<\/p>\n<figure>\n    <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/assets.hongkiat.com\/uploads\/what-is-emdash-cms\/emdash-playground.jpg\" alt=\"EmDash CMS online playground interface\" width=\"1000\" height=\"600\">\n  <\/figure>\n<h2>Plugin security<\/h2>\n<p>Here\u2019s where EmDash goes a different way from WordPress.<\/p>\n<p>WordPress plugins can do anything. They can read and write to your database, change files, connect to the internet. This isn\u2019t a mistake. It\u2019s a choice that allows great flexibility.<\/p>\n<p>But this flexibility also has security risks. So EmDash uses a different method called sandboxing where each plugin runs in its own separate space with clear rules about what it can do.<\/p>\n<p>Here\u2019s what a simple email notification plugin looks like:<\/p>\n<pre>\r\nimport { definePlugin } from \"emdash\";\r\n\r\nexport default () => definePlugin({\r\n  id: \"notify-on-publish\",\r\n  version: \"1.0.0\",\r\n  capabilities: [\"read:content\", \"email:send\"],\r\n  hooks: {\r\n    \"content:afterSave\": async (event, ctx) => {\r\n      if (event.collection !== \"posts\" || event.content.status !== \"published\") return;\r\n      \r\n      await ctx.email!.send({\r\n        to: \"editor@example.com\",\r\n        subject: `New post published: ${event.content.title}`,\r\n        text: `\"${event.content.title}\" is now live.`,\r\n      });\r\n      \r\n      ctx.log.info(`Notified editors about ${event.content.id}`);\r\n    },\r\n  },\r\n});\r\n<\/pre>\n<p>See those <code>capabilities<\/code>?<\/p>\n<p>The plugin can <em>only<\/em> do what it says it will do. No secret internet connections, no database access beyond what\u2019s allowed. This is a big change from WordPress\u2019s \u201ctrust me with everything\u201d approach.<\/p>\n<h2>AI-native from day one<\/h2>\n<p>While WordPress 7.0 is starting to introduce AI features into the core through its <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/make.wordpress.org\/core\/2026\/03\/18\/introducing-the-connectors-api-in-wordpress-7-0\/\">Connectors API<\/a>, which enables plugins to connect to external AI services, EmDash takes a more direct approach by giving AI agents the ability to actually run your site.<\/p>\n<p>Every EmDash site comes with three core tools that make this possible:<\/p>\n<ul>\n<li><a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/agentskills.io\/home\">Agent skills<\/a> provide clear instructions that guide AI in building plugins, themes, and making changes to your site\u2014like recipes that agents can follow step by step.<\/li>\n<li><a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/github.com\/emdash-cms\/emdash\/blob\/main\/docs\/src\/content\/docs\/reference\/cli.mdx\">EmDash CLI<\/a> gives you powerful command-line tools for managing content, uploading files, and creating content types, making automation and scripting much easier.<\/li>\n<li><a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/modelcontextprotocol.io\">Built-in MCP server<\/a>. This allows AI tools to connect directly to your site, read and update content, and manage everything through a standard protocol.<\/li>\n<\/ul>\n<p>WordPress is also moving in a similar direction with its <strong><a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/github.com\/wordpress\/mcp-adapter\">official MCP adapter<\/a><\/strong>, which connects <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/developer.wordpress.org\/news\/2025\/11\/introducing-the-wordpress-abilities-api\/\">the Abilities API<\/a> to the MCP.<\/p>\n<p>The key difference is that in WordPress, this is an additional plugin you install. In EmDash, it\u2019s built in from the start.<\/p>\n<h2>Built-in x402 support for monetization<\/h2>\n<p>Here\u2019s something WordPress doesn\u2019t have: every EmDash site has <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.x402.org\">x402<\/a> support built in. <strong>x402 is an open standard for internet payments<\/strong> that lets you charge for content each time someone uses it.<\/p>\n<p>When an AI tool tries to read your content, it gets a \u201cPayment Required\u201d message, pays immediately, and gets access. No subscriptions, no extra coding.<\/p>\n<p>In a time when AI tools are collecting web content, this feels less like an extra feature and more like something you need to survive.<\/p>\n<h2>WordPress import support<\/h2>\n<p>EmDash wants to make it as easy as possible to migrate your WordPress blogs. So they provide:<\/p>\n<ol>\n<li>A WordPress import tool that makes it easy to migrate your site to EmDash, including content and media<\/li>\n<li>Tools to convert WordPress custom post types to EmDash collections<\/li>\n<li>Agent skills for porting WordPress themes to EmDash<\/li>\n<\/ol>\n<p>The migration tools work surprisingly well. I imported a test WordPress site in under 10 minutes.<\/p>\n<p>Migration results, however, may vary depending on your site. If you rely on plugins that add custom post types or custom database tables, you may need to migrate them to EmDash manually.<\/p>\n<h2>Where EmDash stumbles<\/h2>\n<p>No CMS is perfect, and EmDash is no exception. Matt Mullenweg\u2019s feedback, I think, makes some good points:<\/p>\n<h5>1. The sandboxing problem<\/h5>\n<p>As Matt says, <strong><q>their sandboxing breaks down as soon as you look at what most WordPress plugins do.<\/q><\/strong> Complex plugins that work with many systems, handle files, or connect to other services would need so many permissions that the sandbox doesn\u2019t help much.<\/p>\n<h5>2. The UI feels strange<\/h5>\n<p>It looks a bit like WordPress but not exactly, and some things don\u2019t work right.<\/p>\n<h5>3. Vendor lock-in worries<\/h5>\n<p>While it can run elsewhere, it works <em>best<\/em> on Cloudflare.<\/p>\n<h5>4. Missing WordPress\u2019s spirit<\/h5>\n<p>WordPress runs everywhere, from Raspberry Pis to $0.99\/month Indonesian hosting. EmDash? Not really.<\/p>\n<h5>5. No community (yet)<\/h5>\n<p>WordPress isn\u2019t just software; it\u2019s meetups, WordCamps, tattoos. EmDash has GitHub stars.<\/p>\n<p>And there\u2019s the April 1st announcement date. Cloudflare has a tradition of releasing real products on April Fools\u2019 Day (<a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/blog.cloudflare.com\/announcing-1111\/\">remember 1.1.1.1?<\/a>), but it still feels\u2026weird.<\/p>\n<h2>Performance and architecture<\/h2>\n<p>Inside, EmDash is built on modern technologies:<\/p>\n<h5>1. Astro<\/h5>\n<p>For showing web pages, a fast framework for content sites.<\/p>\n<h5>2. Cloudflare Workers<\/h5>\n<p>Serverless code that starts quickly and runs at the edge.<\/p>\n<h5>3. D1 Database<\/h5>\n<p>Cloudflare\u2019s SQLite-based database for serverless applications.<\/p>\n<h5>4. R2 Storage<\/h5>\n<p>For image and file storage with no egress fees.<\/p>\n<h5>5. Portable Text<\/h5>\n<p>Built on top of <strong><a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.portabletext.org\">PortableText<\/a><\/strong>, it uses structured JSON content instead of HTML in the database.<\/p>\n<p>The performance is good. Pages load quickly, and the \u201cscale-to-zero\u201d setup means you only pay for what you use.<\/p>\n<h2>Should you use EmDash?<\/h2>\n<p>Before deciding whether you should use EmDash, here\u2019s a comparison table to help you see the differences between these two systems:<\/p>\n<table>\n<thead>\n<tr>\n<th>Feature<\/th>\n<th>WordPress<\/th>\n<th>EmDash CMS<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Technology Stack<\/strong><\/td>\n<td>PHP, MySQL, JavaScript (jQuery\/React)<\/td>\n<td>TypeScript, Astro, Cloudflare Workers<\/td>\n<\/tr>\n<tr>\n<td><strong>Architecture<\/strong><\/td>\n<td>Monolithic, traditional LAMP stack<\/td>\n<td>Serverless, JAMstack, edge-first<\/td>\n<\/tr>\n<tr>\n<td><strong>Database<\/strong><\/td>\n<td>MySQL\/MariaDB<\/td>\n<td>D1 or SQLite, Turso\/libSQL, PostgreSQL<\/td>\n<\/tr>\n<tr>\n<td><strong>Hosting Requirements<\/strong><\/td>\n<td>PHP 7.4+, MySQL 5.6+, Apache\/Nginx<\/td>\n<td>Node.js 18+, serverless platform (Cloudflare preferred)<\/td>\n<\/tr>\n<tr>\n<td><strong>Deployment<\/strong><\/td>\n<td>Traditional web hosting, shared\/VPS\/dedicated<\/td>\n<td>Serverless platforms, edge deployment<\/td>\n<\/tr>\n<tr>\n<td><strong>Plugin Ecosystem<\/strong><\/td>\n<td>~60,000+ plugins (full system access)<\/td>\n<td>Very few since it\u2019s in early stage<\/td>\n<\/tr>\n<tr>\n<td><strong>Plugin Security Model<\/strong><\/td>\n<td>Full system access (trust-based)<\/td>\n<td>Capability-based sandboxing<\/td>\n<\/tr>\n<tr>\n<td><strong>Theme System<\/strong><\/td>\n<td>PHP templates, child themes<\/td>\n<td>Astro components, TypeScript-based<\/td>\n<\/tr>\n<tr>\n<td><strong>Content Storage<\/strong><\/td>\n<td>Serialized HTML in database<\/td>\n<td>Portable Text (structured JSON)<\/td>\n<\/tr>\n<tr>\n<td><strong>AI Integration<\/strong><\/td>\n<td>Via plugins (varying quality)<\/td>\n<td>Built-in MCP server, agent skills<\/td>\n<\/tr>\n<tr>\n<td><strong>Monetization<\/strong><\/td>\n<td>Plugins, subscriptions, ads<\/td>\n<td>Built-in x402 pay-per-use<\/td>\n<\/tr>\n<tr>\n<td><strong>Performance<\/strong><\/td>\n<td>Caching plugins required<\/td>\n<td>Edge-native, fast by default<\/td>\n<\/tr>\n<tr>\n<td><strong>Scalability<\/strong><\/td>\n<td>Requires scaling infrastructure<\/td>\n<td>Auto-scaling, pay-per-request<\/td>\n<\/tr>\n<tr>\n<td><strong>Learning Curve<\/strong><\/td>\n<td>Beginner-friendly, extensive docs<\/td>\n<td>Requires TypeScript\/Node.js knowledge<\/td>\n<\/tr>\n<tr>\n<td><strong>Community<\/strong><\/td>\n<td>Massive global community, WordCamps<\/td>\n<td>Early adopters<\/td>\n<\/tr>\n<tr>\n<td><strong>Cost Model<\/strong><\/td>\n<td>Hosting costs + premium plugins\/themes<\/td>\n<td>Pay-per-request + potential vendor lock-in<\/td>\n<\/tr>\n<tr>\n<td><strong>Maturity<\/strong><\/td>\n<td>20+ years, battle-tested<\/td>\n<td>v0.1.0 preview, experimental<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>My opinion:<\/p>\n<h3>Use EmDash if:<\/h3>\n<ul>\n<li>You\u2019re already using Cloudflare services<\/li>\n<li>Plugin security worries you a lot<\/li>\n<li>You want AI tools built in right now<\/li>\n<li>You\u2019re starting a new site, not moving an old one<\/li>\n<\/ul>\n<h3>Stick with WordPress if:<\/h3>\n<ul>\n<li>You need to run on cheap, shared hosting<\/li>\n<li>Your site depends on specific WordPress plugins<\/li>\n<li>Community and available tools matter more than technical details<\/li>\n<li>You\u2019re not ready to try a v0.1.0 preview version<\/li>\n<\/ul>\n<h2>The Verdict<\/h2>\n<p>EmDash is ambitious, well-built, and working on real problems. The sandboxed plugin model is a careful way to handle security, even if it may have limits for complex plugins. The AI tools feel like they\u2019re thinking ahead. The x402 payment system is a smart answer to AI tools collecting web content.<\/p>\n<p>It\u2019s also v0.1.0, announced on April Fools\u2019 Day, and made to work best with Cloudflare. The UI needs work. It doesn\u2019t have WordPress\u2019s \u201crun anywhere\u201d idea that has let millions of people publish online.<\/p>\n<p>Would I use EmDash for my personal blog today? Probably not. WordPress has too many tools and too much community support to ignore.<\/p>\n<p>Would I try it for a new project where I\u2019m already using Cloudflare and want built-in AI tools? Yes, maybe. But I prefer to wait for it to mature a bit more.<\/p>\n<p>EmDash might not be the next WordPress. <strong>And that\u2019s fine<\/strong>. It shows an idea of what CMS software might look like in a future with serverless hosting and AI tools. The sandboxing method isn\u2019t perfect (no security method is), but it\u2019s a useful test of how to balance flexibility with safety.<\/p>\n<p>The best part, I think, is that both WordPress and EmDash can learn from each other. WordPress could use better security methods and AI tools. EmDash could learn from WordPress\u2019s focus on making publishing easy for everyone.<\/p>\n<p>Maybe we\u2019re not looking at a replacement, but at two different ways to solve the same basic problem: <strong>helping people put content on the web<\/strong>.<\/p>","protected":false},"excerpt":{"rendered":"<p>When Cloudflare announced EmDash CMS on April 1st, I thought it was a joke. But as I looked at the GitHub code, read Cloudflare\u2019s announcement, and saw Matt Mullenweg\u2019s response, I realized this isn\u2019t just another CMS trying to beat WordPress. I think it\u2019s an interesting test of what a CMS could be in a&hellip;<\/p>\n","protected":false},"author":113,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3393],"tags":[],"topic":[],"class_list":["entry-content","is-maxi"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v22.8 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>A look into EmDash CMS - Hongkiat<\/title>\n<meta name=\"description\" content=\"When Cloudflare announced EmDash CMS on April 1st, I thought it was a joke. But as I looked at the GitHub code, read Cloudflare&#039;s announcement, and saw\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.hongkiat.com\/blog\/what-is-emdash-cms\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A look into EmDash CMS\" \/>\n<meta property=\"og:description\" content=\"When Cloudflare announced EmDash CMS on April 1st, I thought it was a joke. But as I looked at the GitHub code, read Cloudflare&#039;s announcement, and saw\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hongkiat.com\/blog\/what-is-emdash-cms\/\" \/>\n<meta property=\"og:site_name\" content=\"Hongkiat\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/hongkiatcom\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-22T13:00:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/assets.hongkiat.com\/uploads\/what-is-emdash-cms\/emdash-cover.jpg\" \/>\n<meta name=\"author\" content=\"Thoriq Firdaus\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@tfirdaus\" \/>\n<meta name=\"twitter:site\" content=\"@hongkiat\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Thoriq Firdaus\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/what-is-emdash-cms\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/what-is-emdash-cms\\\/\"},\"author\":{\"name\":\"Thoriq Firdaus\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#\\\/schema\\\/person\\\/e7948c7a175d211496331e4b6ce55807\"},\"headline\":\"A look into EmDash CMS\",\"datePublished\":\"2026-04-22T13:00:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/what-is-emdash-cms\\\/\"},\"wordCount\":1502,\"publisher\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/what-is-emdash-cms\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/assets.hongkiat.com\\\/uploads\\\/what-is-emdash-cms\\\/emdash-cover.jpg\",\"articleSection\":[\"Toolkit\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/what-is-emdash-cms\\\/\",\"url\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/what-is-emdash-cms\\\/\",\"name\":\"A look into EmDash CMS - Hongkiat\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/what-is-emdash-cms\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/what-is-emdash-cms\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/assets.hongkiat.com\\\/uploads\\\/what-is-emdash-cms\\\/emdash-cover.jpg\",\"datePublished\":\"2026-04-22T13:00:10+00:00\",\"description\":\"When Cloudflare announced EmDash CMS on April 1st, I thought it was a joke. But as I looked at the GitHub code, read Cloudflare's announcement, and saw\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/what-is-emdash-cms\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/what-is-emdash-cms\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/what-is-emdash-cms\\\/#primaryimage\",\"url\":\"https:\\\/\\\/assets.hongkiat.com\\\/uploads\\\/what-is-emdash-cms\\\/emdash-cover.jpg\",\"contentUrl\":\"https:\\\/\\\/assets.hongkiat.com\\\/uploads\\\/what-is-emdash-cms\\\/emdash-cover.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/what-is-emdash-cms\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"A look into EmDash CMS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/\",\"name\":\"Hongkiat\",\"description\":\"Tech and Design Tips\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#organization\",\"name\":\"Hongkiat.com\",\"url\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/wp-content\\\/uploads\\\/hkdc-logo-rect-yoast.jpg\",\"contentUrl\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/wp-content\\\/uploads\\\/hkdc-logo-rect-yoast.jpg\",\"width\":1200,\"height\":799,\"caption\":\"Hongkiat.com\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/hongkiatcom\",\"https:\\\/\\\/x.com\\\/hongkiat\",\"https:\\\/\\\/www.pinterest.com\\\/hongkiat\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#\\\/schema\\\/person\\\/e7948c7a175d211496331e4b6ce55807\",\"name\":\"Thoriq Firdaus\",\"description\":\"Thoriq is a writer for Hongkiat.com with a passion for web design and development. He is the author of Responsive Web Design by Examples, where he covered his best approaches in developing responsive websites quickly with a framework.\",\"sameAs\":[\"https:\\\/\\\/thoriq.com\",\"https:\\\/\\\/x.com\\\/tfirdaus\"],\"jobTitle\":\"Web Developer\",\"url\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/author\\\/thoriq\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"A look into EmDash CMS - Hongkiat","description":"When Cloudflare announced EmDash CMS on April 1st, I thought it was a joke. But as I looked at the GitHub code, read Cloudflare's announcement, and saw","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.hongkiat.com\/blog\/what-is-emdash-cms\/","og_locale":"en_US","og_type":"article","og_title":"A look into EmDash CMS","og_description":"When Cloudflare announced EmDash CMS on April 1st, I thought it was a joke. But as I looked at the GitHub code, read Cloudflare's announcement, and saw","og_url":"https:\/\/www.hongkiat.com\/blog\/what-is-emdash-cms\/","og_site_name":"Hongkiat","article_publisher":"https:\/\/www.facebook.com\/hongkiatcom","article_published_time":"2026-04-22T13:00:10+00:00","og_image":[{"url":"https:\/\/assets.hongkiat.com\/uploads\/what-is-emdash-cms\/emdash-cover.jpg","type":"","width":"","height":""}],"author":"Thoriq Firdaus","twitter_card":"summary_large_image","twitter_creator":"@tfirdaus","twitter_site":"@hongkiat","twitter_misc":{"Written by":"Thoriq Firdaus"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hongkiat.com\/blog\/what-is-emdash-cms\/#article","isPartOf":{"@id":"https:\/\/www.hongkiat.com\/blog\/what-is-emdash-cms\/"},"author":{"name":"Thoriq Firdaus","@id":"https:\/\/www.hongkiat.com\/blog\/#\/schema\/person\/e7948c7a175d211496331e4b6ce55807"},"headline":"A look into EmDash CMS","datePublished":"2026-04-22T13:00:10+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hongkiat.com\/blog\/what-is-emdash-cms\/"},"wordCount":1502,"publisher":{"@id":"https:\/\/www.hongkiat.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.hongkiat.com\/blog\/what-is-emdash-cms\/#primaryimage"},"thumbnailUrl":"https:\/\/assets.hongkiat.com\/uploads\/what-is-emdash-cms\/emdash-cover.jpg","articleSection":["Toolkit"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.hongkiat.com\/blog\/what-is-emdash-cms\/","url":"https:\/\/www.hongkiat.com\/blog\/what-is-emdash-cms\/","name":"A look into EmDash CMS - Hongkiat","isPartOf":{"@id":"https:\/\/www.hongkiat.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hongkiat.com\/blog\/what-is-emdash-cms\/#primaryimage"},"image":{"@id":"https:\/\/www.hongkiat.com\/blog\/what-is-emdash-cms\/#primaryimage"},"thumbnailUrl":"https:\/\/assets.hongkiat.com\/uploads\/what-is-emdash-cms\/emdash-cover.jpg","datePublished":"2026-04-22T13:00:10+00:00","description":"When Cloudflare announced EmDash CMS on April 1st, I thought it was a joke. But as I looked at the GitHub code, read Cloudflare's announcement, and saw","breadcrumb":{"@id":"https:\/\/www.hongkiat.com\/blog\/what-is-emdash-cms\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hongkiat.com\/blog\/what-is-emdash-cms\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hongkiat.com\/blog\/what-is-emdash-cms\/#primaryimage","url":"https:\/\/assets.hongkiat.com\/uploads\/what-is-emdash-cms\/emdash-cover.jpg","contentUrl":"https:\/\/assets.hongkiat.com\/uploads\/what-is-emdash-cms\/emdash-cover.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hongkiat.com\/blog\/what-is-emdash-cms\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hongkiat.com\/blog\/"},{"@type":"ListItem","position":2,"name":"A look into EmDash CMS"}]},{"@type":"WebSite","@id":"https:\/\/www.hongkiat.com\/blog\/#website","url":"https:\/\/www.hongkiat.com\/blog\/","name":"Hongkiat","description":"Tech and Design Tips","publisher":{"@id":"https:\/\/www.hongkiat.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hongkiat.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.hongkiat.com\/blog\/#organization","name":"Hongkiat.com","url":"https:\/\/www.hongkiat.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hongkiat.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.hongkiat.com\/blog\/wp-content\/uploads\/hkdc-logo-rect-yoast.jpg","contentUrl":"https:\/\/www.hongkiat.com\/blog\/wp-content\/uploads\/hkdc-logo-rect-yoast.jpg","width":1200,"height":799,"caption":"Hongkiat.com"},"image":{"@id":"https:\/\/www.hongkiat.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/hongkiatcom","https:\/\/x.com\/hongkiat","https:\/\/www.pinterest.com\/hongkiat\/"]},{"@type":"Person","@id":"https:\/\/www.hongkiat.com\/blog\/#\/schema\/person\/e7948c7a175d211496331e4b6ce55807","name":"Thoriq Firdaus","description":"Thoriq is a writer for Hongkiat.com with a passion for web design and development. He is the author of Responsive Web Design by Examples, where he covered his best approaches in developing responsive websites quickly with a framework.","sameAs":["https:\/\/thoriq.com","https:\/\/x.com\/tfirdaus"],"jobTitle":"Web Developer","url":"https:\/\/www.hongkiat.com\/blog\/author\/thoriq\/"}]}},"jetpack_featured_media_url":"https:\/\/","jetpack_shortlink":"https:\/\/wp.me\/p4uxU-jly","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/posts\/74372","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/users\/113"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/comments?post=74372"}],"version-history":[{"count":1,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/posts\/74372\/revisions"}],"predecessor-version":[{"id":74373,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/posts\/74372\/revisions\/74373"}],"wp:attachment":[{"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/media?parent=74372"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/categories?post=74372"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/tags?post=74372"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/topic?post=74372"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}