1 puan yazan GN⁺ 2026-01-19 | 1 yorum | WhatsApp'ta paylaş
  • Dosya merkezli kişisel bilişim kavramını sosyal bilişime genişleterek, kullanıcıların ürettiği tüm içeriğin uygulamalara değil bizzat kullanıcının kendisine ait olduğu bir yapı olarak açıklıyor
  • AT Protokolü temelinde, uygulamalar arası veri birlikte çalışabilirliğini mümkün kılan dağıtık bir sosyal dosya sistemi kavramı ortaya koyuyor
  • Her kullanıcı kendi ‘everything folder’ına veya deposuna (repository) sahip oluyor ve gönderiler, beğeniler, takipler gibi veriler JSON tabanlı dosyalar (record) olarak saklanıyor
  • DID (Decentralized Identifier) ve at:// URI düzeni sayesinde, hosting değişse veya handle değiştirilse bile kalıcı olarak tanımlanabilen bağlantılar korunuyor
  • Bu yapı, uygulama değil veri merkezli bir sosyal ekosistem oluşturarak herkesin mevcut veriler üzerinde çalışan yeni uygulamalar geliştirebilmesini sağlıyor

Dosya paradigması ve sosyal genişleme

  • Dosyalar aslında uygulamaların içinde değil, kullanıcının kontrol ettiği bir alanda bulunur; uygulamalar ise yalnızca dosya okuma ve yazma araçlarıdır
    • .svg gibi açık dosya formatları, birden fazla uygulamanın aynı veriyi paylaşmasına olanak tanır
    • “Dosya formatı API’dir” ilkesi altında, uygulamalar arası birlikte çalışabilirlik mümkündür
  • Bu kavram sosyal uygulamalara uygulandığında, gönderi, takip ve beğeni gibi eylemler de dosya gibi ele alınabilir
    • Kullanıcının tüm çevrimiçi etkinliğini içeren bir ‘everything folder’ bulunur
    • Uygulamalar bu klasördeki veriyi yansıtır ve klasör tek gerçek kaynak (source of truth) işlevi görür

AT Protokolü ve sosyal dosya sistemi

  • AT Protokolü, bu yapıyı fiilen hayata geçiren teknoloji olup Bluesky, Leaflet, Tangled, Semble ve Wisp bunun üzerinde çalışır
  • Uygulamalar kullanıcı verisine sahip olmaz; dosya düzeyinde ayrılmış veri depolama sayesinde yeni uygulamalar mevcut veriyi yeniden kullanabilir
  • Tüm kullanıcı klasörleri birleşerek dağıtık bir sosyal dosya sistemi oluşturur

Record ve collection yapısı

  • Her gönderi bir JSON dosyası (record) olarak ifade edilir ve yazar bilgisi ya da türetilmiş verileri (beğeni sayısı gibi) içermez
    • Örnek: { text: 'no', createdAt: '2008-09-15T17:25:00.000Z' }
  • Dosya adı, çakışmaları önlemek için zaman damgası tabanlı bir anahtar (record key) ile oluşturulur
  • Dosya yapısı, lexicon adı verilen bir şema ile tanımlanır ve her uygulama kendi lexicon’unu tasarlayabilir
    • Örnek: com.twitter.post, fm.last.scrobble, io.letterboxd.review
  • Aynı kavram için bile uygulamadan uygulamaya farklı lexicon’lar olabilir; çakışmalar alan adı tabanlı namespace ile önlenir

Doğrulama ve güven

  • Bir Lexicon Police yoktur — hiçbir uygulama başka bir uygulamanın verisini dayatamaz
    • Uygulamalar gelen veriyi okuma sırasında doğrular (validate on read) ve geçerli değilse yok sayar
  • Lexicon değiştirildiğinde geriye dönük uyumluluğun korunması zorunludur; kırıcı değişiklikler yeni bir lexicon’a ayrılır
  • Lexicon’lar herkese açık biçimde dağıtılabilir ve DNS üzerinden alan adı sahipliği kanıtı sağlanabilir

Bağlantılar ve kimlik (Identity)

  • Kullanıcıların oluşturduğu beğeni veya yanıtlar başka record’lara referans vermek zorunda olduğundan, kalıcı bir bağlantı düzeni gerekir
  • Birden fazla denemenin ardından kimlik için DID (Decentralized Identifier) kullanılmıştır
    • did:plc:6wpkkitfdkgthatfvspcfmjo gibi tanımlayıcılar değiştirilemez
    • Her DID, güncel hosting, handle ve açık anahtar bilgisini taşıyan bir belgeye çözümlenir
  • at:// URI’leri, DID, collection ve record key’i birleştirerek hosting değişse bile kırılmayan bağlantılar sağlar
    • Örnek: at://did:plc:6wpkkitfdkgthatfvspcfmjo/com.twitter.post/34qye3wows2c5

