당신의 CMS는 Cloudflare의 엣지에 8초 만에 배포됩니다. 설치한 플러그인? 그것은 샌드박스된 워커에서 실행되므로 데이터베이스에 액세스할 수 없으며 외부로 통신할 수 없습니다. EmDash는 2026년 3월 Cloudflare의 WordPress에 대한 오픈소스 답변으로 출시되었으며, 완전히 Astro 6.0과 TypeScript 위에 구축되었습니다. 테스트 사이트를 배포하고, 소스를 감시하고, 실제 클라이언트 블로그를 마이그레이션한 후, 나는 이것이 실제 제품이라는 것을 확인할 수 있습니다. EmDash는 WordPress를 복제하지 않으며, 엣지 컴퓨팅, AI 에이전트, 그리고 공급망 보안이 요구사항을 형성할 때 CMS가 하는 일을 재상상합니다. 아키텍처 선택은 의견이 있고, 성능 벤치마크는 실제이며, 절충점은 마케팅 자료가 인정하는 것보다 더 중요합니다.

EmDash가 실제로 무엇인지, 어디서 잘 작동하는지, 어디서 부족한지, 그리고 다음 프로젝트에 포함되어야 하는지 자세히 설명하겠습니다.

목차

EmDash CMS란?

EmDash (v0.1.0, 현재 개발자 미리보기)는 완전한 스택 서버리스 JavaScript 애플리케이션으로 실행되는 MIT 라이선스 CMS입니다. WordPress의 포크가 아닙니다. 저장소에는 WordPress 코드가 전혀 없습니다. 대신, 2006년 대신 2026년을 위해 설계할 때 CMS가 어떻게 보여야 하는지에 대한 처음부터 끝까지의 재사고입니다.

핵심 아이디어: WordPress가 올바르게 한 것들 — 플러그인 에코시스템, 친숙한 편집 GUI, 테마, 쉬운 콘텐츠 관리 — 을 가져가서 현대적인 원시 요소로 다시 구축합니다. 이는 처음부터 끝까지 TypeScript, 렌더링 계층으로 Astro 6.0, 데이터를 위한 SQLite/D1, 플러그인 실행을 위한 샌드박스된 isolates를 의미합니다.

Matt Mullenweg는 직접 GUI가 "섬뜩한 계곡" 품질을 가지고 있다고 지적하면서 "매우 견고한 엔지니어링"이라고 불렀습니다. 그는 또한 "영적 후계자" 프레이밍에 반대했으며, 이것은 공정합니다 — EmDash는 WordPress의 에코시스템, 커뮤니티, 또는 20년의 전투 테스트된 플러그인을 가지고 있지 않습니다. 하지만 엔지니어링 기초? 그것은 정말로 흥미롭습니다.

기술 아키텍처

세부사항으로 들어가 봅시다. 아키텍처 결정이 EmDash의 우선순위를 많이 말해주기 때문입니다.

핵심 스택

EmDash는 완전히 Astro 6.0 위에 구축되어 있으며, Cloudflare는 이를 "콘텐츠 기반 웹사이트를 위한 가장 빠른 웹 프레임워크"라고 설명합니다. Astro로 작업해본 경험이 있다면, 클라이언트에 더 적은 JavaScript를 제공하는 것에 대해 의견이 있다는 것을 알 수 있습니다. 부분 하이드레이션, 아일랜드 아키텍처, 우수한 정적 생성 — 모두 콘텐츠 사이트를 빠르게 만드는 것들입니다.

EmDash의 테마는 표준 Astro 프로젝트입니다. 당신은 다음을 얻습니다:

  • 페이지 (홈페이지, 블로그 포스트 템플릿, 아카이브)
  • 레이아웃 및 재사용 가능한 컴포넌트
  • CSS 또는 Tailwind를 통한 스타일
  • 콘텐츠 타입과 필드를 정의하는 JSON 시드 파일

기본 테마 구조의 모습은 다음과 같습니다:

my-emdash-theme/
├── src/
│   ├── pages/
│   │   ├── index.astro
│   │   ├── blog/
│   │   │   └── [slug].astro
│   ├── layouts/
│   │   └── BaseLayout.astro
│   ├── components/
│   │   ├── Header.astro
│   │   └── PostCard.astro
│   └── styles/
│       └── global.css
├── seed.json
└── astro.config.mjs

