repowiserepowise
Sign in
emdash-cms/emdash
OverviewDocsArchitectureKnowledge GraphFilesCode HealthSecurityRefactoring

People & History

CommitsContributorsDecisions
Chat
Stats
repowiserepowise
ExplorePricingDocs
Sign in
repowiseemdash-cms/emdash
EM
EM

emdash-cms / emdash

EmDash is a full-stack TypeScript CMS based on Astro; the spiritual successor to WordPress

TypeScript★ 13,422
Use in your agentAsk this codebase

github.com/emdash-cms/emdash·Indexed at e8e8a2d·3mo ago·Up to date with upstream

About this codebase

2,388 files and 16,869 symbols in 12 modules, led by TypeScript (1,758 files) and JavaScript (46).

Built from the index

Start reading

  • Knowledge graph2,388 files and how they depend on each other.→
  • Align Atcute dependency tree on v2 to clear peer warningsDecisionProposed decision, from a pull request.→

Code health

7.6out of 10Good

This codebase scores 7.6 out of 10 for code health, which we rate good. It also scores maintainability 8.6 and static performance 9.9 out of 10. The three are scored separately and never blended into one number. Risk is concentrated, as it usually is: 224 of 2,388 files are git hotspots, and they average 4.8 — which is where the fixes pay off most.

Full health report →

On the leaderboards:#17 of 43 TypeScript repos

Do next

2 things worth doing this quarter, 1 of them now.

Worth planning

  • Delete 297 unused symbols and files (12,216 lines)

    Nothing in the graph reaches them, across 182 files; every reader and agent pays to skip them.

    symbols
    297
    lines
    12,216
    safe to delete
    Yes(inferred)
    Medium effort

Improve what Repowise can see

  • Add a test coverage report

    Without one, Repowise cannot tell tested code from untested code, so every test-related action says “unknown”.

    line coverage
    Unknown, no report
    Small effort
  • Review the 61 proposed decisions

    None is accepted yet, so nothing can drift from one and agents get no enforced guidance from them.

    proposed
    61
    accepted
    0
    Medium effort
All actions in the Overview →

Use emdash-cms/emdash in your agent

Point Claude Code, Cursor, Codex or VS Code at this repository. Your agent gets the index this page is built from: cited answers, callers, history and health for any file.

https://api.repowise.dev/mcp/emdash-cms/emdash

One command, run anywhere. Adds the server to your local Claude Code config.

Docs
bash
claude mcp add --transport http repowise https://api.repowise.dev/mcp/emdash-cms/emdash \
  --header "Authorization: Bearer rw_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
The snippet shows a placeholder key. Generate one to get a copyable secret.
Sign in and create an API key to connect.Sign in

This repo is public, so anyone with a Repowise account and an API key can connect.

Try asking

  • get_overview()
  • get_answer("how is emdash put together?")
  • get_why("why is emdash structured this way?")

Prefer local? pip install repowise && repowise init indexes your own checkout, no account needed.

Go deeper

  • OverviewEverything the index found, what changed this week, commits and decisions.→
  • DocumentationModule-by-module documentation, written from the source.→
  • ArchitectureDependency graph, layers and third-party dependencies.→
  • Code healthEvery file's score, the findings behind it, tests and refactoring plans.→
  • CommitsEach commit's effect on code health, with agent provenance.→
  • ContributorsWho owns what, and where one person holds most of the knowledge.→
  • DecisionsArchitectural decisions mined from commits and pull requests.→
  • Ask this codebaseSign inGrounded answers over the indexed code.→

Maintain this repo? Claim the page

Sign in with GitHub and we check that you are an admin or maintainer of emdash-cms/emdash. Then add a badge to the README that links readers here.

Use this repo from Claude or ChatGPT

Add this URL as a custom connector and sign in with repowise when asked. No API key to copy.

https://api.repowise.dev/mcp/emdash-cms/emdash
Sign up to connect

For maintainers

Add a badge to your README

Every badge is public, cached, and updates on its own after every index. Nothing to install.

Repowise badge

Links to this page, with no score on it. Adding it also re-indexes the repo every week.

