8 poin oleh GN⁺ 20 hari lalu | 6 komentar | Bagikan ke WhatsApp
  • 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
    1. Kebebasan lisensi plugin: karena tidak ada pembagian kode dengan EmDash, developer dapat memilih lisensi yang diinginkan
    2. 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

 
xguru 19 hari lalu

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 :(

 
lunamoth 18 hari lalu

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?

 
nemorize 16 hari lalu

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...

 
xguru 18 hari lalu

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.

 
lunamoth 17 hari lalu

Ah begitu. Terima kasih sudah memberi tahu. Sepertinya saya perlu lebih memperhatikan berbagai hal.

 
GN⁺ 20 hari lalu
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

    • Saya penasaran apakah Anda bisa menjelaskan kenapa TypeScript dianggap begitu penting
    • Dulu saya sering memakai WordPress, dan saat itu daya tariknya adalah kemudahan instalasi: langsung upload lewat FTP dan jalan. Tidak perlu CLI atau build tool. Tetapi keamanan selalu jadi masalah, dan peretasan tidak pernah berhenti
    • Saya membagikan tautan diskusi sebelumnya
  • 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 juga suka situs statis, tetapi klien sering menginginkan konten dinamis. Awalnya mereka bilang hanya ingin situs sederhana, tetapi belakangan ingin menambah form, inventaris, atau fitur reservasi. Karena itu struktur berbasis plugin bisa dimengerti
    • Klien non-developer suka bisa mengedit langsung lewat UI. WordPress punya UI yang terlalu kompleks dan gemuk, jadi kebanyakan akhirnya kembali menyerahkan semuanya ke developer. Idealnya, UI dibuat seminimal mungkin agar hanya bagian yang diperlukan yang bisa diedit
    • Jika memakai Astro, pada dasarnya itu adalah static site generator. Anda bisa menambahkan komponen React saat perlu, dan plugin juga bisa dipakai secara opsional
    • Jika Anda ingin meng-host file statis di tempat yang mudah dicache, Cloudflare sudah menyediakan layanan seperti itu
    • Astro menghasilkan HTML statis, jadi dari sisi itu tampaknya tidak ada masalah
  • 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

    • WordPress sudah punya banyak tenaga ahli, sedangkan EmDash baru mulai. Meski begitu, kalau ia tumbuh saya tetap akan mendukungnya
  • Sebagai developer WordPress, penderitaan terbesar saya adalah arsitektur plugin-nya.
    Di WP, plugin diletakkan di folder wp-content bersama hal-hal seperti gambar, sehingga CI/CD jadi mimpi buruk. Di EmDash, plugin berupa modul TS sehingga jauh lebih rapi

    • WP tidak punya konsep staging, jadi untuk memindahkan perubahan ke production, semuanya harus diulang secara manual
  • Konsep 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”

    • Kalau agen bisa ditipu agar terus membayar, orang bisa menghasilkan uang lewat redirect tak berujung atau konten sampah
    • Lihat dokumentasi HTTP 402
    • Rasanya seperti versi legal dari peretasan penggelapan recehan di film Office Space
  • 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

    • Cloudflare tidak membuat lelucon April Mop. 1.1.1.1 juga dirilis pada 1 April dan sekarang menjadi layanan DNS utama
    • Saya memastikan ini adalah proyek nyata
    • Kontroversi .com vs .org terkait “open source” WordPress juga layak dijadikan referensi
    • Sebagai alternatif lama, ada juga Textpattern
  • 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

    • Pada akhirnya, karena ini OSS yang bergantung pada infrastruktur Cloudflare, adopsinya jadi sulit
    • Meski begitu, Workerd bersifat open source sehingga self-hosting tetap memungkinkan
    • Runtime lain mungkin juga bisa meniru fitur ini
    • Cloudflare tampaknya mengambil strategi mengubah OSS populer menjadi pengganti yang khusus untuk infrastrukturnya sendiri
  • 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

    • Mengatakan bahwa “JS bukan bahasa sungguhan” itu berlebihan. Masih banyak alasan untuk memakai bahasa interpreted
    • JS adalah satu-satunya yang benar-benar bisa mencakup frontend web, backend, mobile, dan desktop sekaligus. Dengan alat seperti tRPC, type safety end-to-end juga bisa didapatkan
    • Kebanyakan developer sudah terbiasa dengan JS/TS dan komunitasnya paling besar. Ekosistemnya sangat besar sehingga tidak ada alasan kuat untuk pindah
    • Go terasa tidak nyaman untuk pemrosesan JSON atau pekerjaan templating. Sistem tipenya kurang fleksibel, sehingga ada banyak batasan untuk pengembangan frontend
    • LLM juga bagus dalam menulis TS, dan TS telah memperbaiki banyak kelemahan JS. Dengan runtime yang cepat dan deployment yang mudah, ia tetap menarik
  • 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

    • Malus sebenarnya adalah proyek satire