JSON hiperbağlantıları ve ilişkilerin ifadesi

  • Her beğeni, repost ve yanıt, başka bir record’a referans veren hiperbağlantı türünde JSON yapısıdır
    • Örnek: parent alanı, başka bir gönderinin at:// URI’sine referans verir
  • Arayüzde görülen tüm bilgiler (yazar, metin, beğeni sayısı vb.) bu dosyalar arasındaki bağlantılardan hesaplanabilir

Depo (Repository) ve veri akışı

  • Kullanıcının ‘everything folder’ı depo (repository) olarak adlandırılır ve DID ile tanımlanır
    • İçinde birden fazla collection ve record bulunur
  • Depo herhangi bir yerde barındırılabilir ve taşınsa bile bağlantılar korunur
  • Uygulamalar depoyu bir dosya sistemi gibi okuyabilir veya akışa (WebSocket) abone olarak gerçek zamanlı senkronizasyon yapabilir
    • Her commit, imzalı bir hash ağacı (Merkle tree) ile doğrulanır ve veri sahteciliği önlenir
    • Relay sunucuları yalnızca olayları yeniden iletir; doğrulanabilir yapı sayesinde güven sağlanır

Atmosphere keşfi ve gerçek örnekler

  • pdsls.dev, bir DID veya handle girildiğinde sosyal dosya sistemi gezgini gibi çalışır
    • Her collection ve record doğrudan incelenebilir
  • Örnek uygulama Sidetrail, kullanıcının record değişikliklerini gerçek zamanlı yansıtarak verinin uygulamada değil depoda bulunduğunu gösterir
  • teal.fm Relay demosu, gerçek bir API olmadan bile fm.teal.alpha.feed.play record’larını indeksleyerek müzik dinleme geçmişini (scrobble) görselleştirir
    • lex-gql aracıyla lexicon tabanlı GraphQL sorguları çalıştırılabilir
  • Bluesky içinde kullanıcılar kendi oluşturdukları özel feed algoritmalarını yayımlayabilir
    • Örnek olarak @spacecowboy17.bsky.social hesabının “For You” feed’i bağımsız çalışır ve paylaşılan veri üzerinde üçüncü tarafların işlevleri geliştirebilmesini sağlar

Sonuç

  • Sosyal dosya sistemi, uygulama merkezli değil veri merkezli bir internet yapısı önerir
  • Kullanıcılar kendi veri depolarına sahip olur ve uygulamalar bunun üzerinde tepkisel biçimde çalışır
  • Hedef, “her şeyi yapan bir uygulama” değil, “her şeyin mümkün olduğu bir ekosistem” oluşturmaktır

