8 puan yazan GN⁺ 29 일 전 | 6 yorum | WhatsApp'ta paylaş
  • Cloudflare tarafından geliştirilen EmDash, WordPress’in yapısal sınırlarını aşmak için TypeScript ve sunucusuz mimari ile yeniden tasarlanmış açık kaynaklı bir CMS
  • Her eklenti, izole bir sandbox ortamında çalıştırılır; böylece WordPress sitelerindeki güvenlik sorunlarının %96’sını oluşturan eklenti açıkları temelden engellenir
  • Yerleşik x402 ödeme standardı ile içerik bazında isteğe bağlı ödeme (pay-per-use) desteği sunar ve yapay zeka tabanlı web trafiği çağına uygun bir gelir modeli sağlar
  • Cloudflare Workers tabanlı sunucusuz yapı sayesinde istek geldiğinde otomatik olarak ölçeklenip küçülür; böylece maliyet tasarrufu ile yüksek performans birlikte elde edilir
  • Yapay zeka ajan yönetimi, Passkey kimlik doğrulama, Astro tema yapısı gibi modern özellikleri entegre ederek WordPress’in ruhunu sürdürürken tamamen yeniden kurgulanmış bir CMS sunar

EmDash’e genel bakış

  • EmDash, WordPress’in yapısal sınırlarını çözmek için yeniden tasarlanmış açık kaynaklı bir CMS olup tamamen TypeScript tabanlı ve sunucusuz mimariyi benimser
    • WordPress’in temel işlevleriyle uyumludur, ancak mevcut kodu kullanmadığı için MIT lisansı ile dağıtılabilir
    • Cloudflare Workers’ın Dynamic Worker yapısını kullanarak her eklentiyi bağımsız bir izolasyon ortamında (isolate) çalıştırır
    • Astro framework tabanlı yapısıyla içerik odaklı web siteleri için optimize edilmiş performans sunar
  • EmDash, GitHub üzerinden açık olarak sunulmuştur ve doğrudan Cloudflare hesabı ya da Node.js sunucusu üzerinde dağıtılabilir
  • Eklenti güvenliği, pazar bağımlılığını giderme, yapay zeka tabanlı yönetim, x402 ödeme desteği gibi WordPress’in çözemediği sorunları kökten iyileştirir

WordPress’in başarıları ve sınırları

  • WordPress, internetin %40’ından fazlasını çalıştırıyor ve yayıncılığın demokratikleşmesini sağlayan en önemli açık kaynak başarı örneklerinden biri
  • Ancak 24 yıl sonra bugün, barındırma ortamı ve geliştirme paradigması büyük ölçüde değişti
    • Başlangıçta VPS kiralamak gerekiyordu, bugün ise küresel dağıtık ağlara yalnızca JavaScript bundle yükleyerek dağıtım yapmak mümkün
  • EmDash, WordPress’in ruhunu devralırken bunu modern web altyapısı ve güvenlik gereksinimlerine uygun biçimde yeniden kurguluyor

WordPress eklenti güvenlik sorununu çözmek

  • WordPress sitelerindeki güvenlik sorunlarının %96’sı eklentilerden kaynaklanıyor
    • Eklentiler, PHP betikleri olarak veritabanına ve dosya sistemine doğrudan erişebiliyor
    • Kurulum sırasında neredeyse tüm yetkileri alıyor ve herhangi bir izolasyon ya da yetki kısıtı bulunmuyor
  • EmDash, her eklentiyi Dynamic Worker tabanlı sandbox ortamında çalıştırıyor
    • Eklentiler, açık bir bildirim (manifest) üzerinden yalnızca ihtiyaç duydukları capabilities izinlerini talep ediyor
    • Örneğin: read:content, email:send gibi yalnızca gerekli izinler veriliyor
    • Ağ erişimi de belirtilen host’larla sınırlı tutuluyor
  • Kurulumdan önce eklentinin talep ettiği izinler açıkça görülebildiği için OAuth benzeri şeffaf bir yetkilendirme yapısı sunuluyor
  • Yöneticiler, izin taleplerini temel alarak kurulum politikasını otomatikleştirebiliyor

