Depreme hazırlık veri ile değil, eylemle başlar.
İstanbul'un deprem verisi ortada. Fay haritaları var, zemin ızgaraları var, senaryo raporları var, her yıl yenilenen haberler var. Buna rağmen çoğu insanın elinde tek bir cümle bile yok: bu hafta ne yapmalıyım?
Bu araç o boşluğu kapatmak için. Bir risk skoru üretmiyor — çünkü bir anket binanın riskli olup olmadığını belirleyemez. Bunun yerine iki şey yapıyor: elindeki bina bilgisini anlamlandırıyor, ve evinde bugün azaltabileceğin riskleri sana gösteriyor.
Uygulamanın 40 saniyelik turu — Remotion ile kod üzerinden üretildi.
İki modül, ikisi de bağımsız
Binanı Anla — binan hakkında bildiklerini yedi soruda gözden geçirir ve profesyonel bir değerlendirmeye ne kadar öncelik vermen gerektiğini gösterir. Yaklaşık 5 dakika.
Evini Hazırla — evde devrilebilecek, düşebilecek veya çıkışı engelleyebilecek riskleri 10 soruluk bir kontrol listesiyle tarar. Yaklaşık 3 dakika.
Hangisinden istersen başlarsın. Birini bitirmeden diğerine geçebilirsin; özet ekranı tek modülle de çalışır. Çünkü gerçek hayatta insanlar akışı baştan sona tamamlamıyor — yarısında bırakıp bir işe yarayacak bir şey bulmayı umuyorlar.

Skor üretmiyor. Bilerek.
Bu ürünün ilk sürümünde 0–100 arası bir risk skoru vardı. Zemin sertliği, faya uzaklık, yapım dönemi ve kat sayısı ağırlıklandırılıyor, sonuç bir bant içine düşüyordu. Kaldırdım.
Sebebi basit: o sayı bir mühendislik çıktısı gibi görünüyor ama değil. "Binanız 62 puan" cümlesini okuyan biri onu bir teşhis sanıyor. Oysa binanın taşıyıcı sistemi, malzeme kalitesi, zemin etüdü ve sonradan yapılan tadilatlar o hesapta yok — ve gerçek hayatta belirleyici olan çoğu zaman tam olarak bunlar.
Skorun yerine dört durum kondu: öncelikli uzman değerlendirmesi öneriliyor, daha ayrıntılı değerlendirme faydalı olabilir, belirgin bir uyarı tespit edilmedi, değerlendirme için bilgi yetersiz. Rapor bir sayı vermek yerine hangi değerlendirmenin işine yarayacağını anlatıyor: ön inceleme mi, deprem performans analizi mi, riskli yapı tespiti mi — ve her birinin ne yapamayacağını da yazıyor.

Aynı rapor 6306 sayılı Kanun kapsamındaki sürecin nasıl işlediğini de anlatıyor: başvurunun nereye yapıldığı, tek kat malikinin çoğunluk onayı olmadan başlatabildiği, masrafın kime ait olduğu, sonucun nasıl bildirildiği ve itiraz yolu. Bu bölüm bilgilendirme; yönlendirme değil. Uygulama hiç kimseye "kentsel dönüşüme girin" demiyor. Oran ve süre de yazmıyor — yönetmelik en son 4 Şubat 2026'da değişti, o yüzden kullanıcı resmî kaynağa gönderiliyor.
Bölgesel veri gerçek, yapısal sonuç prototip
Bu ayrım ürünün en önemli tasarım kararı, o yüzden ekranda da açıkça yazıyor.
Bölgesel bilgiler gerçek. İlçe ölçeğinde İBB + Kandilli deprem senaryosundan, USGS Vs30 zemin ızgarasından ve Türkiye diri fay verisinden geliyor. Ama yapısal sonucu etkilemiyorlar — bir bölgenin deprem tehlikesi ile bir binanın yapısal performansı aynı şey değil. Yan yana duran iki bina aynı zeminde farklı davranır.
Yapısal sonuç bir prototip. Sonucu türeten fonksiyon bir arayüz yönlendirme mantığı; mühendislik modeli değil, sayısal değer üretmiyor ve bölgesel veriyi girdi olarak almıyor. Üretimde doğrulanmış bir değerlendirme servisiyle değiştirilmek üzere tek bir yerde izole tutuluyor.