이전에 Astro 사이트를 구축했다면, 이것은 즉시 친숙합니다. 그것이 요점입니다. EmDash 특화 템플릿 언어를 배울 필요가 없습니다. 그것은 그냥 Astro입니다.

Social Animal에서 우리는 많은 Astro 개발을 하고 있으며, CMS가 기본적으로 Astro를 렌더링 계층으로 받아들이는 것을 보는 것은 흥미롭습니다. 이것은 우리가 이미 좋아하는 Astro에 대한 성능 특성이 기본적으로 들어가 있다는 것을 의미합니다.

데이터베이스 및 저장소

로컬에서 EmDash는 SQLite — 간단하고, 빠르고, 설정 없이 — 를 사용합니다. Cloudflare의 프로덕션에서 D1, Cloudflare의 엣지에서 실행되는 서버리스 SQLite 호환 데이터베이스를 사용합니다.

이미지는 로컬 디스크, Cloudflare R2, 또는 Amazon S3에 저장될 수 있습니다. 이미 Cloudflare 에코시스템에 있으면 R2이 자연스러운 선택인데, 외출 수수료가 0이기 때문입니다.

이것은 똑똑한 조합입니다. 개발을 위한 SQLite는 Docker 컨테이너를 회전하거나 로컬 Postgres 인스턴스를 관리하지 않는다는 것을 의미합니다. 프로덕션을 위한 D1은 데이터가 연결 풀링 두통 없이 사용자에게 가깝다는 것을 의미합니다.

// EmDash는 콘텐츠에 대한 타입화되고 구조화된 API를 사용합니다
// 이것은 인간과 AI 에이전트 모두에게 명확하게 합니다
const posts = await emdash.content.list({
  type: 'post',
  status: 'published',
  limit: 10,
  orderBy: 'publishedAt',
  order: 'desc'
});

플러그인 보안: 실제 이야기

이것은 EmDash의 가장 강력한 판매 포인트이며, 진지한 주의가 필요합니다.

전체 프로젝트를 동기부여한 통계는 다음과 같습니다: WordPress 취약점의 96%는 플러그인에서 나옵니다. WordPress 코어에서가 아니라 플러그인에서입니다. 플러그인은 전체, 제한 없는 데이터베이스, 파일시스템, PHP 런타임에 대한 액세스가 있습니다. 단 하나의 잘못 코딩된 연락처 양식 플러그인이 전체 사이트를 노출할 수 있습니다.

WordPress는 언제든지 보안 검토 대기 중인 800개 이상의 플러그인을 가지고 있습니다. 그 백로그는 사라지지 않을 것입니다.

EmDash가 플러그인을 샌드박스하는 방법

EmDash는 Cloudflare가 Dynamic Workers — 최소 권한 원칙을 따르는 격리된 실행 환경 — 이라고 부르는 것에서 플러그인을 실행합니다. 플러그인은 명시적으로 허가받은 것에만 액세스할 수 있습니다.

데스크톱에서 앱을 실행하는 것 (전체 시스템 액세스) vs 브라우저 탭에서 실행하는 것 (샌드박스) 의 차이를 생각해보십시오. WordPress 플러그인은 데스크톱 앱입니다. EmDash 플러그인은 브라우저 탭입니다.

// 명시적 권한이 있는 EmDash 플러그인 선언
export default definePlugin({
  name: 'my-seo-plugin',
  permissions: [
    'content:read',
    'content:meta:write',
    // 주의: database:write 없음, 파일시스템 액세스 없음
  ],
  hooks: {
    'content:beforePublish': async (ctx) => {
      // 플러그인은 콘텐츠를 읽고 메타 필드를 쓸 수 있습니다
      // 그러나 테이블을 드롭할 수 없으며, 다른 플러그인의 데이터를
      // 읽을 수 없으며, 파일시스템에 액세스할 수 없습니다
      const meta = generateSeoMeta(ctx.content);
      return { ...ctx, meta };
    }
  }
});