Eklenti güvenliği ve pazar yeri bağımlılığını aşmak

  • WordPress.org, eklenti güvenlik sorunları nedeniyle manuel inceleme süreci işletiyor ve kuyrukta 800’den fazla öğe bulunuyor
    • GPL lisans kısıtları nedeniyle kodun yeniden kullanımı ve ticarileştirilmesi sınırlı
  • EmDash, iki yapısal iyileştirme ile vendor lock-in durumunu ortadan kaldırıyor
    1. Eklenti lisansında özgürlük: EmDash ile kod paylaşımı olmadığı için geliştiriciler istedikleri lisansı seçebiliyor
    2. Güvenli sandbox çalıştırma: Site, eklenti kodunu doğrudan görmek zorunda olmadan ona güvenebiliyor
  • Eklentiler yalnızca belirtilen capability’leri yerine getirdiğinden güvenlik riski ayrıntılı biçimde değerlendirilebiliyor
  • Bu yapı, merkezi pazar yerine bağımlılığı azaltıyor
    • Güvenilir bir güvenlik modeli kurulduğunda geliştiriciler ve kullanıcılar ekosistemi daha özgür biçimde genişletebiliyor

Yerleşik x402 ödeme standardı — içerik erişimini ücretlendirme

  • EmDash, x402 standardını varsayılan olarak destekleyerek HTTP 402 Payment Required yanıtı üzerinden isteğe bağlı ödeme imkanı sunuyor
    • Kullanıcılar abonelik olmadan içerik başına ödeme (pay-per-use) yapabiliyor
    • Site sahipleri yalnızca cüzdan adresi ve fiyat belirleyerek gelir elde edebiliyor
  • Bu, yapay zeka ajanı tabanlı web trafiği çağında yeni bir iş modeli sunuyor
  • Böylece tüm EmDash siteleri, yapay zeka çağına uygun yerleşik bir gelir modeline sahip oluyor

Sunucusuz tabanlı ölçeklenebilirlik ve maliyet tasarrufu

  • WordPress, sunucu provizyonu gerektirdiği için boşta duran kaynak maliyeti oluşturuyor
  • EmDash, Cloudflare workerd tabanlı v8 isolate mimarisini kullanıyor
    • İstek geldiğinde anında instance oluşturuluyor, istek yoksa otomatik scale-to-zero gerçekleşiyor
    • Yalnızca CPU kullanım süresi kadar ücretlendiriliyor
  • Cloudflare for Platforms sayesinde milyonlarca instance’ın otomatik ölçeklenmesi mümkün
  • Düşük maliyetli ve yüksek performanslı bu yapı, büyük ölçekli trafiği yönetmek ve ücretsiz katman sunmak açısından avantaj sağlıyor

Astro tabanlı modern tema yapısı

  • EmDash temaları bir Astro projesi olarak yapılandırılıyor ve şu bileşenleri içeriyor
    • Pages: İçerik render etmek için rotalar
    • Layouts: Ortak HTML yapısı
    • Components: Yeniden kullanılabilir UI öğeleri
    • Styles: CSS veya Tailwind ayarları
    • Seed dosyaları: CMS’in oluşturacağı içerik türlerini tanımlayan yapılar
  • Astro, LLM eğitim verilerinde yer alan popüler framework’lerden biri olduğu için geliştirici dostu
  • WordPress temalarındaki functions.php tabanlı yapının aksine, EmDash temaları veritabanına erişemez; bu da güvenliği artırır

Yapay zeka yerel CMS — MCP, CLI, Agent Skills

  • EmDash, yapay zeka ajanları tarafından doğrudan yönetilebilen bir CMS olarak tasarlanmıştır
    • Tekrarlayan içerik taşıma veya alan dönüştürme işleri otomatikleştirilebilir
  • Agent Skills

    • EmDash instance’ları, eklenti yapısı, hook’lar ve tema taşıma yöntemleri gibi bilgileri yapay zekaya sunan Agent Skills özelliğini yerleşik olarak içerir
    • Böylece yapay zeka EmDash kod tabanını anlayıp otomatik özelleştirme yapabilir
  • EmDash CLI

    • CLI üzerinden içerik arama, medya yükleme, şema oluşturma gibi yönetim işleri yapılabilir
    • Hem yerel hem de uzak instance’lar kontrol edilebilir
  • Yerleşik MCP sunucusu

    • Her instance kendi Model Context Protocol sunucusunu sağlar
    • Yönetici arayüzünde yapılabilen her işlem uzaktan da gerçekleştirilebilir

