Open-source CMS infrastructure

EmDash is a modern publishing system for public-interest websites.

It rebuilds the useful parts of WordPress on Astro, TypeScript, Cloudflare, Portable Text, and sandboxed plugins, while adding visual section editing and schema-constrained AI-assisted drafting.

Astro site
EmDash admin
Portable Text content
Sandboxed plugins
Cloudflare or Node runtime

Why it matters

Public organizations need publishing tools they can inspect, adapt, and trust.

EmDash is designed for teams that need the flexibility of WordPress without inheriting its PHP hosting model, broad plugin attack surface, and serialized-HTML content lock-in. The project keeps content structured, the runtime portable, and extensions isolated.

The goal is practical public infrastructure: a CMS that small institutions, campaigns, civic projects, researchers, nonprofits, and local publishers can run, audit, migrate, and automate without surrendering their content model to a closed platform.

Current capabilities

What is now in the project

Visual section library

Editors can choose from reusable content sections with categories, visual previews, thumbnails, accessibility labels, and registry coverage checks.

Structured authoring

Portable Text keeps editorial content as structured JSON so it can render to web, mobile, email, search, and API surfaces without scraping HTML.

AI-assisted drafts

Intent-based drafting maps editor prompts to known section schemas, with confidence scoring and constrained alternatives instead of free-form page generation.

Sandboxed plugins

Plugins are designed to run with explicit capabilities in Worker isolates, limiting what extensions can access and making third-party code safer to adopt.

New in this preview

Visual page building without giving up structured content

01

Visual section picker

Editors can browse reusable page sections by category, preview each option, and add the right block without memorizing schema names.

  • Category filters
  • Visual previews and thumbnails
  • Accessible search labels
02

Expanded section library

The content vocabulary now covers common marketing, editorial, institutional, and resource-page patterns.

  • FAQ, video, pricing, CTA, testimonials
  • Feature lists, logo clouds, steps, stats
  • Cards, tabs, accordions, banners
03

Intent-based drafts

Editor intent can be mapped into known section schemas, keeping generated drafts inside the system's structured content model.

  • Schema-constrained output
  • Confidence and alternatives
  • Tests for draft selection behavior
04

Registry coverage

The block registry is tested across package boundaries so admin choices, block definitions, and Astro renderers stay aligned.

  • Coverage tests for section types
  • Renderer alignment checks
  • Safer future additions
05

Builder editor groundwork

The project now has the foundation for richer block editing, including property panels, drag/drop wrappers, and Lexical persistence.

  • Block picker and property panel
  • Builder-to-Lexical conversion
  • Lexical-to-builder conversion
06

Autosave-ready editing flow

Content editing now includes autosave endpoint support and internal service wiring that prepares the editor for longer authoring sessions.

  • Autosave API route
  • Runtime service container
  • More resilient editing workflow

Section blocks

A growing page-building vocabulary

Editorial workflow

From idea to structured page section

1

Choose

Pick a section visually from a categorized library.

2

Draft

Start from editor intent while staying inside supported schemas.

3

Edit

Adjust structured fields through builder and section controls.

4

Render

Publish through Astro renderers without serializing the page as raw HTML.

Public-service use cases

Built for real civic publishing work

Campaign and advocacy sites

Publish policy pages, statements, landing pages, and updates without rebuilding the site.

Research and knowledge hubs

Maintain structured articles, datasets, explainers, and searchable resource libraries.

Institutional websites

Give editors visual tools while keeping deployments fast, typed, and version-controlled.

About this Cloudflare Pages preview

This page is a static public overview of EmDash. The full CMS admin, authentication, database, media storage, and plugin runtime need a server environment such as Cloudflare Workers with D1/R2 or a Node.js deployment with SQLite.