4 puan yazan GN⁺ 2026-01-25 | 1 yorum | WhatsApp'ta paylaş
  • Statik sitelerde bile Bluesky API kullanarak yorumları gösterebilen bir uygulama örneği
  • Bluesky, hesap doğrulama, spam yönetimi, depolama ve moderasyonu üstlendiği için ayrı bir sunucu sürdürmek gerekmiyor
  • Uygulama yaklaşık 200 satır TypeScript kodundan oluşuyor ve @bluesky/api ile Tanstack react-query kullanıyor
  • Yorumlar salt okunur biçimde gösteriliyor; her blog yazısının meta verisine Bluesky gönderi kimliği bağlanarak otomatik yükleniyor
  • Açık sosyal platformlarla statik blogların birleştirilebileceğini gösteren deneysel bir uygulama

Bluesky yorum bölümünü uygulamanın arka planı

  • Çıkış noktası, statik olarak oluşturulan bir sitede yorum özelliğini doğrudan barındırmanın zor olması
    • CDN'e dağıtılan statik içerikte dinamik veri depolamak mümkün değil
    • Ayrı bir VPS ya da bulut hizmeti işletmek ise maliyet ve yönetim yükü getiriyor
  • Bluesky, genel API ve AT Protocol tabanlı açık bir platform olarak yorum yönetimi için gereken işlevleri zaten sunuyor
    • Hesap doğrulama, spam filtreleme, depolama ve moderasyonu Bluesky üstleniyor
    • Blog tarafında ise yalnızca API çağrısı yapıp yorumları göstermek yeterli

Diğer alternatifler ve Bluesky'nin seçilme nedeni

  • Twitter, Disqus, giscus (GitHub Discussions tabanlı) gibi alternatifler de değerlendirildi
  • Bluesky, merkeziyetsiz AT Protocol üzerine kurulduğu için belirli bir şirketin kontrol riskini daha az taşıyor
  • GitHub tabanlı seçeneklere kıyasla sohbet odaklı bir platform olarak yorum barındırmaya daha uygun

Uygulama yöntemi

  • Cory Zue'nin yayımladığı bluesky-comments paketi incelendi, ancak doğrudan geliştirme tercih edildi
    • Site tasarımına uygun özelleştirme ve ileride genişletme esnekliği için kod sıfırdan yazıldı
    • Tüm uygulama, UI bileşenleri ve API işlevleri dahil yaklaşık 200 satırdan oluşuyor
  • Başlangıçta OAuth üzerinden doğrudan gönderi yazma özelliği de düşünüldü, ancak UI karmaşıklığı ve zaman kısıtı nedeniyle çıkarıldı
    • Sonuç olarak yalnızca salt okunur yorum gösterimi uygulandı

Teknik yapı

  • Site, React Server Components ve Parcel kullanılarak inşa edildi
    • İçerikler MDX ile yazıldığı için doğrudan JavaScript/JSX eklemek mümkün
    • Her yazının metadata nesnesine bskyPostId eklenerek ilgili Bluesky gönderisiyle eşleştiriliyor
  • Bluesky TypeScript SDK'sı (@bluesky/api) kullanılarak getPostThread endpoint'inden yorum iş parçacığı verisi alınıyor
  • API istekleri Tanstack react-query ile yönetiliyor
    • Hata, yüklenme ve yeniden deneme durumları otomatik işleniyor

UI tasarımı

  • Bluesky yanıtından yalnızca metin içeriği çıkarılarak sade bir yorum arayüzünde gösteriliyor
  • İş parçacığı yapısı, girinti ve soldaki sınır çizgisiyle ayırt ediliyor
    • Profil resmi ve gönderi tarihi için Bluesky tasarımı referans alındı
  • Üst kısma, özgün Bluesky gönderisine giden bir bağlantı eklenerek sohbete katılım teşvik ediliyor
  • Yorum yazma özelliği yok; kullanıcılar yanıtlarını doğrudan Bluesky üzerinde bırakıyor

Gelecekteki olasılıklar

  • Gerekirse bu uygulama bağımsız bir paket olarak yayımlanabilir
    • Ancak mevcut kod şu anda kişisel siteye göre uyarlanmış durumda
    • Yapı basit olduğu için diğer geliştiriciler de kaynak koddan yararlanarak kolayca benzerini kurabilir
  • Bluesky yorum entegrasyonunun blogda etkileşimi artırmaya yardımcı olup olmayacağı ise henüz belirsiz

Bluesky kullanıcı tepkileri

  • Çeşitli Bluesky kullanıcıları yorumlarda “iyi fikir”, “hızlı tepki süresi”, “Disqus için uygun bir alternatif” gibi olumlu geri bildirimler bıraktı
  • Bazıları spam yönetimi, iç içe yorumların işlenmesi ve ek desteği hakkında sorular sordu
  • Yazar, Bluesky'nin kişisel moderasyon özelliği sayesinde belirli yorumların gizlenebileceğini açıkladı