Passkey tabanlı kimlik doğrulama ve rol yönetimi

  • EmDash, varsayılan olarak Passkey kimlik doğrulamayı kullanır
    • Parola sızıntılarını ve brute-force saldırılarını önler
  • Varsayılan olarak rol tabanlı erişim kontrolü (RBAC) desteği sunar
    • Yönetici, editör, yazar, katkıda bulunan gibi rollere göre yetkiler ayrılır
  • Kimlik doğrulama eklenti yöntemiyle genişletilebilir ve SSO ile IdP metadata entegrasyonunu destekler

WordPress sitelerini taşıma

  • Mevcut WordPress siteleri, WXR dosyası dışa aktarma veya EmDash Exporter eklentisi ile taşınabilir
    • Exporter eklentisi, WordPress Application Password ile korunan özel bir endpoint oluşturur
    • İçeriği ve medyayı otomatik olarak EmDash kütüphanesine taşır
  • EmDash, şema tabanlı içerik yapısını destekler
    • WordPress’teki Custom Post Type yapıları, EmDash içinde bağımsız koleksiyonlara dönüştürülür
  • Block Kit Agent Skill ile özel bloklar yapay zeka kullanılarak oluşturulabilir

Deneme ve katkı

  • EmDash şu anda v0.1.0 preview sürümü olarak GitHub deposundan indirilebilir
  • EmDash Playground üzerinden yönetici arayüzü doğrudan denenebilir
  • Yerel kurulum komutu: npm create emdash@latest
  • Cloudflare dashboard üzerinden de dağıtım yapılabilir
  • WordPress topluluğunun, barındırma platformlarının ve eklenti/tema geliştiricilerinin geri bildirimleri ve katkıları memnuniyetle karşılanıyor

6 yorum

 
xguru 28 일 전

Ben de kişisel blogumda WordPress kullanırken o güvenlik sorunu yüzünden bırakıp statik yapıya geçen biriyim.
Kişisel blogu bir süre kendi haline bırakmıştım ama gerçekten tuhaf spam’ler sızıp blogu tam bir spam tarlasına çevirmişler. Etiketleri kullanarak bende yerelde olmayan sayfaları Google’a kaydettiren garip bir yöntem kullanıyorlardı. Temizlemek için hâlâ uğraşıyorum T_T

 
lunamoth 27 일 전

Ben de webmaster araçlarında garip bir URL yakalanınca şaşırdığımı hatırlıyorum.

tag kullanarak yerelde olmayan bir sayfayı Google'a kaydetmenin tuhaf bir yöntemi derken tam olarak nasıl bir yöntemden bahsediliyor??

Bunu engellemenin bir yolu var mı?

 
nemorize 25 일 전

Arama sonuçları URL’lerini spam içerikli ifadelerle aratıp başka blogların gönderilerine geri bağlantı olarak kaydeden türden spam de var;
Sonuçta hangisi olursa olsun, yine elle silmek gerekiyor...

 
xguru 27 일 전

Genelde dosya yükleme ile ilgili zafiyeti olan eklenti/tema gibi şeyler kullanılarak sızılıyor.
Bu şekilde içeri girildiğinde, asıl blog sahibi fark etmeden tag/category gibi yerlere içerik yerleştiriyorlar.
Aslında blog sayfasında hiç görünmediği için fark edilmiyor, ama bu URL’yi yalnızca Google botuna görünecek şekilde render etme yöntemini kullanıyorlar. (BabaYaga gibi şeyler buna örnek.)

Bir kez böyle sızıldı mı, pratikte o adrese gelen tüm trafiği 410 Gone’a yönlendirmek dışında bir yol yok gibi. Sunucuda gereksiz adreslerin hepsini 410 olarak görünecek şekilde ayarlayıp, belirli giriş kalıplarını Search Console’da 6 ay boyunca manuel olarak silinmesini istemek gerekiyor. Mesela /tag ile başlayanların hepsini sildirmek gibi.

Ben bir aydır silme talebi gönderiyorum ama hâlâ hepsi silinmedi. Google indekslemesinin düzgün çalışması gerekiyor ama çok uzun sürüyor.

 
lunamoth 26 일 전

