- EmDash yang dikembangkan oleh Cloudflare adalah CMS open source yang dirancang ulang dengan TypeScript dan arsitektur serverless untuk mengatasi keterbatasan struktural WordPress
- Menjalankan setiap plugin di lingkungan sandbox yang terisolasi, sehingga secara mendasar memblokir kerentanan plugin yang menyumbang 96% masalah keamanan situs WordPress
- Menyertakan standar pembayaran x402 untuk mendukung pembayaran on-demand (pay-per-use) per konten, serta menyediakan struktur monetisasi yang sesuai untuk era trafik web berbasis AI
- Dengan arsitektur serverless berbasis Cloudflare Workers, sistem otomatis scale up dan scale down saat ada permintaan, sehingga mencapai penghematan biaya dan pemrosesan berkinerja tinggi sekaligus
- Mengintegrasikan fitur modern seperti manajemen agen AI, autentikasi Passkey, dan struktur tema Astro, menjadikannya CMS yang mewarisi semangat WordPress namun dibangun ulang secara total
Ikhtisar EmDash
- EmDash adalah CMS open source yang dirancang ulang untuk mengatasi keterbatasan struktural WordPress, dengan mengadopsi basis TypeScript penuh dan arsitektur serverless
- Kompatibel dengan fitur inti WordPress, tetapi tidak menggunakan kode lama sehingga dapat didistribusikan dengan lisensi MIT
- Menggunakan Dynamic Worker dari Cloudflare Workers untuk menjalankan setiap plugin di lingkungan terisolasi (isolate) yang independen
- Berbasis framework Astro untuk menghadirkan performa yang dioptimalkan bagi situs web berfokus konten
- EmDash tersedia secara publik di GitHub dan dapat dideploy langsung ke akun Cloudflare atau server Node.js
- Secara mendasar memperbaiki masalah yang belum terselesaikan di WordPress, seperti keamanan plugin, penghapusan ketergantungan pasar, manajemen berbasis AI, dan dukungan pembayaran x402
Pencapaian dan keterbatasan WordPress
- WordPress menjalankan lebih dari 40% internet dan merupakan contoh sukses open source yang mendorong demokratisasi penerbitan
- Namun setelah 24 tahun, lingkungan hosting dan paradigma pengembangan telah banyak berubah
- Dulu perlu menyewa VPS, tetapi sekarang deployment bisa dilakukan ke jaringan terdistribusi global hanya dengan mengunggah bundle JavaScript
- EmDash mewarisi semangat WordPress, tetapi dibangun ulang agar sesuai dengan infrastruktur web modern dan kebutuhan keamanan
Menyelesaikan masalah keamanan plugin WordPress
- 96% masalah keamanan pada situs WordPress berasal dari plugin
- Plugin adalah skrip PHP yang dapat mengakses database dan sistem file secara langsung
- Saat dipasang, plugin hampir diberi semua izin tanpa isolasi atau pembatasan hak akses
- EmDash menjalankan setiap plugin dalam lingkungan sandbox berbasis Dynamic Worker
- Plugin hanya dapat meminta capabilities yang dibutuhkan melalui deklarasi eksplisit (manifest)
- Contoh:
read:content, email:send dan hanya izin yang diperlukan yang diberikan
- Akses jaringan juga dibatasi pada host yang dinyatakan secara eksplisit
- Sebelum instalasi, izin yang diminta plugin dapat diperiksa dengan jelas, sehingga memberikan struktur pemberian izin yang transparan mirip OAuth
- Administrator juga dapat mengotomatisasi kebijakan instalasi berdasarkan permintaan izin
Keamanan plugin dan penghapusan ketergantungan pada marketplace
- Karena masalah keamanan plugin, WordPress.org menjalankan proses tinjauan manual dengan antrean lebih dari 800 item
- Batasan lisensi GPL juga membatasi penggunaan ulang kode dan komersialisasi
- EmDash menghilangkan lock-in pasar melalui dua perbaikan struktural
- Kebebasan lisensi plugin: karena tidak ada pembagian kode dengan EmDash, developer dapat memilih lisensi yang diinginkan
- Eksekusi sandbox aman: situs dapat mempercayai plugin tanpa harus melihat langsung kode plugin
- Karena plugin hanya dapat menjalankan capability yang dinyatakan, risiko keamanan dapat dievaluasi secara rinci
- Struktur ini juga mengurangi ketergantungan pada marketplace terpusat
- Dengan model keamanan yang dapat dipercaya, developer dan pengguna dapat mengembangkan ekosistem dengan lebih bebas
Standar pembayaran x402 bawaan — monetisasi akses konten
- EmDash mendukung standar x402 secara bawaan, memungkinkan pembayaran on-demand melalui respons HTTP 402 Payment Required
- Pengguna dapat membayar per konten (pay-per-use) tanpa harus berlangganan
- Pengelola situs dapat melakukan monetisasi hanya dengan mengatur alamat wallet dan harga
- Ini menawarkan model bisnis baru yang sesuai dengan era trafik web berbasis agen AI
- Semua situs EmDash memiliki struktur monetisasi bawaan yang cocok untuk era AI
Skalabilitas serverless dan penghematan biaya
- WordPress membutuhkan provisioning server sehingga menimbulkan biaya resource menganggur
- EmDash memanfaatkan arsitektur v8 isolate berbasis Cloudflare workerd
- Instance dibuat seketika saat ada permintaan, dan jika tidak ada permintaan akan otomatis scale-to-zero
- Penagihan hanya berdasarkan waktu penggunaan CPU
- Melalui Cloudflare for Platforms, sistem dapat menskalakan otomatis hingga jutaan instance
- Struktur berbiaya rendah dan berkinerja tinggi ini menguntungkan untuk menangani trafik besar dan menyediakan free tier
Struktur tema modern berbasis Astro
- Tema EmDash disusun sebagai proyek Astro dan mencakup elemen berikut
- Pages: route untuk rendering konten
- Layouts: struktur HTML bersama
- Components: elemen UI yang dapat digunakan ulang
- Styles: konfigurasi CSS atau Tailwind
- File seed: definisi tipe konten yang akan dibuat CMS
- Astro adalah framework populer yang termasuk dalam data pelatihan LLM, sehingga ramah bagi developer
- Berbeda dari struktur tema WordPress berbasis
functions.php, tema EmDash tidak dapat mengakses database, sehingga keamanan lebih kuat
CMS AI-native — MCP, CLI, Agent Skills
- EmDash dirancang sebagai CMS yang bisa dikelola langsung oleh agen AI
- Mengotomatisasi tugas berulang seperti migrasi konten atau transformasi field
-
Agent Skills
- Instance EmDash menyertakan Agent Skills untuk memberi AI informasi tentang struktur plugin, hook, dan cara porting tema
- AI dapat memahami codebase EmDash dan melakukan kustomisasi otomatis
-
EmDash CLI
- Melalui CLI, fungsi manajemen seperti pencarian konten, upload media, dan pembuatan skema dapat dijalankan
- Dapat mengontrol instance lokal maupun remote
-
Server MCP bawaan
- Setiap instance menyediakan server Model Context Protocol miliknya sendiri
- Semua tindakan yang bisa dilakukan di UI admin juga bisa dijalankan dari jarak jauh
Autentikasi berbasis Passkey dan manajemen peran
- EmDash menggunakan autentikasi Passkey sebagai default
- Mencegah kebocoran kata sandi dan serangan brute force
- Secara default mendukung kontrol akses berbasis peran (RBAC)
- Memisahkan izin berdasarkan peran seperti administrator, editor, author, dan contributor
- Autentikasi dapat diperluas dengan model plugin, serta mendukung integrasi metadata SSO dan IdP
Migrasi situs WordPress
- Situs WordPress yang ada dapat dipindahkan melalui ekspor file WXR atau plugin EmDash Exporter
- Plugin Exporter membuat endpoint khusus yang dilindungi oleh WordPress Application Password
- Konten dan media dipindahkan otomatis ke library EmDash
- EmDash mendukung struktur konten berbasis skema
- Custom Post Type di WordPress diubah menjadi koleksi independen di EmDash
- Melalui Block Kit Agent Skill, blok kustom dapat dibuat dengan AI
Mencoba dan berpartisipasi
- EmDash saat ini tersedia sebagai versi preview v0.1.0 dan dapat diunduh dari repositori GitHub
- UI admin dapat dicoba langsung di EmDash Playground
- Perintah instalasi lokal:
npm create emdash@latest
- Deployment juga bisa dilakukan dari dashboard Cloudflare
- Masukan dan kontribusi dari komunitas WordPress, platform hosting, serta developer plugin dan tema sangat disambut
6 komentar
Saya termasuk orang yang dulu memakai WordPress untuk blog pribadi, lalu meninggalkannya dan pindah ke situs statis karena masalah keamanan itu.
Blog pribadi itu sempat saya biarkan begitu saja untuk beberapa waktu, dan ternyata spam yang benar-benar aneh mulai menyusup masuk, lalu mengubah blog saya jadi ladang spam. Mereka bahkan memakai cara aneh dengan memanfaatkan tag untuk mendaftarkan halaman yang tidak ada di lokal saya ke Google. Sampai sekarang saya masih kerepotan membersihkannya :(
Saya juga ingat pernah bingung karena URL aneh tertangkap di webmaster tool.
"Metode aneh mendaftarkan halaman yang tidak ada di lokal saya ke Google dengan memanfaatkan tag" itu maksudnya cara seperti apa ya??
Apakah ada cara untuk memblokir ini?
Ada juga spam berupa mendaftarkan URL hasil pencarian yang berisi frasa spam sebagai backlink di postingan blog lain;
Apa pun bentuknya, pada akhirnya harus dihapus secara manual...
Biasanya penyerang masuk dengan memanfaatkan plugin/tema yang memiliki kerentanan terkait unggah file.
Setelah berhasil masuk seperti ini, mereka menyisipkan konten ke tag/category dan semacamnya tanpa sepengetahuan pemilik blog.
Di blog page sebenarnya tidak terlihat sama sekali, jadi pemiliknya tidak sadar, tetapi mereka memakai cara merender URL ini agar hanya terlihat oleh bot Google. (Seperti BabaYaga.)
Kalau sudah sekali ditembus seperti ini, pada praktiknya saya belum menemukan cara lain selain membuat semua trafik yang masuk ke alamat tersebut diarahkan ke
410 Gone. Di server, semua alamat yang tidak diperlukan disetel agar ditandai sebagai 410, lalu untuk pola trafik tertentu kita harus meminta lewat Search Console agar dihapus secara manual selama 6 bulan. Misalnya menghapus semua yang diawali dengan/tag.Saya sudah sebulan mengajukan penghapusan, tapi sampai sekarang masih belum semuanya hilang. Pengindeksan Google harusnya berjalan dengan baik, tetapi ternyata butuh waktu lama.
Ah begitu. Terima kasih sudah memberi tahu. Sepertinya saya perlu lebih memperhatikan berbagai hal.
Opini Hacker News
Sudah lebih dari 10 tahun berkutat dengan WordPress, dan menurut saya proyek ini berhasil menangani dua hal dengan sangat baik: TypeScript dan plugin Worker
Belakangan saya banyak memikirkan masalah keamanan WP; plugin berbahaya bisa mengakses DB atau environment variable, atau memicu XSS. Namun sistem plugin yang dirancang dengan baik bisa mengurangi hal ini
Saya pribadi sedang mengembangkan HotsauceCMS. Ia dapat memakai plugin Worker NodeJS atau Deno secara opsional, sehingga plugin first-party bisa berjalan cepat in-process, sementara plugin third-party diisolasi lewat worker
Dependensinya hanya 4 dan dependensi transitifnya 0, karena saya lelah dengan peringatan Dependabot dan serangan rantai pasok npm
Dengan struktur schema-first berbasis Drizzle, saya bisa mengontrol struktur DB sepenuhnya dan mendefinisikan fitur seperti upload file lewat hint skema
Ia tidak bergantung pada DB tertentu, jadi bisa berjalan di semua DB yang didukung Drizzle seperti Postgres, MySQL, dan SQLite
Frontend bisa dipilih bebas, dan saya pribadi lebih suka JSX tanpa React
Masukan sangat diterima. Saya penasaran apakah ada yang saya lewatkan dan apakah arah ini sudah tepat. Saya juga menantikan perkembangan EmDash ke depannya
EmDash disebut sebagai penerus spiritual WordPress, tetapi menurut saya arah CMS seharusnya justru kebalikannya
Sebaiknya disederhanakan dan kembali ke situs berbasis file statis. Caching lebih mudah, lebih cepat, dan pengelolaannya lebih sederhana
Tentu saja, dari sudut pandang Cloudflare, sepertinya mereka memilih struktur ini untuk menjual produk Workers mereka sendiri. Saya masih ragu apakah ini benar-benar menyelesaikan masalah keamanan yang mendasar
Saya rasa Cloudflare mendekati ini dari arah yang salah
Alasan WordPress sukses adalah kemudahan instalasi dan efek jaringan. Bahkan lebih daripada keamanan, karena sudah banyak developer yang terbiasa dengan WP
Agar EmDash berhasil, ia harus lebih mudah, lebih cepat, dan lebih fleksibel daripada Wix atau Squarespace. Kalau tidak, akan sulit membangun efek jaringan
Sebagai developer WordPress, penderitaan terbesar saya adalah arsitektur plugin-nya.
Di WP, plugin diletakkan di folder
wp-contentbersama hal-hal seperti gambar, sehingga CI/CD jadi mimpi buruk. Di EmDash, plugin berupa modul TS sehingga jauh lebih rapiKonsep standar pembayaran x402 dari Cloudflare menarik
Strukturnya memungkinkan agen mengirim micropayment secara otomatis untuk mendapatkan akses ke konten; agak menyeramkan, tetapi terasa futuristis
Bercanda sedikit, kalau membuat honeypot HTTP 402 yang meminta 10 sen tiap kunjungan, mungkin itu jadi kebangkitan ide lama “1 pixel 1 dollar”
Nilai WordPress bukan pada kodenya, melainkan pada ekosistem dan sistem dukungan-nya
Kualitas kodenya kurang bagus, tetapi hampir semua SaaS menyediakan konektor WP.
Agar EmDash berhasil, bahkan non-developer harus bisa dengan mudah menyewa orang di Fiverr untuk melakukan kustomisasi. Ini bukan masalah teknologi, melainkan masalah pasar tenaga kerja
Menarik bahwa ini adalah penerus WordPress buatan Cloudflare, tetapi isolasi plugin berbasis Dynamic Workers hanya berjalan di runtime Cloudflare
Di host lain, ini pada dasarnya hanya CMS TS biasa, jadi ketergantungan arsitektur menjadi masalah
Saya bertanya-tanya kenapa proyek AI masih dibuat dengan JavaScript
Sekarang, dengan bahasa terkompilasi seperti Go, aplikasi juga bisa dibuat cepat. Hasilnya lebih kecil, lebih cepat, dan deployment lebih sederhana
JS bersifat interpreted sehingga lambat dan kompleks. Dulu keunggulannya adalah bisa langsung dijalankan, tetapi sekarang proses kompilasi juga sudah cepat
Menarik bahwa EmDash tidak memakai kode WordPress sehingga didistribusikan dengan lisensi MIT
Tetapi ini mengingatkan saya pada Malus, Cleanroom as a Service yang baru muncul belakangan. Waktunya terasa aneh bertepatan