이것은 근본적으로 다른 보안 모델입니다. 플러그인에 취약점이 있더라도, 피해 범위가 포함됩니다. 플러그인은 샌드박스에서 허용하지 않기 때문에 권한을 에스컬레이션할 수 없습니다.

완벽한가요? 아니요. 에코시스템이 아직 새로워서, WordPress의 60,000개 이상의 플러그인을 위해 EmDash의... 한 줌 몇 개로 거래하고 있습니다. 하지만 아키텍처는 견고하며, WordPress 공급망 공격으로 인해 피해를 입은 조직의 경우, 이것이 중요합니다.

AI 네이티브 디자인 및 에이전트 스킬

EmDash는 단순히 인간 편집자를 위해 구축되지 않았습니다. 처음부터 끝까지 AI 에이전트가 상호작용할 수 있도록 설계되었습니다.

"AI 네이티브"가 실제로 의미하는 것

세 가지 구체적인 기능:

  1. 에이전트 스킬: AI 어시스턴트가 CMS 작업 — 콘텐츠 생성, 미디어 관리, 테마 수정 — 을 수행할 수 있도록 해주는 CLI 도구입니다.
  2. 내장 MCP 서버: EmDash는 Model Context Protocol 서버와 함께 제공되므로, Claude와 같은 도구가 당신의 CMS에 직접 연결하고 그 구조를 이해할 수 있습니다.
  3. 타입화되고 구조화된 API: 모든 콘텐츠 타입에는 타입화된 스키마가 있습니다. 이것은 TypeScript 개발자에게 좋을 뿐만 아니라 LLM이 유효한 콘텐츠를 생성하기 위해 필요한 것입니다.

나는 "AI 네이티브" 마케팅에 회의적이었지만, 이 구현은 실질적인 의미가 있습니다. AI가 첫 번째 초안을 생성하는 콘텐츠 작업을 실행 중인 경우, 기본적으로 그 워크플로우를 지원하는 CMS를 갖추는 것이 많은 글루 코드를 구축하는 것을 절약합니다.

# AI 에이전트 기능과 함께 EmDash CLI 사용
emdash agent generate-theme --prompt "minimalist blog with dark mode" \
  --framework astro --style tailwind

# AI는 또한 MCP 서버를 통해 콘텐츠를 관리할 수 있습니다
emdash agent create-post --title "Weekly Roundup" \
  --type draft --assign-to editor@example.com

Cloudflare는 또한 x402 수익화 를 위해 EmDash를 배치하고 있습니다 — 당신의 콘텐츠를 크롤링하는 AI 에이전트가 구조화된 액세스에 대해 마이크로페이먼트를 할 수 있다는 아이디어입니다. 그것은 초기이고 추측적이지만, 아키텍처 후크는 거기에 있습니다.

배포 옵션 및 가격 책정

EmDash 자체는 MIT 라이선스 하에서 무료이고 오픈소스입니다. 당신의 비용은 순전히 호스팅입니다.

플랫폼 무료 티어 유료 확장 최고의 목적
Cloudflare Workers 하루 100K 요청, D1 및 R2 무료 할당 무료 한계 이상 종량 제 프로덕션 사이트, 엣지 성능
Netlify 관대한 빌드 한계가 있는 취미 티어 사용량 기반 청구 이미 Netlify에 있는 팀
Vercel 취미 티어 사용 가능 사용량 기반 청구 Next.js 숍 실험
자체 호스팅 (Node.js) 무료 (당신의 하드웨어) 인프라 비용 다양 전체 제어, 기존 서버

Cloudflare 경로가 명확하게 황금 경로입니다. Cloudflare Workers의 EmDash는 0으로 확장할 수 있으며 (아무도 방문할 때 비용을 지불하지 않음) 초당 무제한 요청으로 수백만 인스턴스로 확장할 수 있습니다. 콘텐츠 사이트의 경우, 해당 경제 모델을 이기기는 어렵습니다.

비교를 위해, 관리형 WordPress 호스트는 기본 사이트의 경우 일반적으로 월 $5–50이며, 엔터프라이즈 WordPress 호스팅은 월 $200–2,000까지 올라갑니다. Cloudflare 무료 티어의 EmDash는 저~중 트래픽 블로그의 경우 실제로 0의 비용으로 실행될 수 있습니다.