Repowise badge preview
[![repowise.dev](https://api.repowise.dev/badge/wiki/emdash-cms/emdash.svg)](https://repowise.dev/repo/emdash-cms/emdash?src=badge_wiki)

Code health badge

The repo's health score out of 10, from the latest index.

Code health badge preview
[![repowise.dev code health](https://api.repowise.dev/badge/health/emdash-cms/emdash.svg)](https://repowise.dev/repo/emdash-cms/emdash?src=badge_health)

Code health card

A larger card with the score, its change since the last index, and when it was measured. The HTML version follows the reader's light or dark theme.

Code health card preview
[![repowise.dev code health](https://api.repowise.dev/badge/health/emdash-cms/emdash.svg?style=card)](https://repowise.dev/repo/emdash-cms/emdash?src=badge_card)

What is emdash?

emdash is a full-stack TypeScript CMS for building Astro sites with content management, administration, authentication, media, and plugins. It uses structured Portable Text content and runs on Cloudflare or Node.js with SQLite.

Written by a model from the README and the index

Key features of emdash

  • emdash provides blog posts, pages, custom content types, Portable Text editing, revisions, drafts, scheduled publishing, full-text search, and inline visual editing.
  • emdash includes an admin panel with a visual schema builder, media library, navigation menus, taxonomies, widgets, and a WordPress import wizard.
  • emdash supports passkeys through WebAuthn, OAuth and magic links, and role-based access control.
  • emdash provides a definePlugin() API with lifecycle hooks, KV storage, settings, admin pages, dashboard widgets, custom block types, and API routes.
  • emdash includes agent skills, a CLI for programmatic site management, and a built-in MCP server for AI tool integration.
  • emdash imports posts, pages, media, and taxonomies from WXR exports, the WordPress REST API, or WordPress.com.

How emdash-cms/emdash works

emdash integrates with Astro through packages/core and provides the CMS runtime, APIs, admin UI, and CLI. The Astro configuration loads emdash/astro and connects a database adapter such as emdash/db. packages/core/src/emdash-runtime.ts coordinates runtime behavior, while packages/core/src/loader.ts loads application components. Content is stored in typed SQL tables and queried through getEmDashCollection. packages/admin/src/components/ContentEditor.tsx provides content editing, and packages/core/src/taxonomies/index.ts handles taxonomies. On Cloudflare, packages/core/src/mcp/server.ts provides the built-in MCP server for AI tool integration, while plugins can run in sandboxed Worker isolates.

EmDash is a full-stack TypeScript CMS based on Astro; the spiritual successor to WordPress This page is a map of the emdash-cms/emdash repository, written primarily in TypeScript, rebuilt from the source each time it is indexed. Repowise parses every symbol, computes a dependency graph, scores per-file code health from complexity, duplication, test coverage and churn, mines git history for hotspots and ownership, and lifts the architectural decisions into documentation you can read here or query through MCP.

The codebase has 2,388 files and 16,869 symbols in 12 modules, led by TypeScript, JavaScript and Shell. Code health is 7.6 out of 10, rated good.

Use the links above to open each view, or connect this repository to your agent for grounded answers inside Claude, Cursor, Codex or VS Code.

Getting started with emdash

  1. Create a new emdash site.
    npm create emdash@latest
  2. Install dependencies and build the project.
    pnpm install
  3. Run the demo with Node.js and SQLite.
    pnpm --filter emdash-demo dev

Commands copied from the README

emdash-cms/emdash FAQ

What is emdash?

emdash is a full-stack TypeScript CMS built on Astro and Cloudflare. emdash provides content management, administration, authentication, media, and plugins.

How does emdash work?

emdash integrates with Astro and stores content in typed SQL tables using structured Portable Text. emdash connects an admin panel, APIs, authentication, media, plugins, and optional MCP integration.

How do I install emdash?

emdash can be started with the project generator. The repository development setup uses pnpm install and pnpm build.

What language is emdash written in?

emdash is written primarily in TypeScript. The repository also includes JavaScript, shell, and Dockerfile files.

How is the emdash code organized?

emdash is a pnpm monorepo organized into packages, templates, demos, and docs. packages/core provides the Astro integration, APIs, admin UI, and CLI, while packages/auth, packages/blocks, packages/cloudflare, and packages/plugins provide supporting functionality.

Who is emdash for?

emdash is for teams building Astro sites that need content management, administration, authentication, media, and plugins. emdash also supports AI-assisted plugin and theme development.

What license does emdash use?

emdash uses the MIT license.

Answers written by a model from the README and the index