Getting Started

Understand what EmDash CMS is, what stack it is built on, and the best way to launch an official EmDash content site today.

What EmDash CMS is

EmDash CMS is positioned publicly as a full-stack TypeScript CMS built on Astro and designed to run especially well on Cloudflare. The product keeps several concepts people already understand from WordPress, including:

  • collections and content types
  • taxonomies, menus, and widgets
  • an admin interface for editors
  • a plugin model for extending site behavior

The difference is that EmDash is built around modern frontend tooling, typed content, and Cloudflare-native deployment options instead of PHP hosting.

What makes it different from a typical CMS

From the official public docs and repository materials, a few themes are consistent:

  • EmDash is Astro-native, not a separate SaaS you call over an API
  • it uses TypeScript throughout the stack
  • it is designed to be cloud-portable
  • its plugin model is built around sandboxed execution on Cloudflare Worker isolates
  • it uses structured content rather than tying everything to WordPress-style HTML storage

That combination is what makes it interesting for a public-facing ecosystem site like emdashcmseverything.com.

Even though EmDash itself supports a runtime CMS architecture, the best first version of this website is still a static Astro content site.

For this project, the recommended stack is:

  • Astro for the site framework
  • MDX for long-form content and resource pages
  • Cloudflare Pages for low-cost hosting
  • Git + AI editing for ongoing publishing

This is the right starting point because your site is primarily:

  • documentation
  • FAQ and migration guidance
  • plugin and template directory content
  • updates, tutorials, and product education

Those needs do not require database-backed editing on day one.

Why not deploy the full EmDash runtime immediately

EmDash can run on Cloudflare Workers with D1 and R2, and that is an important part of the product story. But for this site, starting directly on the full runtime would increase infrastructure cost and setup complexity before it gives you much benefit.

The static-first version gets you:

  • fast deployment on Cloudflare Pages
  • simpler Git review and easier AI collaboration
  • no admin auth or storage setup required for launch
  • a cleaner path to iterate on messaging and information architecture

Later, if you need browser-based editorial workflows, authenticated submissions, or richer media handling, you can move selected sections into a full EmDash runtime deployment.

Local development

The current project is organized intentionally:

  • src/ contains routes, layouts, and reusable components
  • docs/ contains the published MDX content

That means content work and frontend work are separated cleanly.

Run the site locally with:

npm install
npm run dev

Build the static site with:

npm run build

Cloudflare Pages deployment

For the current static site, Cloudflare Pages should use:

  • Build command: npm run build
  • Output directory: dist

This gives you a near-zero-ops public website.

When to move to Workers, D1, and R2

The official EmDash materials make it clear that the runtime stack is strongest when you need real CMS behavior, especially:

  • live content updates without rebuilds
  • database-backed collections
  • browser-based admin editing
  • passkey or Cloudflare Access authentication
  • media storage in R2
  • sandboxed plugins on Workers

That is the right time to graduate from Pages-only delivery to the full EmDash platform.

If you are launching an official EmDash ecosystem site, the practical order is:

  1. Publish the public site on Astro and Cloudflare Pages
  2. Build out docs, FAQ, migration guides, plugin pages, and template pages
  3. Use the site to validate positioning and publishing workflow
  4. Introduce full EmDash runtime features only when editorial or ecosystem workflows genuinely need them