1 yorum

 
GN⁺ 2026-01-19
Hacker News görüşleri
  • Uygulamalar ortadan kaybolabilir ama dosyalar kalır
    swyx'in yazısı, uzun ömürlü işlerin eninde sonunda dosya/veri biçiminde var olduğunu vurguluyor
    Veri, izin gerektirmeden ayrıştırılabilir ve kısmen bozulsa bile hâlâ işe yarar; ancak ekonomik teşvikler hâlâ kod etrafında dönüyor
    Standartlar ortaya çıkıp kodun veri alıp vermesini sağladığında, bunun tüm medeniyet için büyük bir değeri olur
    Geliştirici ekosisteminin, Google, Microsoft, OpenAI ve Anthropic gibi şirketleri veri standardizasyonuna gönüllü olarak katılmaya yönlendirmesinin elimizdeki en güçlü kaldıraçlardan biri olduğunu düşünüyorum

    • “Dosyalar gerçeğin kaynağıdır” sözüne katılıyorum
      Ama bugünün uygulamaları reklam geliriyle yaşayan web siteleri biçiminde, bu yüzden böyle bir yapıyla çalışmaları için hiçbir teşvik yok
    • Google, MS, OpenAI ya da Anthropic'in istediğini vermek mutlaka karşılığının alınacağı anlamına gelmiyor
      Sadece Apple'a bakmak bile standartların her zaman dünyayı değiştirmediğini göstermeye yeter
    • Güzel :) “indirection yasası”nı ilk kez duyuyorum ama oldukça ilginç bir kavrammış
  • Eğer createdAt alanı keyfi bir değerse, istediğim gibi kayıtları geriye dönük olarak değiştirebilir miyim?
    İmzalama (signing) yoluyla oluşturulma zamanını ve sonradan değiştirilip değiştirilmediğini doğrulamanın bir yolu olup olmadığını merak ediyorum

  • POSSE ve AT Protocol, birlikte çalışabilen pazar yerleri olarak anlaşılabilir
    Reddit ya da Instagram'da olduğu gibi kullanıcı içeriği üründür, dikkat para birimidir ve platform reklam ya da davranış verisinden gelir elde eder
    Ama bu yapı kaçınılmaz değil
    Kullanıcı kendi sosyal verisinin sahipliğine sahip olursa, uygulama veriyi okuyan bir arayüze dönüşür
    Ben de benzer bir modeli ticarete uyguluyorum — satıcı kendi sipariş ve ödeme mantığını doğrudan barındırıyor, pazar yeri de satıcının API'siyle doğrudan entegre oluyor
    Böylece platform komisyonları azalıyor ve sahiplik değeri üreten tarafa geri veriliyor

    • Profilinde openship'i görüp merak etmiştim, gidip bizzat bakacağım
  • Yazı fazla detaylıydı; ana fikri aktarmak için biraz ağır geldi
    Yine de benzetme çok başarılı. PDS için bir dosya tarayıcısı olsaydı doğrudan deneyimlenebilirdi
    Bluesky'nin PDS'si temelde herkese açık bir dosya sistemi ve Git'te olduğu gibi çoğaltma (replication) tasarımın bir parçası
    Çoğaltma kontrol edilemez ama otomatik yedekleme avantajı da getiriyor
    Sonuçta PDS'ye yüklenen şey kalıcı kayıt gibi kaldığı için dikkatli olmak gerekir

    • Yazarken hedefim kafamdaki yapıyı olduğu gibi aktarmak
      Faydalı ama uzunsa, başkaları ihtiyaç duyduğu kısmı alabilir
      Yazının sonundaki demo bölümü gerçek bir dosya yöneticisi örneği gösteriyor
      “Herkesin scraper olduğu bir dünya” ifadesi özünü anlatıyor
    • pdsfs ile PDS'yi FUSE üzerinden yerelde salt okunur olarak bağlayabilirsiniz
    • pdsls.dev bunu iyi yapıyor. Tamamen istemci tarafında çalışan bir uygulama ve açık kaynak
    • atproto şifrelemesinin durumu nedir merak ediyorum. Sadece sha256 ile şifrelenmiş veri yayımlamak yeterli mi?
    • ATProto henüz tamamlanmış bir protokol değil ve özel veri desteği de yakında eklenecek
  • “Dosya” kavramının zaten eski kaldığını düşünüyorum
    Her şeyi hash tabanlı blob veri olarak ele almak birçok sorunu ortadan kaldırır
    Kullanıcının istediği şey uygulama değil, yetenek (capability)
    Örneğin istediği şey YouTube ya da Bluesky'nin kendisi değil, “yoga videosu izleyebilme” ya da “tanıdıklarla güncel durumunu paylaşabilme” yeteneğidir
    Uygulamalar sadece bu yeteneklerin paketlenmiş hâlidir
    Mesajlaşma uygulamasında bir kelimeyi arayıp sonucu doğrudan sohbet penceresinde paylaşabildiğiniz türden özelleştirilmiş iş akışları gerekiyor
    PerKeep'ten ilham aldım

    • Dosya sistemi mecazi bir ifade
      Bunu “uygulamalarla dosya formatları arasındaki çoktan çoğa ilişkiyi” anlatmak için kullandım
      ATProto'nun repository yapı açıklamasına bakarsanız, bunun Merkle-tree tabanlı içerik adreslemeli bir yapı olduğunu görürsünüz
      Lexicon uygulamalarla 1:1 ilişkili değil, dolayısıyla AT zaten uygulama sonrası (post-app) döneme yöneliyor
  • Ben kapalı platformların (walled garden) tüketici tercihinin sonucu olduğunu düşünüyorum
    İnternet her şeyi açınca insanlar belirli kültürler ya da fikirler etrafında küçük alanlar istemeye başladı
    IG ya da Snap böyle ayrışmış grup sohbetleri gibi
    IG gönderimin HN ya da Truth Social'da otomatik paylaşılmaması bana daha iyi geliyor
    Veri taşınabilirliğinin değeri bana çok anlamlı gelmiyor. Bağlamı farklı platformlar arasında geçiş yapmak anlamsız hissettiriyor

    • ATProto uygulamaları varsayılan olarak tüm “dosyaları” otomatik paylaşmaz
      Benim yaptığım Anisota, hem Bluesky hem Leaflet dosyalarını destekleyecek şekilde tasarlandı
      Örnek olarak aynı gönderiyi Bluesky ve Anisota üzerinde ayrı ayrı görebilirsiniz
      Ayrıca Aturi adlı projeyle ATProto tabanlı içerik için genel bağlantılar sağlıyorum
    • Twitter satın alındığında, kimliğimi, gönderilerimi, beğenilerimi ve sosyal grafiğimi olduğu gibi taşıyabilmeyi isterdim
      ATProto'da aynı Lexicon'u kullanan uygulamalar arasında kimliğin ve verinin tamamen taşınması mümkün
    • Ben de veri taşınabilirliği ihtiyacını pek görmüyorum
      Orijinal görseller zaten yerelde bende duruyor, her platform sadece farklı bir sunum biçimi
      Platformlar arasında anlamsız entegrasyonlar istemiyorum
    • Truth Social federasyon kodunu kaldırmasaydı, Mastodon vb. üzerinde yazılan gönderiler olduğu gibi görünürdü
    • Farklı uygulamaların kendi “havasını” koruması iyi bir şey
      AT sadece birlikte çalışabilirliği mümkün kılıyor, her şeyi birleştirmiyor
      Örneğin Leaflet, Bluesky gönderilerini alıntı takibi için içe aktarıp gösteriyor
      Bu yapı sayesinde ürünü fork'lasanız bile ağla tamamen uyumlu kalıyor ve rekabet canlanıyor
      Nitekim Blacksky, Bluesky'yi fork'layıp farklı moderasyon politikaları uygulayan bir örnek
  • Dan'in yazıları her zaman ilgi çekici. Okurken sonunda yazanın o olduğunu anlıyorsunuz

    • Teşekkürler :)
  • Kendini tanımlayan veri modeli (self-describing data model) konusunda şüpheliyim
    ATProto'nun “sadece Lexicon eklenince istemci oluşur” iddiası abartılı geliyor
    Gerçekte bir UI yapmak için verinin ne anlama geldiğini bilmek gerekiyor ve Lexicon tek başına yeterli değil
    Sonuçta belgeye bakıp kendin uygulamaktan çok da farklı değil
    Standardizasyon iyi ama bunun küresel ölçekte kopyalanan bir veritabanı düzeyinde ele alınması şart değil
    Yine de lock-in etkisini azaltma çabasını takdir ediyorum
    Ama Twitter'ın yaşadığı asıl sorun, siyasi içerik ya da spam gibi toplumsal etkenlerdi

    • Verdiğin örnekte istemci olmamasının nedeni sadece kimsenin ilgilenmemesi
      Ama Bento gibi sevilen bir hizmet ortadan kalkarsa, biri o veriyi geri getirmeye çalışacaktır
      Örneğin Blento, ATProto tabanlı bir Bento alternatifi ve açık kaynak olduğu için herkes yeniden ayağa kaldırabilir
      Böyle bir yapı, kullanıcı içeriğinin kalıcılığını güvence altına alma açısından anlamlı bir ilerleme
  • “The Unix Programming Environment”i okurken, basit araçlar ve metin dosyalarıyla bile çok şey yapılabildiğini fark ettim
    Slack, dosya merkezli UNIX tarzında yapılmış olsaydı nasıl olurdu diye düşündürüyor
    Basit ve birleştirilebilir sistemlere geri dönmek istiyorum

    • Unix harika mimari fikirler verdi ama tüm veriyi düz metin olarak ele almasının sınırları vardı
      İnsan tarafından okunabilir serileştirme iyi ama her seferinde ayrıştırıp yeniden biçimlendirmek acı veriyor
  • Yeni sosyal platformların dağıtık/federe ortamda ortak protokoller ve veri formatları paylaşması fikri ilgi çekici
    Ama mevcut ticari platformları buna ikna etmek zor görünüyor
    Böyle standartlar yerleşirse sosyal pazarlama araçları birden fazla ağı birlikte yönetmeyi daha kolay yapabilir
    Ancak gerçeklikte hâlâ Facebook, Instagram ve TikTok gibi kapalı ekosistemler baskın