- Memperluas konsep komputasi personal yang berpusat pada berkas ke komputasi sosial, dengan menjelaskan struktur di mana semua konten yang dibuat pengguna dimiliki oleh pengguna sendiri, bukan oleh aplikasi
- Berdasarkan protokol AT, artikel ini mengajukan konsep sistem berkas sosial terdistribusi yang memungkinkan interoperabilitas data antar aplikasi
- Setiap pengguna memiliki ‘everything folder’ atau repositori (repository) sendiri, tempat postingan, suka, dan follow disimpan sebagai berkas (record) berbasis JSON
- Melalui DID (Decentralized Identifier) dan skema URI
at://, sistem ini mempertahankan tautan yang dapat diidentifikasi secara permanen meski hosting atau handle berubah
- Struktur ini membentuk ekosistem sosial yang berpusat pada data, bukan aplikasi, sehingga siapa pun bisa membuat aplikasi baru yang berjalan di atas data yang sudah ada
Paradigma berkas dan perluasan sosial
- Berkas pada awalnya berada di ruang yang dikendalikan pengguna, bukan di dalam aplikasi, dan aplikasi hanya berperan sebagai alat untuk membaca dan menulis berkas
- Format berkas terbuka seperti
.svg memungkinkan banyak aplikasi berbagi data yang sama
- Di bawah prinsip “format berkas adalah API”, interoperabilitas antar aplikasi menjadi mungkin
- Jika konsep ini diterapkan pada aplikasi sosial, tindakan seperti postingan, follow, dan suka juga dapat diperlakukan seperti berkas
- Ada ‘everything folder’ yang menampung seluruh aktivitas online pengguna
- Aplikasi mencerminkan data dalam folder ini, dan folder tersebut berperan sebagai single source of truth
Protokol AT dan sistem berkas sosial
- Protokol AT adalah teknologi yang benar-benar mewujudkan struktur ini, dan Bluesky, Leaflet, Tangled, Semble, Wisp dan lainnya berjalan di atasnya
- Aplikasi tidak memiliki data pengguna; melalui penyimpanan data terpisah pada tingkat berkas, aplikasi baru dapat menggunakan kembali data yang sudah ada
- Folder semua pengguna bersama-sama membentuk sistem berkas sosial terdistribusi
Struktur record dan collection
- Setiap postingan direpresentasikan sebagai berkas JSON (record), dan tidak menyertakan informasi penulis atau data turunan seperti jumlah suka
- Contoh:
{ text: 'no', createdAt: '2008-09-15T17:25:00.000Z' }
- Nama berkas dibuat menggunakan kunci record berbasis timestamp (record key) untuk mencegah benturan
- Struktur berkas didefinisikan oleh skema yang disebut lexicon, dan tiap aplikasi dapat merancang lexicon-nya sendiri
- Contoh:
com.twitter.post, fm.last.scrobble, io.letterboxd.review
- Bahkan untuk konsep yang sama, tiap aplikasi dapat memiliki lexicon yang berbeda, dan benturan dihindari lewat namespace berbasis domain
Validasi dan kepercayaan
- Lexicon Police tidak ada — tidak ada aplikasi yang bisa memaksakan datanya kepada aplikasi lain
- Aplikasi memvalidasi data saat dibaca (validate on read), dan mengabaikannya jika tidak valid
- Saat lexicon berubah, kompatibilitas ke belakang wajib dijaga, dan perubahan yang merusak dipisahkan ke lexicon baru
- Lexicon dapat dipublikasikan secara terbuka, dan pembuktian kepemilikan domain dilakukan melalui DNS
Tautan dan identitas (Identity)
- Karena ‘suka’ atau ‘balasan’ yang dibuat pengguna perlu merujuk ke record lain, dibutuhkan sistem tautan permanen
- Setelah berbagai percobaan, identitas dibangun menggunakan DID (Decentralized Identifier)
- Pengenal seperti
did:plc:6wpkkitfdkgthatfvspcfmjo tidak dapat diubah
- Setiap DID diinterpretasikan menjadi dokumen yang memuat informasi hosting, handle, dan kunci publik saat ini
- URI
at:// menggabungkan DID, collection, dan record key untuk menyediakan tautan yang tidak rusak meski hosting berubah
- Contoh:
at://did:plc:6wpkkitfdkgthatfvspcfmjo/com.twitter.post/34qye3wows2c5
Hyperlink JSON dan representasi relasi
- Setiap ‘suka’, ‘repost’, dan ‘balasan’ memiliki struktur JSON bergaya hyperlink yang merujuk ke record lain
- Contoh: field
parent merujuk ke URI at:// milik postingan lain
- Semua informasi pada UI (penulis, teks, jumlah suka, dll.) dapat dihitung dari keterhubungan antar berkas ini
Repositori (Repository) dan aliran data
- ‘Everything folder’ milik pengguna disebut repositori (repository) dan diidentifikasi dengan DID
- Di dalamnya terdapat banyak collection dan record
- Repositori dapat di-host di mana saja, dan tautan tetap bertahan meski dipindahkan
- Aplikasi dapat membaca repositori seperti sistem berkas, atau berlangganan melalui stream (WebSocket) untuk sinkronisasi real-time
- Setiap commit diverifikasi dengan pohon hash bertanda tangan (Merkle tree) untuk mencegah pemalsuan data
- Server relay hanya meneruskan ulang event, dan kepercayaan diperoleh melalui struktur yang dapat diverifikasi
Menjelajahi Atmosphere dan contoh nyata
- pdsls.dev bekerja seperti penjelajah sistem berkas sosial dengan memasukkan DID atau handle
- Tiap collection dan record dapat dilihat langsung
- Aplikasi contoh Sidetrail mencerminkan perubahan record pengguna secara real-time, memperlihatkan bahwa data berada di repositori, bukan di aplikasi
- Demo teal.fm Relay memvisualisasikan catatan pemutaran musik (scrobble) dengan mengindeks record
fm.teal.alpha.feed.play, bahkan tanpa API nyata
- Dengan alat
lex-gql, pengguna dapat menjalankan kueri GraphQL berbasis Lexicon
- Di Bluesky, pengguna dapat mendistribusikan algoritme feed kustom yang mereka buat sendiri
- Contohnya, feed “For You” milik
@spacecowboy17.bsky.social berjalan secara independen, memungkinkan pihak ketiga meningkatkan fitur di atas data bersama
Kesimpulan
- Sistem berkas sosial menawarkan struktur internet yang berpusat pada data, bukan aplikasi
- Pengguna memiliki repositori data mereka sendiri, dan aplikasi beroperasi secara reaktif di atasnya
- Tujuannya adalah peralihan dari “aplikasi yang melakukan segalanya” menjadi “ekosistem tempat segala hal dimungkinkan”
1 komentar
Komentar Hacker News
Aplikasi bisa hilang, tetapi file tetap ada
Tulisan swyx menekankan bahwa pekerjaan yang bertahan lama pada akhirnya hadir dalam bentuk file/data
Data bisa di-parse tanpa izin dan tetap berguna meski sebagian rusak, tetapi insentif ekonomi masih tetap bergerak di sekitar kode
Jika standar muncul sehingga kode bisa menerima dan mengeluarkan data, itu akan menciptakan nilai besar bagi seluruh peradaban
Menurutku, salah satu tuas terkuat yang kita miliki adalah mendorong ekosistem developer agar perusahaan seperti Google, Microsoft, OpenAI, dan Anthropic secara sukarela ikut dalam standardisasi data
Tetapi aplikasi saat ini berbentuk situs web yang bergantung pada pendapatan iklan, jadi sama sekali tidak ada insentif bagi mereka untuk bekerja dengan struktur seperti itu
Lihat saja Apple, sering kali standar tidak cukup untuk mengubah dunia
Jika field
createdAtadalah nilai arbitrer, bukankah aku juga bisa merevisi catatan secara retroaktif sesukaku?Aku penasaran apakah ada cara untuk memverifikasi waktu pembuatan dan apakah ada perubahan setelahnya melalui penandatanganan (signing)
POSSE dan AT Protocol bisa dipahami sebagai marketplace yang interoperabel
Seperti Reddit atau Instagram, konten pengguna adalah produknya, perhatian adalah mata uangnya, dan platform menghasilkan uang lewat iklan atau data perilaku
Tetapi struktur seperti ini tidaklah tak terelakkan.
Jika pengguna memiliki kepemilikan atas data sosial mereka sendiri, aplikasi akan berubah menjadi antarmuka yang membaca data
Aku juga sedang menerapkan model serupa pada commerce — penjual meng-host sendiri logika pesanan dan pembayaran mereka, dan marketplace terintegrasi langsung dengan API milik penjual
Dengan begitu, biaya platform bisa ditekan dan kepemilikan dikembalikan kepada pihak yang menciptakan nilai
Tulisan ini terasa terlalu detail sehingga agak berlebihan untuk menyampaikan inti
Meski begitu, analogi yang dipakai sangat bagus. Kalau ada file browser untuk PDS, sepertinya orang bisa langsung merasakannya sendiri
PDS milik Bluesky pada dasarnya adalah filesystem publik, dan seperti Git, replikasi sudah masuk dalam desainnya
Replikasi tidak bisa dikendalikan, tetapi juga punya keuntungan berupa backup otomatis
Pada akhirnya, apa pun yang diunggah ke PDS akan tertinggal seperti catatan permanen, jadi harus hati-hati
Kalau itu berguna tetapi terlalu panjang, orang lain bisa mengambil bagian yang mereka perlukan
Di bagian demo pada akhir tulisan, ada contoh file manager yang nyata
Ungkapan “dunia di mana semua orang menjadi scraper” itulah intinya
Menurutku konsep “file” sendiri sudah ketinggalan zaman
Jika semuanya diperlakukan sebagai data blob berbasis hash, banyak masalah akan hilang
Yang diinginkan pengguna bukanlah aplikasi, melainkan kapabilitas
Misalnya “kemampuan menonton video yoga” atau “kemampuan membagikan kabar terbaru kepada kenalan”, bukan YouTube atau Bluesky itu sendiri
Aplikasi hanyalah bentuk yang menggabungkan kapabilitas-kapabilitas itu
Kita butuh workflow yang disesuaikan seperti bisa mencari kata di aplikasi pesan lalu langsung membagikan hasilnya di dalam jendela percakapan
Terinspirasi dari PerKeep
Ini dipakai sebagai metafora untuk menjelaskan “relasi many-to-many antara aplikasi dan format file”
Jika melihat penjelasan struktur repository di ATProto, bentuknya adalah struktur beralamat-konten berbasis Merkle-tree
Karena Lexicon bukan relasi 1:1 dengan aplikasi, AT sebenarnya sudah bergerak menuju era post-app
Aku menganggap walled garden adalah hasil dari preferensi konsumen
Ketika internet membuka semuanya, orang justru menginginkan ruang kecil yang berpusat pada budaya atau ide tertentu
IG atau Snap adalah semacam grup chat yang lebih tersegmentasi seperti itu
Aku malah senang postingan IG-ku tidak otomatis dibagikan ke HN atau Truth Social
Aku tidak terlalu merasakan nilai portabilitas data. Menurutku silang antarplatform dengan konteks berbeda tidak terlalu bermakna
Anisota yang kubuat dirancang untuk mendukung file Bluesky dan Leaflet sekaligus
Sebagai contoh, posting yang sama bisa dilihat masing-masing di Bluesky dan Anisota
Ada juga proyek bernama Aturi yang menyediakan tautan umum untuk konten berbasis ATProto
Di ATProto, jika aplikasinya memakai Lexicon yang sama, identitas dan data bisa dipindahkan sepenuhnya
Gambar asli ada di lokal milikku, dan tiap platform hanyalah representasi yang berbeda
Aku tidak menginginkan integrasi yang tidak bermakna antarplatform
AT hanya memungkinkan interoperabilitas, bukan menyatukan semuanya
Misalnya, Leaflet mengambil postingan Bluesky untuk pelacakan kutipan lalu menampilkannya
Berkat struktur ini, produk bisa di-fork tetapi tetap sepenuhnya kompatibel dengan jaringannya, sehingga persaingan jadi lebih hidup
Contoh nyatanya, Blacksky adalah fork dari Bluesky dengan kebijakan moderasi yang berbeda
Tulisan Dan selalu menarik. Saat membacanya, pada akhirnya kita sadar bahwa dia memang penulisnya
Aku skeptis terhadap model data yang mendeskripsikan dirinya sendiri (self-describing data model)
Klaim ATProto bahwa “cukup tambah Lexicon lalu klien akan muncul” terasa dilebih-lebihkan
Pada praktiknya, untuk membuat UI, kita tetap harus memahami makna data itu, dan Lexicon saja tidak cukup
Pada akhirnya tidak jauh berbeda dengan melihat dokumentasi lalu mengimplementasikannya sendiri
Standardisasi itu bagus, tetapi ini tidak sampai menjadi masalah setingkat DB yang direplikasi ke seluruh dunia
Meski begitu, aku tetap menghargai upaya untuk mengurangi lock-in
Hanya saja, masalah nyata yang dialami Twitter adalah faktor sosial seperti konten politik atau spam
Tetapi jika layanan yang dicintai seperti Bento menghilang, seseorang pasti akan mencoba memulihkan datanya
Misalnya Blento adalah layanan pengganti Bento berbasis ATProto, dan siapa pun bisa menjalankannya kembali karena open source
Struktur seperti ini adalah kemajuan yang bermakna untuk menjamin keberlangsungan konten pengguna
Saat membaca “The Unix Programming Environment”, aku sadar bahwa dengan alat sederhana dan file teks saja, kita bisa melakukan banyak hal
Aku jadi membayangkan bagaimana kalau Slack dibuat dengan gaya UNIX yang berpusat pada file
Aku ingin kembali ke sistem yang sederhana dan bisa dikombinasikan
Serialisasi yang mudah dibaca manusia itu bagus, tetapi harus parse dan memformat ulang setiap saat itu menyakitkan
Konsep platform sosial baru yang berbagi protokol umum dan format data dalam lingkungan terdistribusi/federatif itu menarik
Tetapi sepertinya akan sulit meyakinkan platform komersial yang sudah ada
Jika standar seperti ini mapan, alat social marketing akan lebih mudah mengelola banyak network secara terpadu
Namun kenyataannya, ekosistem tertutup seperti Facebook, Instagram, dan TikTok masih tetap mendominasi