Verinin kendisi
Ham veriyi işleyen betikler depoda; hepsi yeniden üretilebilir. Toplananlar:
- 27.600 Vs30 zemin hücresi (8.428'i İstanbul sınırı içinde) — USGS Global Vs30
- 926 fay segmenti — Türkiye diri fay verisi, 77'si İstanbul'un 160 km çevresinde
- 2.015 deprem kaydı, 1905–2025 — USGS FDSN
- 959 mahalle için İBB senaryo sonucu, 1.371 açık/yeşil alan, 991 hastane, 275 itfaiye
Bu veriyle çıkan bulgulardan birkaçı, ürünün kendisinden bağımsız olarak dikkat çekici:
- Güngören'de senaryo barınma ihtiyacı başına 1,1 m² açık alan düşüyor. Bahçelievler'de 2,8 m². Afet barınma planlamasında kişi başı asgari 3–4 m² kabul edilir. (Bu sayılar alt sınır: İBB envanteri okul bahçelerini ve ilçe parklarını kapsamıyor.)
- Fatih ağır hasarlı bina sayısında birinci (5.579) ama can kaybı sıralamasında üçüncü. Silivri'de 2.151 ağır hasarlı binaya karşılık 58 can kaybı bekleniyor — yapı stoğu ile nüfus yoğunluğunun ayrıştığı yer burası.
- Faylar İstanbul'un altında değil, güneyindeki Marmara'da. Sultanahmet'ten Adalar fayına 16,8 km, Avcılar fayına 16,7 km. 100 km içinde 29 farklı adlandırılmış fay var.
- Vs30 ortancasının tam 600 m/s çıkması tesadüf değil — USGS mosaic'inde 600, geniş alanlarda topoğrafik eğimden türetilen varsayılan değer, saha ölçümü değil. Bu tür tuzaklar
KAYNAKLAR.md'de tek tek yazılı.
Bulamadıklarım da kayıtlı: resmî acil toplanma alanları İBB portalında yok, AFAD e-Devlet arkasında. Elimdeki 248 OpenStreetMap noktası gerçeğin çok altında — ve bu yüzden toplanma alanı listesi ürüne konmadı. Eksik veriyle tam liste görüntüsü vermek, hiç vermemekten kötü.
Sunucu yok, kayıt yok
Deprem hazırlığı gibi bir konuda insanlardan adres ve bina bilgisi istiyorsan, o bilgiyi nereye koyduğun ürünün kendisi kadar önemli. Cevap: hiçbir yere.
- Kayıt yok. Üyelik, giriş, e-posta, telefon, parola, TC kimlik numarası istenmiyor. Ürünün hiçbir yerinde hesapla ilgili bir çağrı yok.
- Sunucu yok. Uygulama statik dosyalardan ibaret; arka uç, veritabanı ve API çağrısı yok. Girilen hiçbir bilgi bir yere gönderilmiyor.
- Kalıcı depolama yok.
localStorage,sessionStorage,IndexedDBve çerez kullanılmıyor. Bütün durum yalnızca bellekte. Sayfayı yenilediğinde her şey siliniyor. - Analitik yok. İzleme pikseli, çerez veya analitik betiği yok.
"Konumumu bul" düğmesi bile isteğe bağlı ve yalnızca tıklandığında çalışıyor. Tarayıcıdan alınan koordinat, uygulamaya gömülü ilçe poligonlarıyla yerel olarak ilçeye çevriliyor — coğrafi kodlama servisi çağrılmıyor, koordinat hiçbir yere gitmiyor. Düğmeye hiç dokunmadan ilçeyi elle seçerek akış eksiksiz tamamlanabiliyor.
Tek dış istek Google Fonts'a yapılan yazı tipi isteği ve onu da kaldırmak tek satırlık bir değişiklik. Testler bunları denetliyor: uçtan uca test depolama kullanımını ve dış istekleri ölçüyor, statik denetim type="password" veya kayıt formu benzeri bir işaretleme sızmadığını kontrol ediyor.
Ev raporu: bugün yapılabilecek işler
Yapısal olmayan risk kontrolü, ürünün en somut faydası olan kısmı. Binanı güçlendirmek uzun ve pahalı bir iş; ama gardırobu duvara sabitlemek bir öğleden sonralık.
Kontrol listesi 10 madde: ağır mobilyaların sabitlenmesi, televizyon ve beyaz eşya, yüksek raflardaki kırılabilir eşyalar, şofben ve kombi, avizeler, yatak konumu, çıkış yolunun boş olması, mutfak dolabı mandalları, kimyasalların saklanması, acil durum çantası. Rapor tamamlananları değil, tamamlanmayanları aciliyete göre sıralıyor.

İki modülü de tamamlarsan tek bir hazırlık planında birleşiyorlar. Her iki rapor da "PDF olarak indir" düğmesiyle basılabiliyor — ek kütüphane yok, window.print() ve bir yazdırma stil sayfası yeterli. Çıktıda yalnızca rapor var; üst bar, düğmeler ve gezinme basılmıyor.

60–65 yaş için tasarlandı
Erişilebilirlik hedefi baştan buydu ve bütün arayüz kararlarını o belirledi: büyük dokunma hedefleri, yüksek kontrast, her ekranda tek iş, renge bağlı olmayan durum gösterimi. Sonuç durumları hem renk hem simge hem etiket hem açıklamayla ayırt ediliyor — renk körlüğü veya düşük kontrastlı ekran sonucu değiştirmiyor.
Uçtan uca test akışı 375, 768, 1024 ve 1440 piksel genişliklerde yürütüyor; dokunma hedefi boyutlarını ve form etiketlerini denetliyor. Servis çalışanı uygulamayı çevrimdışı kullanılabilir hâle getiriyor, ama yalnızca dosyaları önbelleğe alıyor — kullanıcı yanıtlarını saklamıyor.

Çalıştırmak
Sunucu gerekmez, index.html çift tıkla açılır. Depoyu klonlayıp kaynaktan derlemek istersen:
git clone https://github.com/unkownpr/depremlab.git
cd depremlab
python3 scripts/app_data.py # derived/*.csv -> scripts/_app_data.json
python3 scripts/build_app.py # -> index.html
python3 -m http.server 8000 # servis çalışanı için https ya da localhost gerekliKaynaklar scripts/ altında ayrı dosyalar; build_app.py hepsini tek bir index.html içine gömüyor. Modül sistemi yok, her betik bir öncekinin global tanımlarını görüyor. CI her push'ta testleri çalıştırıyor ve index.html'in kaynaklarla güncel olduğunu doğruluyor — biri kaynağı değiştirip build almayı unutursa yapı kırmızıya dönüyor.
Ne değil
Bunu yazının sonuna değil, uygulamanın her ekranına koydum; burada da tekrar edeyim:
- Resmî bina risk tespiti veya riskli yapı tespiti değildir.
- Deprem performans analizi yapmaz.
- Göçme olasılığı veya sayısal güvenlik skoru üretmez.
- Gerçek zemin etüdü değildir.
- Hukuki veya mühendislik danışmanlığı değildir.
- Binanın güvenli olduğuna dair hiçbir güvence vermez.
Üretime hazır değil ve deposundaki README bunu açıkça yazıyor. Sonuç türeten fonksiyonun doğrulanmış bir değerlendirme servisiyle değiştirilmesi, kontrol listesi metinlerinin bir uzman tarafından gözden geçirilmesi ve bölgesel verinin mahalle ölçeğine indirilmesi gerekiyor. Mahalle senaryosu veri paketi zaten elimde — UAVT koduyla mahalle sınırlarına eşlenebilir; yapılmayı bekleyen iş bu.
Açık kaynak
Kaynak kod MIT. Depo: github.com/unkownpr/depremlab
Lisans yalnızca kodu kapsıyor. USGS Vs30, USGS FDSN deprem kataloğu, Türkiye diri fay verisi, İBB açık veri portalı kayıtları ve OpenStreetMap kendi lisanslarına tabi; yeniden dağıtırken özgün koşullara uymak gerekiyor. Kaynakların tam listesi, indirme adresleri ve işleme adımları depodaki KAYNAKLAR.md içinde. OpenStreetMap verisi © OpenStreetMap katkıcıları, ODbL.
Bina hakkındaki soruları ve kontrol listesi metinlerini bir uzmanın gözden geçirmesi bu işin en çok fayda getirecek katkısı olur. Yapısal değerlendirme tarafında çalışan biriysen, issue açmaktan çekinme.
Tartışma