1 yorum

 
GN⁺ 2026-01-25
Hacker News görüşleri
  • Blogunuzu veya web sitenizi static site generator ile render ediyorsanız, yorumları içerik dosyaları olarak içe alıp build sürecine dahil etme yöntemi öneriliyor

    1. yorumları e-posta, CGI scripti, sunucu programı vb. ile toplamak
    2. elle inceleyip spam’i silmek
    3. yorumları .md ya da .html dosyaları olarak kaydetmek
    4. site build edilirken onlarla birlikte render etmek
      Bu süreç zahmetli olsa da, spam engelleme ve veri üzerinde tam sahiplik gibi avantajlar sunuyor
    • Ben de benzer bir sistemi e-posta tabanlı olarak kurdum. Ayrıntıları blog yazımda anlattım
    • Küçük bir web sitesinde günde yalnızca birkaç yorumu yönetmek gerektiğinden, elle inceleme gayet mümkün. Ayrıca Markdown dosyalarını otomatik güncelleyerek bunu kolayca otomatikleştirebilirsiniz
    • “Ben yorumları sadece faksla alıyorum ;)” diye şaka yapıyor
    • “Kulağa korkunç geliyor” diyerek verimsiz buluyor
  • React kullanmak istemiyorsanız, yaptığım Bluesky yorum web component’ine bakabilirsiniz
    GitHub deposu ve tema playground’u üzerinden inceleyebilirsiniz.
    Tema özelleştirmesi çok kolay

  • Ana yazıdaki fikirden yola çıkarak bunu Mastodon tabanlı bir yorum sistemi olarak uyguladım
    Ayrıntılar blog yazımda var

    • Aslında bu tür Fediverse yorum entegrasyonu daha önce de Mastodon veya Bluesky ile denenmişti
      Bakınız: ilgili blog yazısı
  • AB’deki nefret söylemiyle ilgili yasalar nedeniyle site yöneticileri yorumları filtrelemezse cezalandırılabiliyormuş deniyor; bunun pratikte nasıl işlediğini merak ediyorum
    Bu yüzden ben yorum özelliğini tamamen kapattım

    • Hukuk uzmanı değilim ama bu tür riskler çoğu zaman siyasi amaçlarla abartılıyor. AB yasaları sitenin ölçeğini ve amacını dikkate alıyor. Küçük kişisel sitelerin cezalandırıldığı bir örnek duymadım
    • Bluesky moderation labeler kullanarak ön filtreleme yapabilirsiniz. AB standartlarına uygun hazır bir şey yok ama kendi labeler’ınızı oluşturup yalnızca sorunlu yorumları filtreleyebilirsiniz
    • Yasadan bağımsız olarak, adımın geçtiği bir sitede nefret söylemi yer almasını istemem
  • Blogum tamamen statik bir yapıda ve 50 satırlık bir Cloudflare Worker scripti ile yorumları alıp doğrudan Markdown’a ekliyorum.
    Yorum özelliğini embed etmeden de bu yapılabiliyor

    • Yorumları Pull Request olarak otomatik commit edecek şekilde yapıp, PR’ları yorum inceleme aracı olarak kullanmak eğlenceli olabilir
    • “Eğer bu gerçekten ColdFusion olsaydı daha da havalı olurdu” diye şaka yapılıyor
    • “Bağlantıyı veya implementasyon ayrıntılarını paylaşabilir misin?” diye soranlar da var
  • Bluesky API ile, belirli bir blog bağlantısını içeren ilk gönderiyi otomatik olarak bulup yorumlara bağlayacak şekilde otomasyon da kurulabilir

  • Bunun Bluesky’nin büyümesine de katkı sağlayabileceğini düşünüp deneme amaçlı bir hesap açtım. Oldukça eğlenceli bir growth hacking fikri gibi görünüyor

    • Ama kâr amaçlı sosyal ağların eninde sonunda Twitter gibi olacağını düşünüyorum.
      İdeal olarak self-hosted ya da Fediverse tabanlı bir yorum sistemi daha sürdürülebilir olur
    • Sadece “Biz o diğer platform değiliz” mesajıyla başarılı olmanın zor olduğunu söyleyenler de var
  • Blogum çok popüler değil ama geçmişte spam ve nefret yorumu cehennemi yaşadım
    Bu yüzden kişisel blogumda bir daha asla yorum özelliğini açmayı düşünmüyorum

  • Bluesky tabanlı bir sistemde bile, doğrudan bir labeler ekleyip belirli etiketlere sahip yorumları filtreleyerek kendi sansürünüzü uygulayabilirsiniz

  • Ben de benzer bir fikirle, kendi blogumun dışında cartes.app üzerinde OSM konumlarına göre yorum özelliği ekledim
    ATproto hesabıyla inceleme bırakılabiliyor ve veriler PDS’de kullanıcıya ait JSON olarak saklanıyor

    • “Gerçekten çok havalı. Bu verileri nasıl topluyorsun, yoksa Bluesky firehose dinleyerek mi?” diye soran bir yorum da var