WordPress에서 마이그레이션

Cloudflare는 두 가지 마이그레이션 경로를 구축했습니다:

  1. WXR 가져오기: WordPress 사이트를 WXR (WordPress eXtended RSS) 파일로 내보내고 직접 EmDash로 가져옵니다. 포스트, 페이지, 카테고리, 태그, 미디어 참조가 함께 제공됩니다.
  2. EmDash Exporter 플러그인: WordPress 플러그인을 설치하면 더 많은 세분성으로 내보내기를 처리합니다.

어느 경로도 마법이 아닙니다. 여전히 테마를 다시 구축해야 하고 (WordPress PHP 테마는 Astro 컴포넌트로 번역되지 않을 것이므로), 플러그인 종속 기능을 재구성하고, 철저히 테스트해야 합니다. 하지만 콘텐츠 마이그레이션 자체는 간단합니다.

# WordPress WXR 내보내기 가져오기
emdash import wordpress --file ./export.xml --media-dir ./uploads

# 가져온 콘텐츠 미리보기
emdash dev

적당히 복잡한 WordPress 사이트 (50-100개 포스트, 커스텀 포스트 타입, 수십 개 페이지) 마이그레이션은 경험이 많은 개발자의 경우 2-4주가 걸릴 것으로 예상합니다. 대부분의 시간은 테마 재생성 및 플러그인 교체에 소비됩니다. 사소하지는 않지만, 불가능하지도 않습니다.

EmDash vs WordPress vs Headless CMS 옵션

이것을 평가할 가능성이 있는 대체 항목의 맥락에 놓아봅시다.

기능 EmDash WordPress Contentful Strapi
라이선스 MIT (무료) GPLv2 (무료) 독점적 MIT (자체 호스팅)
언어 TypeScript PHP N/A (SaaS) JavaScript/TypeScript
플러그인 보안 샌드박스된 isolates 공유 런타임 (보호되지 않음) 관리형 API 서버 레벨
AI 통합 네이티브 MCP 서버, 에이전트 스킬 플러그인 종속 API 기반 플러그인 종속
엣지 배포 네이티브 (Cloudflare Workers) CDN/프록시 필요 CDN 지원 API 설정 필요
플러그인 에코시스템 초기 (베타) 60,000개 이상의 플러그인 300개 이상의 통합 1,500개 이상의 플러그인
GUI 사용성 기능적이지만 초기 성숙함, 잘 알려짐 연마됨 좋음, 개선 중
콘텐츠 모델링 JSON 시드 파일, 타입화됨 커스텀 포스트 타입, ACF 시각적 콘텐츠 모델 콘텐츠 타입 빌더
자체 호스팅 아니요
가격 책정 $0 (호스팅 비용만) $0 + 호스팅 (월 $5–50 일반적) $0–489/월 $0 (자체 호스팅) to $299+/월

그림이 명확합니다: EmDash는 보안 아키텍처, 엣지 네이티브 배포, AI 통합에서 우승합니다. WordPress는 에코시스템 성숙도와 사용자 친화성에서 압도적으로 우승합니다. Contentful 및 Strapi와 같은 Headless 옵션은 다른 틈새를 차지합니다 — 내장 렌더링 계층이 없는 API 우선 플랫폼입니다.

headless CMS 솔루션을 구축하고 있다면, EmDash는 흥미로운 중간 지점을 나타냅니다: 완전한 렌더링 계층 (Astro)을 가지고 있지만, 그 구조화된 API는 headless 사용 사례에도 작동합니다.

지금 바로 EmDash를 사용해야 하는 사람

명확하게 말하자면: EmDash는 개발자 미리보기입니다. v0.1.0. 초기 채택자이고 거친 모서리를 해결할 준비가 되어 있지 않으면 프로덕션 클라이언트 작업에 준비되지 않았습니다.

그렇다고 해서, 누가 주의를 기울여야 하는지는 다음과 같습니다:

지금 좋은 적합

  • Astro를 탐색하는 개발자 는 별도의 headless 서비스에 도달하지 않고 CMS 계층을 원하는 사람들입니다
  • 보안에 민감한 조직 은 WordPress 플러그인 취약점에 지쳐 있습니다
  • AI 우선 팀 은 LLM 생성 콘텐츠를 포함하는 콘텐츠 워크플로우를 구축합니다
  • Cloudflare 네이티브 숍 은 이미 Workers, D1, R2, 그리고 더 넓은 Cloudflare 에코시스템에 투자되어 있습니다
  • 개인 블로그 및 개발자 포트폴리오 는 당신이 당신의 클라이언트이고 베타 소프트웨어를 허용할 수 있는 곳입니다

아직 준비되지 않은 경우

  • 마감일이 있는 클라이언트 프로젝트 — 에코시스템이 예측 가능한 일정에 너무 어립니다
  • 기술이 없는 콘텐츠 편집자 — 설정에는 GitHub, CLI, 데이터베이스 구성이 필요합니다
  • 특정 WordPress 플러그인에 의존하는 사이트 — WooCommerce, Yoast 등의 EmDash 동등물은 없습니다
  • 큰 편집 팀 — GUI는 WordPress의 편집 경험과 경쟁하기 전에 더 많은 연마가 필요합니다

Headless 개발의 의미

EmDash가 자신의 에코시스템 이상으로 중요하다고 생각하는 이유는 여기입니다: 우리가 수년 동안 옹호해온 아키텍처 패턴을 검증합니다.

CMS가 타입화된 API 계층이어야 하고, 렌더링이 현대적인 프레임워크여야 하고, 배포가 엣지 네이티브여야 하고, 플러그인이 샌드박스되어야 한다는 아이디어 — 이들은 새로운 아이디어가 아닙니다. 하지만 Cloudflare가 이들을 의견이 있는 오픈소스 프로젝트로 패키징하는 것이 접근 방식에 신뢰성과 추진력을 제공합니다.

Social Animal에서, 우리는 유사한 아키텍처로 구축해왔습니다 — Astro, Next.js, headless CMS 플랫폼을 사용하여 빠르고, 안전하고, 유지보수 가능한 사이트를 만듭니다. EmDash는 업계가 이 방향으로 움직이고 있다는 것을 확인합니다.

새 프로젝트를 위해 CMS 전략을 평가하고 있다면, Astro 구축, Next.js 애플리케이션, 또는 headless CMS 구현이든, 오늘 EmDash를 채택하지 않더라도 어디 적합한지 이해할 가치가 있습니다. 샌드박스된 확장, 타입화된 콘텐츠 API, 엣지 배포, AI 네이티브 디자인 — 이들은 향후 몇 년에 걸쳐 모든 CMS에 영향을 미칠 것입니다.

옵션에 대해 이야기하고 싶으신가요? 연락 하거나 headless 개발 프로젝트를 위한 가격을 확인하세요.

FAQ

EmDash는 정말 WordPress 대체품인가요?

아니요, 오늘은 아니고, 아마도 대부분의 사람들이 의미하는 방식이 아닙니다. WordPress는 모든 웹사이트의 약 43%를 지원하며 20년의 에코시스템을 가지고 있습니다. EmDash는 v0.1.0 베타입니다. 그것은 20년 생산 전투 테스트 플러그인을 가지지 않은 것으로 가장 잘 이해됩니다. 그 대신 WordPress를 "영적 후계자"로서 더 정확하게 프레임화됩니다 — WordPress가 올바르게 한 것에서 영감을 얻지만, 특히 플러그인 보안 주변의 잘못된 것을 수정합니다.

EmDash가 WordPress와 다르게 플러그인 보안을 처리하는 방법은?

WordPress 플러그인은 WordPress 코어와 동일한 PHP 프로세스에서 실행되므로, 데이터베이스 및 파일시스템에 대한 전체 액세스를 제공합니다. EmDash는 샌드박스된 Dynamic Workers에서 플러그인을 실행합니다 — 격리된 실행 환경은 각 플러그인이 명시적으로 선언하는 권한만을 얻습니다. 이것은 취약한 플러그인이 다른 플러그인의 데이터에 액세스할 수 없고, 데이터베이스 테이블을 드롭할 수 없으며, 임의의 파일을 읽을 수 없다는 것을 의미합니다. 당신의 브라우저가 탭을 서로 격리하는 동일한 원칙입니다.

