📈 GH Trending Explorer 🎲 Surprise me

← all repos

emdash-cms / emdash

git clone https://github.com/emdash-cms/emdash.git @emdash-cms/plugin-test@0.2.10 · 3d ago 🔥 on GitHub Trending today

A full-stack TypeScript CMS built on Astro, with sandboxed plugins and Portable Text content storage.

Why you might care

Aimed at developers who want WordPress-style extensibility and admin UX without PHP. Plugins run in isolated Worker sandboxes with declared capability manifests, and content is stored as structured Portable Text JSON rather than HTML. Deploys to Cloudflare (D1, R2, Workers) or any Node.js server with SQLite.

Categories

Alternatives

WordPressAstroStrapiSanityGhost
+18
stars, 24h · #791
+~126
stars, 7 days · #966
+~540
stars, 30 days · #960
14k
★ total · +1% this week
1.3k
forks · 329 open issues

Star history (as recorded here)

2026-10-20 · 13,825 ★ 2026-10-21 · 13,843 ★
LanguageTypeScript
LicenseMIT
Created2026-04-01 (6mo ago)
Last pushtoday
Watchers73
OwnerOrganization

Seen on GitHub Trending

  • 2026-10-21 — #9 daily in typescript · +36 ★
  • 2026-10-20 — #9 daily in typescript · +48 ★

GitHub topics

Links

README excerpt
# EmDash
A full-stack TypeScript CMS built on Astro. EmDash takes the ideas that made WordPress dominant -- extensibility, admin UX, a plugin ecosystem -- and rebuilds them on serverless, type-safe foundations. Plugins run in sandboxed Worker isolates, solving the fundamental security problem with WordPress's plugin architecture.
## Get Started
 [code] 
Or deploy directly to your Cloudflare account:
EmDash runs on Cloudflare (D1 + R2 + Workers) or any Node.js server with SQLite. No PHP, no separate hosting tier -- just deploy your Astro site.
## Templates
EmDash ships with three starter templates:
### Blog
A classic blog with sidebar widgets, search, and RSS.
- Categories & tags
- Full-text search
- Comment-ready
- RSS feed
- Dark / light mode
### Marketing
A photo-led landing page built from modular blocks.
- Hero with photo and CTAs
- Logo wall, features and stats
- Text and photo sections
- Pricing, FAQ and closing CTA
- Dark / light mode
### Portfolio
A visual portfolio for showcasing creative work.
- Project grid
- Tag filtering
- Case study pages
- RSS feed
- Dark / light mode
## Why EmDash?
**WordPress was built for a different era.** Running WordPress today means managing PHP alongside JavaScript, layering caches to get acceptable performance, and knowing that 96% of WordPress security vulnerabilities come from plugins. EmDash is what WordPress would look like if you started from scratch with today's tools.
**Sandboxed plugins.** WordPress plugins have full access to the database, filesystem, and user data. A single vulnerable plugin can compromise the entire site. EmDash plugins run in isolated Worker sandboxes via Dynamic Worker Loaders, each with a declared capability manifest. A plugin that requests `content:read` and `email:send` can do exactly that and nothing else.
 [code] 
**Structured content, not serialized HTML.** WordPress stores rich text as HTML with metadata embedded in comments -- tying your content to its DOM representation. EmDash uses Portable Text, a structured JSON format that decouples content from presentation. Your content can render as a web page, a mobile app, an email, or an API response without parsing HTML.
**Built for agents.** EmDash publishes agent skills that teach coding assistants its APIs, a CLI that lets agents manage content and schema programmatically, and a built-in MCP server so AI tools like Claude and ChatGPT can interact with your site directly.
**Runs anywhere.** EmDash uses portable abstractions at every layer -- Kysely for SQL, S3 API for storage -- that work with SQLite, D1, Turso, PostgreSQL, R2, AWS S3, or local files. It runs best on Cloudflare, but it's not locked to it.
## How It Works
EmDash is an Astro integration. Add it to your config and you get a complete CMS: admin panel, REST API, authentication, media library, and plugin system.
 [code] 
Content types are defined in the database, not in code. Non-developers create and modify collections through the admin UI. Each collection get

Blurb generated by claude-haiku-5-5 today. Star deltas marked ~ are extrapolated from partial history.