Anladım. Bildirdiğiniz için teşekkürler. Görünüşe göre çeşitli açılardan dikkat etmem gerekecek.

 
GN⁺ 29 일 전
Hacker News görüşleri
  • 10 yıldan uzun süredir WordPress ile çalışıyorum ve bu projenin iki şeyi gerçekten doğru yaptığını düşünüyorum: TypeScript ve Worker eklentileri
    Son zamanlarda WP’nin güvenlik sorunları üzerine çok düşündüm; kötü niyetli eklentiler veritabanına ya da ortam değişkenlerine erişebilir veya XSS’e yol açabilir. Ama iyi tasarlanmış bir eklenti sistemi bunu hafifletebilir
    Ben de kişisel olarak HotsauceCMS geliştiriyorum. NodeJS ya da Deno Worker eklentilerini isteğe bağlı kullanıyor; birinci taraf eklentiler için hızlı in-process çalıştırma, üçüncü taraflar için ise worker ile yalıtılmış çalıştırma sağlıyor
    Yalnızca 4 bağımlılığı var ve transitif bağımlılık sayısı 0; çünkü Dependabot uyarılarından ve npm tedarik zinciri saldırılarından bıktım
    Drizzle tabanlı, şema öncelikli bir yapısı var; veritabanı yapısını tamamen kontrol edebiliyor ve dosya yükleme gibi özellikleri şema ipuçlarıyla tanımlıyor
    Veritabanından bağımsız olduğu için Postgres, MySQL, SQLite ve Drizzle’ın desteklediği tüm VT’lerde çalışıyor
    Frontend tarafı serbestçe seçilebiliyor; ben şahsen React’siz JSX’i tercih ediyorum
    Geri bildirimlere açığım. Bir şeyi gözden kaçırıp kaçırmadığımı, yönün doğru olup olmadığını merak ediyorum. EmDash’in gelecekte nasıl gelişeceğini de görmek istiyorum

    • TypeScript’in neden bu kadar önemli olduğunu düşündüğünü açıklayabilir misin diye merak ediyorum
    • Eskiden WordPress’i çok kullanırdım; o dönemde cazibesi, FTP ile doğrudan yükleyip çalıştırabildiğin kolay kurulum yapısıydı. CLI ya da build araçları gerekmiyordu. Ama güvenlik her zaman sorundu ve hack vakaları hiç bitmiyordu
    • İlgili önceki tartışma bağlantısını paylaşıyorum
  • EmDash’in WordPress’in manevi halefi olduğu söyleniyor ama bence CMS’lerin gitmesi gereken yön bunun tam tersi
    Aslında daha da sadeleşip statik dosya tabanlı web sitelerine dönmeliyiz. Cache’lemek kolay, hızlı ve yönetmesi basit
    Tabii Cloudflare açısından bakınca, kendi Workers ürününü satmak için böyle bir yapı seçmiş gibi görünüyor. Temeldeki güvenlik sorunlarını gerçekten çözüp çözmediği ise hâlâ soru işareti

    • Ben de statik siteleri seviyorum ama müşteriler sık sık dinamik içerik istiyor. Başta basit bir site istediklerini söylüyorlar ama sonra form, stok, rezervasyon gibi özellikler eklemek istiyorlar. Bu yüzden eklenti merkezli yapıyı anlıyorum
    • Geliştirici olmayan müşteriler, bir şeyleri arayüzden kendileri düzenleyebilmeyi seviyor. WordPress ise o kadar karmaşık ve şişkin bir arayüze sahip ki çoğu zaman iş yine geliştiriciye dönüyor. İdeal olan, yalnızca gerekli kısımları düzenlemeye izin veren minimal bir arayüz
    • Astro kullanırsan zaten temelde statik site üreticisi. Gerektiğinde React bileşenleri ekleyebilir, eklentileri de seçerek kullanabilirsin
    • Statik dosyaları cache’lenmesi kolay bir yerde barındırmak istiyorsan Cloudflare zaten böyle bir hizmet sunuyor
    • Astro statik HTML üretiyor, bu açıdan bir sorun görünmüyor
  • Bence Cloudflare meseleye yanlış yönden yaklaşıyor
    WordPress’in başarılı olmasının sebebi kolay kurulum ve ağ etkisiydi. Güvenlikten bile önce, zaten WP’ye alışkın çok sayıda geliştirici var
    EmDash başarılı olacaksa Wix ya da Squarespace’ten daha kolay, daha hızlı ve daha esnek olmak zorunda. Yoksa ağ etkisi yaratması zor

    • WordPress tarafında zaten çok sayıda deneyimli insan var, EmDash ise daha yolun başında. Yine de büyürse desteklemeyi düşünürüm
  • Bir WordPress geliştiricisi olarak en büyük acım eklenti mimarisi oldu.
    WP, eklentileri görsellerle aynı wp-content klasörüne koyuyor ve bu da CI/CD’yi kâbusa çeviriyor. EmDash’te eklentiler TS modülü olduğu için çok daha temiz

    • WP’de staging kavramı yok; değişiklikleri prod’a taşımak için her şeyi elle tekrar yapmak gerekiyor
  • Cloudflare’in x402 ödeme standardı fikri ilginç
    Ajanların içeriğe erişim hakkı almak için otomatik olarak küçük ödemeler göndermesi üzerine kurulu; biraz ürkütücü ama geleceğe dönük
    Şaka yollu söylemek gerekirse, her ziyarette 10 sent isteyen bir HTTP 402 honeypot yapılırsa eski “1 piksel 1 dolar” fikrinin geri dönüşü olabilir

    • Eğer ajanları kandırıp sürekli ödeme yapmalarını sağlayabilirsen, sonsuz yönlendirme ya da çöp içerikle para kazanmak mümkün olabilir
    • HTTP 402 belgesine bakılabilir
    • Film Office Space’teki küçük miktarlı para sızdırma hack’inin yasallaşmış hâli gibi
  • WordPress’in değeri kodunda değil, ekosistemi ve destek yapısında
    Kod kalitesi çok iyi olmayabilir ama her SaaS, WP için bir bağlayıcı sunuyor.
    EmDash başarılı olacaksa, geliştirici olmayan biri bile Fiverr’da kolayca özelleştirme işi verebilmeli. Bu teknoloji değil, iş gücü piyasası meselesi

    • Cloudflare 1 Nisan şakası yapmaz. 1.1.1.1 de 1 Nisan’da çıkmıştı ve bugün büyük bir DNS hizmeti
    • Bunun gerçek bir proje olduğunu doğruladım
    • WordPress’in “açık kaynak” ile ilgili .com vs .org tartışmasına da bakılabilir
    • Eski alternatiflerden biri olarak Textpattern da var
  • Bunun Cloudflare yapımı bir WordPress halefi olması ilgi çekici ama Dynamic Workers tabanlı eklenti izolasyonu yalnızca Cloudflare runtime’ında çalışıyor
    Diğer hostlarda sadece sıradan bir TS CMS olarak kalıyor; yani mimariye bağımlılık sorun yaratıyor

    • Sonuçta Cloudflare altyapısına bağımlı bir OSS olması benimsemeyi zorlaştırıyor
    • Yine de Workerd açık kaynak olduğu için self-host etmek mümkün
    • Başka runtime’lar da bu özelliği kopyalayabilir
    • Cloudflare sanki popüler OSS’lerin kendi altyapısına özel alternatiflerini üretme stratejisi izliyor
  • Hâlâ neden JavaScript ile yapay zeka projeleri geliştirildiğini merak ediyorum
    Artık Go gibi derlenen dillerle de hızla uygulama geliştirilebiliyor. Daha küçük, daha hızlı ve dağıtımı daha kolay
    JS yorumlanan bir dil olduğu için yavaş ve karmaşık. Eskiden anında çalıştırma avantajdı ama bugün derleme de hızlı

    • “JS gerçek bir dil değil” demek fazla ileri gitmek olur. Yorumlanan dilleri kullanmak için hâlâ birçok neden var
    • JS, web frontend’i, backend, mobil ve masaüstünü aynı anda kapsayabilen tek dil. tRPC gibi araçlarla uçtan uca tip güvenliği de sağlanabiliyor
    • Geliştiricilerin çoğu zaten JS/TS biliyor ve topluluk en büyük olanı. Ekosistem devasa olduğu için değiştirmek için güçlü bir sebep yok
    • Go, JSON işleme ya da şablonlama tarafında rahatsız edici olabiliyor. Tip sistemi daha az esnek olduğu için frontend geliştirmede de kısıtlayıcı
    • LLM’ler TS’yi iyi kullanıyor ve TS, JS’nin birçok eksiğini düzeltti. Hızlı runtime ve kolay dağıtım sayesinde hâlâ cazip
  • EmDash’in WordPress kodunu kullanmadığı için MIT lisansı ile dağıtılması ilginç
    Ama bu bana yakın zamanda çıkan bir Cleanroom as a Service olan Malus projesini hatırlatıyor. Zamanlamaları tuhaf biçimde çakışıyor

    • Malus aslında bir hiciv projesi