기존 WordPress 사이트를 EmDash로 마이그레이션할 수 있나요?

네, 몇 가지 주의 사항이 있습니다. EmDash는 WordPress WXR 내보내기 파일 가져오기를 지원하며, 포스트, 페이지, 카테고리, 태그, 미디어 참조를 가져옵니다. 그러나 당신의 WordPress 테마는 이전되지 않을 것입니다 (당신은 Astro에서 다시 구축할 필요가 있을 것입니다). WordPress 플러그인에서 제공하는 모든 기능을 복제해야 합니다. 콘텐츠 마이그레이션은 명확합니다; 다른 모든 것은 개발 작업이 필요합니다.

EmDash를 실행하는 비용이 얼마인가요?

EmDash 자체는 MIT 라이선스 하에 무료이고 오픈소스입니다. 호스팅 비용은 플랫폼에 따라 다릅니다. Cloudflare Workers에서, 무료 티어는 하루 100,000개 요청을 제공하며, D1 데이터베이스 및 R2 저장소 무료 할당이 있습니다 — 많은 소규모 및 중형 사이트가 문자 그대로 0 비용으로 실행될 수 있습니다. 유료 사용은 종량 제이며 콘텐츠 사이트의 경우 일반적으로 매우 저렴합니다.

EmDash를 사용하려면 Astro를 알아야 하나요?

테마 개발 및 커스터마이제이션의 경우 그렇습니다. EmDash 테마는 표준 Astro 프로젝트이므로, Astro의 컴포넌트 모델, 라우팅, 빌드 시스템에 대해 숙지해야 합니다. 당신이 현대적인 JavaScript 프레임워크 (React, Vue, Svelte)에 만족하다면, Astro를 습득하는 것은 상대적으로 빠릅니다. GUI를 통한 콘텐츠 편집의 경우, Astro 지식은 필요하지 않습니다. 비록 편집 인터페이스가 여전히 베타 버전에서 거칩니다.

EmDash의 AI 통합은 실제로 어떻게 작동하나요?

EmDash에는 Claude와 같은 AI 도구가 직접 CMS에 연결하고 구조를 이해하게 하는 내장 MCP (Model Context Protocol) 서버가 포함되어 있습니다. 또한 AI 어시스턴트가 콘텐츠를 생성하고, 미디어를 관리하고, 테마를 생성할 수 있는 Agent Skills — CLI 도구 — 를 제공합니다. 모든 콘텐츠 타입이 타입화된 스키마로 정의되어 있기 때문에, AI 모델은 데이터 구조를 추측하지 않고도 신뢰성 있게 유효한 콘텐츠를 생성할 수 있습니다. 그것은 실질적이고, 허울뿐이 아닙니다.

Cloudflare 이외의 곳에 EmDash를 배포할 수 있나요?

네. Cloudflare Workers가 주요 배포 대상이지만, EmDash도 Netlify, Vercel, 또는 Node.js가 있는 모든 서버에서 실행됩니다. 당신은 일부 Cloudflare 특정 최적화 (엣지의 D1 및 0으로 확장하는 것 같은)를 잃습니다. 하지만 핵심 CMS는 좋습니다. 샌드박스된 플러그인 시스템은, 그러나, Cloudflare의 인프라와 가장 긴밀하게 통합되어 있습니다.

EmDash가 성숙할 때까지 기다려야 할까요, 아니면 지금 배우기를 시작해야 할까요?

당신이 콘텐츠 사이트를 구축하는 개발자라면, 지금 배우기 시작해야 합니다 — 클라이언트 프로젝트를 위해서가 아니라, 개인 사이트 또는 내부 도구를 위해서입니다. Astro 스킬은 어쨌든 이전됩니다, EmDash의 아키텍처를 이해하는 것이 당신이 더 나은 CMS 결정을 하는 데 도움이 될 것입니다. 프로덕션 클라이언트 작업의 경우, 플러그인 에코시스템이 현실 세계 피드백을 통해 개발할 시간을 가질 때까지 적어도 v0.5 또는 v1.0 릴리스를 기다리는 것이 좋습니다.