EmDash: A Full-Stack TypeScript CMS Built on Astro
Remember the ubiquity of WordPress? The way it powered so much of the web, even when the tech stack felt increasingly… retro? There’s a new contender aiming to capture that spirit, but built for the modern developer workflow.
Enter EmDash, a full-stack TypeScript CMS that uses Astro as its foundation. It’s not just another static site generator with a headless CMS bolted on. It’s an integrated, opinionated system designed to give you the power and flexibility of modern tooling with the cohesive, all-in-one experience that made platforms like WordPress so popular.
What It Does
EmDash is a content management system where the frontend, backend, and admin dashboard are all part of a single, unified Astro project. You write your content in Markdown or MDX, and EmDash provides a secure, built-in admin interface to manage it. It handles the entire pipeline: from editing in a clean UI, through Astro’s powerful static (or server-side) rendering, right to the final deployed site. It’s a batteries-included framework for building content-driven websites.
Why It’s Cool
The "spiritual successor to WordPress" tagline is key here. EmDash aims for that level of integrated simplicity without the legacy PHP baggage.
- Full-Stack TypeScript: Everything—your content schema, your admin UI, your components—lives in a TypeScript environment. This means end-to-end type safety for your content, which is a huge win for developer confidence and maintenance.
- Astro-Powered: You get all the benefits of Astro: partial hydration for blazing-fast performance, the ability to bring your favorite UI framework (React, Vue, Svelte, etc.) to your components, and excellent SEO out of the box.
- Integrated Admin UI: No need to spin up a separate Strapi or Payload instance. The admin dashboard is part of the project, secured and ready to go. It feels native because it is native.
- Content as Code: Your content is stored as Markdown/MDX files, which plays nicely with Git, enabling content versioning, branching, and collaboration through familiar developer workflows.
How to Try It
The best way to see EmDash in action is to dive into the repository and run it locally. The README is your starting point.
- Head over to the EmDash GitHub repository.
- Clone the repo and follow the setup instructions in the README. You’ll typically just need to run
npm installandnpm run dev. - Explore the project structure, check out the example content, and fire up the built-in admin interface to get a feel for the workflow.
Final Thoughts
EmDash feels like a project built by developers who miss the unified experience of old-school CMS platforms but refuse to give up modern tooling. If you’re building a blog, documentation site, portfolio, or any content-centric project and want to keep everything in one TypeScript codebase without sacrificing a good editing experience, this is absolutely worth a look. It’s a pragmatic take on what a CMS should be in 2024.
Follow for more interesting projects: @githubprojects
Repository: https://github.com/emdash-cms/emdash