Tek HTML Dosyasında Sunucusuz Çatışma İzleyici

Tek HTML dosyası. Gerçek zamanlı küresel çatışma haritası. CrisisPulse, 2024'te sunucusuz minimalizmin hâlâ yumruk gibi vurduğunu kanıtlıyor.

CrisisPulse: Tek HTML Dosyasıyla Sunucusuz Küresel Çatışma Takibi — theAIcatchup

Key Takeaways

  • 99 KB'lik tek HTML dosyası D3.js haritaları ve günlük Bing RSS güncellemeleriyle küresel çatışma izliyor.
  • Netlify Blobs ve Edge Functions veritabanı veya tracker olmadan kalıcılık ve konum belirleme sağlıyor.
  • Belgelenmemiş Google Translate şimdilik çalışıyor ama kırılgan — sunucusuz kırılganlığının ana dersi.

Her şey tek bir HTML dosyasıyla çalışıyor.

CrisisPulse — crisispulse.org — dünyadaki çatışmaları izliyor, acil yardım malzemesi ihtiyaçlarını hesaplıyor ve İngilizce ya da Çince kullanıcılara hizmet veriyor. Backend veritabanı yok. React karmaşası yok. Build adımı yok. Sade HTML, CSS, JS’ten oluşan 99 KB, D3.js ile interaktif dünya haritası. Üstelik her gün güncelleniyor. Gerçekler ön planda: Bu buharlaşan bir proje değil; canlı, ücretsiz, kayıt yok.

Netlify burada sessiz kahraman — günlük zamanlanmış fonksiyonları devreye giriyor, 25 çatışma bölgesinden Bing RSS feed’lerini çekiyor. Başlıkları ayrıştırıyor, makale sayılarını yoğunluk puanlarına çeviriyor, haftalık değişimleri yakalıyor. Sonra — toplu Çince çeviri için Google’ın belgelenmemiş gtx endpoint’ini kullanıyor. Hepsini Netlify Blobs’a, onların yerleşik KV deposuna kaydediyor. Postgres faturaları birikmiyor. Redis operasyon kâbusları yok.

Tek HTML Dosyası Günlük Küresel Güncellemeleri Nasıl Yapıyor?

Bakın, ziyaretçi trafiği? O da sunucusuz halloluyor. Her sayfa yüklenişinde Netlify Edge Function’a ping gönderiliyor. context.geo’dan ülkenizi kapıyor — Netlify’nin ücretsiz coğrafi konum mucizesi. Blobs’ta ülke bazlı sayacı artırıyor. Hassasiyet istiyorsan tarayıcı GPS’ine fallback yapıyor. Yan panel için taze istatistikleri döndürüyor. Çerez yok. Tracker yok. Tasarım gereği gizlilik, altyapıya dokunmadan ölçekleniyor.

Yaratıcının kendi ağzından:

CrisisPulse’u kurmaya başladığımda tek kısıtım vardı: Backend veritabanı, framework ya da build pipeline olmadan çalışmalıydı. Sonuç crisispulse.org — canlı küresel çatışma izleyici + acil yardım hesaplayıcısı, tek HTML dosyası olarak.

Bu kısıt? Dâhiyane bir hamle doğurdu. Her satır yerini hak ediyor.

Ama — keskin yorumum şu — bu 1990’lar GeoCities havasını çağrıştırıyor, hobi geliştiriciler statik sitelere Perl CGI betikleri sıkıştırıp dinamik etki yaratıyordu. O zamanlar AWS hayalleri öncesi viral araçlar doğuyordu. Bugün Netlify Blobs o elverişsiz ruhu diriltiyor, global edge caching ile. Özgün bakış: Vercel/Netlify sunucusuzluğu sıradanlaştırdıkça “static + functions” indie hack’lerinde patlama bekleyin. Megaframework peşinde koşan VC’ler? Bu ince dalgayı kaçıracak.

Bing feed’lerini ayrıştırmak? Zorlu iş. RSS’leri çift kodluyor redirect’leri:

https://www.bing.com/news/apiclick.aspx?url=https%3A%2F%2F…&ref=…

Ampersand’lar URL ayrıştırmayı bozuyor. Çözüm basit ama zekice bir fonksiyon — & yerine & koy, entity’leri decode et, gerçek parametreyi çek. Ücretsiz feed’ler bile savaş testli hack’ler istiyor.

Statik CONFLICT_ZH haritası 25 bölgenin temelini kodluyor — isimler, tipler, açıklamalar. Dinamik başlıklar? gtx toplu çeviri yapıyor. İlk hata: Önceden çevrilmiş string’leri cache’lemişti, dil değişince bayat veri veriyordu. Şimdi? Her dil geçişinde yeniden hesaplıyor. Akıllı dönüş.

Neden Netlify Blobs Indie Projelerde Veritabanlarını Eziyor?

Blobs ziyaretçi sayıları, çatışma verileri, hatta abone e-postalarını yönetiyor. KV sadeliği — get/set key, bitti. Netlify ücretsiz katmanında dahil. Harici anahtar yok. Tedarikçi kilidi korkusu yok (henüz).

Pazar dinamikleri: Blobs, Cloudflare KV, Vercel KV gibi sunucusuz KV’ler patlıyor. Neden? Geliştiriciler Supabase/PlanetScale ölçek sürprizlerinden yandı. 2023’te Netlify edge fonksiyonları 10T çağrıya ulaştı; Blobs o dalgayı sürükledi. CrisisPulse ölçeği için (günlük binler?) mükemmel. Maliyet? Kuruşlar. Güvenilirlik? Savaş testli.

Eksi? Ücretsiz Google Translate gtx. Belgelenmemiş. Yarın kaybolabilir — yaratıcı prod’da kesileceğini kabul ediyor. Adil uyarı. DeepL ya da LibreTranslate’e geç? Kolay iş.

Tek dosya felsefesi dağıtımda parlıyor. Repoyu fork’la, Netlify’e sürükle-bırak. Anında global CDN. npm install cehennemi yok. D3.js? Vanilla script tag. Dünya haritası akıcı — Ukrayna, Sudan, Gazze’ye zoom; yoğunluk çubukları haber hacmiyle nabız atıyor.

Yardım hesaplayıcısı? Kişi sayısı, gün gir; gıda/su/ilaç iht

Marcus Rivera
Written by

Tech journalist covering AI business and enterprise adoption. 10 years in B2B media.

Worth sharing?

Get the best AI stories of the week in your inbox — no noise, no spam.

Originally reported by dev.to