Emdash CMS adalah CMS open source Cloudflare di atas Astro dengan plugin sandbox yang aman dan MCP server untuk AI agent, disebut penerus WordPress.
Cloudflare merilis Emdash CMS, sebuah CMS open source yang disebut sebagai penerus spiritual WordPress. Ia dibangun penuh dengan TypeScript di atas Astro, dirancang serverless sejak awal, dan membawa dua pembeda besar: plugin yang berjalan di sandbox aman serta dukungan native untuk AI agent melalui MCP server.
Artikel ini menjelaskan apa itu Emdash CMS, cara kerjanya, keunggulannya dibanding WordPress, sampai kapan ia cocok dipakai dan kapan sebaiknya tidak.
- Apa itu Emdash CMS?
- Kenapa disebut penerus WordPress?
- Arsitektur: Astro, TypeScript, serverless
- Plugin sandbox dan registry terdesentralisasi
- Siap AI agent: MCP server, API, dan CLI
- Opsi deploy dan database
- Migrasi WordPress dan Emdash Build
- Kapan cocok dan kapan tidak
Apa itu Emdash CMS?
Emdash adalah CMS full-stack open source berlisensi MIT yang dikembangkan Cloudflare. Secara teknis ia adalah integrasi Astro: tambah ke konfigurasi Astro, lalu dapat panel admin, REST API, autentikasi, media library, dan sistem plugin dalam satu paket.
Isi paketnya cukup lengkap untuk situs produksi. Ada skema konten bertipe (typed schema), alur editorial, media, lokalisasi, migrasi database, dan alur deployment. Versi 1.0 diposisikan stabil untuk situs marketing perusahaan, platform vibe-coding milik agensi, sampai produk site-builder milik hosting company.
Yang menarik, Emdash tidak mengunci ke Cloudflare. Ia berjalan paling natural di Cloudflare Workers dengan D1 dan R2, tetapi bisa juga jalan di server Node.js biasa dengan SQLite. Abstraksinya portabel: Kysely untuk SQL dan API S3 untuk storage, sehingga mendukung SQLite, D1, Turso atau libSQL, PostgreSQL, R2, S3, sampai filesystem lokal.
Kenapa disebut penerus WordPress?
Cloudflare meminjam ide yang membuat WordPress dominan: mudah diperluas, UX admin yang matang, dan ekosistem plugin. Lalu ia membangun ulang ketiganya di atas fondasi serverless yang type-safe.
Masalah terbesar WordPress yang coba dijawab Emdash adalah keamanan plugin. Di WordPress, plugin berjalan dengan akses luas ke aplikasi, sehingga satu plugin rentan bisa membahayakan seluruh situs. Di Emdash, setiap plugin berjalan di runtime terisolasi dengan storage privatnya sendiri, tanpa akses ke konten, media, user, secret, environment, filesystem, atau network kecuali dideklarasikan eksplisit di manifest dan disetujui admin situs.
Modelnya mirip izin OAuth pada aplikasi pihak ketiga. Sebelum instal, pemilik situs tahu persis kemampuan apa yang diminta plugin. Tidak ada akses diam-diam di luar daftar itu.
Arsitektur: Astro, TypeScript, serverless
Di bawah kapnya, Emdash memakai Astro untuk rendering halaman. Ini masuk akal karena Astro memang kuat untuk situs berbasis konten, dengan output server-rendered yang cepat.
Seluruh kode ditulis TypeScript, dari skema konten sampai API plugin. Hasilnya adalah pengalaman full-stack satu bahasa: frontend dan CMS bicara lewat tipe yang sama, bukan lewat lapisan PHP dan template yang terpisah seperti pada CMS klasik.
Di sisi runtime, Emdash memanfaatkan arsitektur isolate V8 dari runtime workerd. Saat ada request masuk, runtime menyalakan isolate untuk mengeksekusi kode dan menyajikan respons, lalu mengecil ke nol saat sepi. Konsekuensinya adalah skala yang elastis dan penagihan berbasis CPU time aktual. Dengan Workers for Platforms, satu perusahaan bahkan bisa menjalankan jutaan instance Emdash untuk tiap pelanggan tanpa provisioning server per situs.
Plugin sandbox dan registry terdesentralisasi
Ada dua lapisan keamanan di sisi plugin: isolasi runtime dan registry yang terdesentralisasi.
Untuk isolasi, di Cloudflare tiap plugin jalan sebagai Dynamic Worker lewat Worker Loader. Di Node.js, Emdash menjalankan workerd sebagai proses terpisah dan tiap plugin menjadi layanan terisolasi di dalamnya. Manifest dan API berbasis capability berlaku sama di kedua platform.
Untuk distribusi, Emdash 1.0 meluncurkan registry plugin terdesentralisasi. Ia memisahkan plugin dari katalog: penerbit memegang kendali atas paket dan riwayat rilisnya, sementara Emdash menyediakan tempat pencarian dan instalasi. Registry ini dibangun di atas AT Protocol (atproto), protokol jaringan terdesentralisasi yang juga dipakai Bluesky. Penulis mempublish dengan akun Atmosphere, record paket dan rilis ditandatangani penerbit dan disimpan di akunnya sendiri.
Desentralisasi di sini bukan berarti kode tanpa verifikasi. Repository atproto memakai signed Merkle Search Tree, sehingga inclusion proof menghubungkan record rilis ke commit bertanda tangan dari akun penerbit. Emdash memverifikasi record itu secara independen, lalu memeriksa checksum, nama paket, versi, akses yang diminta, dan provenance build sebelum memastikan bundle yang diunduh cocok dengan record bertanda tangan.
Registry mendukung plugin gratis lebih dulu, dengan rencana dukungan plugin berbayar memakai model desentralisasi yang sama. Layanan pendukungnya juga open source, termasuk agregator registry, layanan labeler moderasi deskripsi paket memakai Workers AI, dan Astro live content loader.
- Isolasi runtime: plugin hanya mendapat kemampuan yang dideklarasikan dan disetujui.
- Storage privat: tiap plugin punya KV storage sendiri, terpisah dari data situs.
- API plugin: lifecycle hooks, settings, halaman admin, widget, dan API routes lewat fungsi definePlugin.
- Plugin bawaan: tersedia plugin first-party seperti forms, embeds, SEO, dan audit log.
Siap AI agent: MCP server, API, dan CLI
Emdash dirancang untuk dikelola manusia maupun agent. Selain admin web untuk editor, ia menyediakan API, CLI, dan MCP server bawaan agar agent bisa membaca, memperbarui, dan menyimpan konten secara terprogram.
Dalam praktik platform, polanya seperti ini. Pemilik situs bisa memakai antarmuka admin langsung, platform bisa membangun UI sendiri di atas API dan CLI, atau menaruh agent di depan MCP server. Contoh yang dipakai Cloudflare cukup gamblang: pemilik toko roti cukup meminta perubahan jam buka dengan bahasa natural, lalu agent milik platform menangani baca, ubah, dan simpan konten.
Bagi perusahaan pembuat website creation dan hosting product, kombinasi ini penting. Model plugin sandbox memberi cara aman menawarkan ekstensi ke banyak situs pelanggan, karena plugin hanya menerima akses yang disetujui ke konten, media, user, email, atau layanan eksternal. Platform bisa menjalankan marketplace plugin sendiri dengan akses ke registry penuh, atau mengkurasi subset plugin yang sudah disetujui.
Opsi deploy dan database
Cara termudah mencoba adalah scaffolding lewat perintah npm create emdash, atau deploy langsung ke akun Cloudflare. Template bawaan mencakup blog, marketing, portfolio, starter, dan blank.
Untuk database, pilihannya mengikuti tempat deploy:
- SQLite: paling sederhana untuk Node.js satu proses dengan disk persisten, atau untuk development lokal.
- D1: default untuk template Cloudflare, yaitu database serverless SQLite milik Cloudflare untuk workload di Workers.
- PostgreSQL: saat beberapa proses Node.js butuh satu database bersama.
- libSQL: saat deployment Node.js butuh database remote yang kompatibel SQLite.
- Hyperdrive: saat situs jalan di Workers tetapi harus memakai PostgreSQL existing, termasuk yang kompatibel Postgres. Hyperdrive mempool dan mengakselerasi koneksi lewat jaringan Cloudflare.
Satu catatan operasional dari dokumentasi: migrasi inti Emdash berjalan otomatis secara default untuk semua dialek yang didukung, dan Astro build juga memancarkan file migrasi tervalidasi yang bebas secret untuk diterapkan sebelum deploy. Untuk Hyperdrive, caching query harus dimatikan pada binding utama karena admin butuh konsistensi read-after-write, sementara request publik anonim boleh memakai binding cache terpisah bila jendela basi singkat bisa diterima.
Migrasi WordPress dan Emdash Build
Bagi pemilik situs WordPress, Emdash menyiapkan konverter blok Gutenberg ke Portable Text. Ini menargetkan migrasi konten yang selama ini terkunci di format blok WordPress agar bisa dibawa ke model konten Emdash.
Cloudflare juga merilis alpha Emdash Build, AI site builder yang bisa dijalankan sendiri oleh hosting provider dan platform website builder. Demo publiknya tersedia di subdomain build milik Emdash. Cara kerjanya berbeda dari generator halaman statis biasa: agent merancang model konten dari brief, mengisinya lewat MCP server Emdash, lalu menulis halaman yang menampilkannya.
Setiap proyek Build mendapat container Cloudflare Sandbox sendiri, tempat agent yang dibangun di atas Agents SDK memverifikasi hasilnya. Setiap perubahan tercatat sebagai git commit lewat Artifacts. Saat dipublish, konten pindah ke situs Emdash produksi dan deploy ke namespace Workers for Platforms milik host. Setelah itu pemilik situs bisa edit teks langsung di halaman, menjadwalkan post, atau menyerahkan ke agent.
Kapan cocok dan kapan tidak
Emdash paling cocok untuk situs konten di atas Astro yang butuh admin rapi, plugin aman, dan alur kerja agent. Tim marketing yang mengelola konten harian, agensi yang membangun banyak situs pelanggan di Workers for Platforms, dan developer TypeScript yang ingin satu stack bahasa akan cepat betah.
Ia kurang cocok bila tim sepenuhnya non-teknis dan berharap ekosistem tema dan plugin WordPress yang raksasa langsung tersedia hari ini. Registry Emdash masih muda, plugin berbayar belum didukung, dan dokumentasi migrasi kompleks tentu belum sematang ekosistem berusia dua dekade. Situs dengan ketergantungan berat pada plugin WordPress spesifik sebaiknya menunggu katalognya tumbuh atau menyiapkan pengembangan plugin sendiri.
Kabar baiknya, lisensi MIT dan arsitektur portabel membuat risikonya terkendali. Situs bisa mulai di Node.js dengan SQLite, lalu pindah ke Cloudflare saat butuh skala global, tanpa menulis ulang konten. Tidak ada vendor lock-in pada level kode.
Jika tim Anda sedang menimbang migrasi WordPress ke stack modern seperti Astro, atau ingin membangun platform site-builder dengan lapisan konten yang aman untuk agent, lihat layanan pengembangan web IdeyaWeb dan hubungi kami untuk diskusi kebutuhan.