- Kolaborasi open source berangkat dari kesadaran bahwa kombinasi protokol terdistribusi yang membagi peran pengiriman kode dan komunikasi lebih diinginkan daripada struktur yang sangat bergantung pada satu penyedia
- Kolaborasi kode awalnya dilakukan dengan kombinasi git dan email, lalu bergeser ke kombinasi git dan situs web GitHub, dan berlanjut ke ForgeFed dengan kombinasi git dan ActivityPub, serta Tangled dengan kombinasi git dan AT protocol
- Tangled memiliki struktur yang memfederasikan event di antara server git, dan menyebut tiap server sebagai knot; meski server berbeda, tetap mendukung kolaborasi repositori, fork lintas server, dan pull request ke repositori yang berada di server lain
- Untuk Authenticated Transfer di sekitar kode, Tangled memakai AT, menangani issues, pull requests, timeline event, follows, dan stars secara bersama, serta memanfaatkannya untuk undangan kolaborator dan berbagi kunci publik SSH
- Arah ini mirip dengan alur menjalankan instance cgit sendiri dan mengirim patch lewat email, sambil menunjukkan upaya untuk keluar dari monokultur GitHub dan tetap mempertahankan aspek sosial serta kesenangan dalam berkolaborasi
Perlunya federasi forge
- Struktur yang membuat sebagian besar kolaborasi open source bergantung pada satu penyedia bukanlah hal yang diinginkan, dan berpijak pada pandangan bahwa protokol terdistribusi bertahan lebih lama daripada sistem terpusat
- Kolaborasi kode selalu menggunakan dua protokol sekaligus: satu untuk pengiriman kode, dan satu lagi untuk komunikasi
- Alur awal adalah kombinasi git dan email
- Setelah itu berubah menjadi kombinasi git dan situs web GitHub
- ForgeFed membuka kemungkinan kombinasi git dan ActivityPub
- Tangled sedang dibangun dengan kombinasi git dan AT protocol
- Tangled memfederasikan event di antara server-server git, dan menyebut tiap server sebagai knot
- Kolaborasi repositori dimungkinkan di server mana pun
- Mendukung fork lintas server
- Setelah melakukan push ke repositori di server sendiri, pengguna dapat membuka pull request ke repositori yang di-host di server yang sepenuhnya berbeda
- Pendekatan ini dalam banyak hal mirip dengan alur menjalankan instance cgit sendiri sambil mengirim patch lewat email
Peran yang dijalankan Tangled
- Tangled menggunakan AT untuk Authenticated Transfer atas event di sekitar kode
- Digunakan untuk menyampaikan event seperti issues dan pull requests
- Juga menangani fitur sosial seperti timeline event, follows, dan stars
- vouches juga akan segera ditambahkan
- AT juga digunakan untuk undangan kolaborator dan berbagi kunci publik SSH, sementara bagian lainnya tetap memakai git yang sudah ada
- Open source perlu keluar dari monokultur seperti GitHub, sambil tetap mempertahankan aspek sosial dan kesenangan dalam kolaborasi kode
- tangled alpha
- docs
- source
- discord
- bluesky
- twitter (x)
- feed
1 komentar
Opini Hacker News
Saya tidak terlalu yakin ini akan jauh lebih baik daripada Mastodon
Ada lapisan hosting yang terpisah dari aplikasi, siapa pun bisa meng-host datanya sendiri, lalu aplikasi di atasnya mengumpulkan dan menampilkan data dari semua host
Jadi memang tidak ada konsep defederation ala Mastodon
Kalau ingin tahu lebih jauh, lihat https://overreacted.io/open-social/ dan https://overreacted.io/a-social-filesystem/
Akun di-host di PDS dan rekamannya juga masuk ke sana, tetapi yang ditampilkan di aplikasi disediakan oleh AppView yang mengumpulkan data dari banyak PDS
Jadi, di PDS mana pun akun berada, pengalaman di aplikasinya terasa seperti layanan terpusat; AppView juga bisa ada banyak dan bisa di-host sendiri
Memang ada biaya yang perlu dipikirkan dari terciptanya discoverability yang pada praktiknya bersifat global seperti sekarang, tetapi tetap sulit menyebut ini sekadar Mastodon versi lain
Bukankah cukup dengan tidak mengambil posisi, atau memakai yang menurut kita sendiri benar?
Saya mungkin bias karena cukup aktif memakai sisi atprotocol, tetapi saya benar-benar puas menggunakan Tangled
Ini yang paling mendekati gambaran pengganti GitHub yang saya inginkan; fiturnya memang lebih sederhana, tetapi selama setahun terakhir ini menjadi layanan social/git utama untuk proyek open source pribadi saya
Akun saya ada di https://tangled.org/did:plc:rnpkyqnmsw4ipey6eotbdnnf
Saya suka karena social graph yang saya kenal dari Bluesky ikut terbawa, jadi lebih intuitif untuk menghubungkan orang di balik commit, PR, dan issue; login-nya juga sama seperti layanan atproto lain sehingga praktis
Belakangan juga sudah ada dukungan bawaan untuk situs statis, jadi enak untuk langsung meng-host website client-side atau
index.htmlsederhana dari repoSpindles berperan sebagai sistem build/action, dan meski saya bukan penggemar Nix, untuk kebutuhan yang saya punya ini cukup cocok
open API-nya juga bagus, jadi saya bisa dengan mudah membuat renderer informasi memakai standar berbasis atproto, bikin bot juga, dan menambahkan beberapa fitur npmx.dev
Kita bisa menjalankan knot (server git) dan runner (Spindles) sendiri, atau memakai versi yang di-host; yang penting, fitur sosialnya dipisahkan, jadi walaupun server git-nya terpisah, percakapan issue atau PR tetap berlanjut di lapisan sosial bersama
Belum sempurna, dan label alpha di navbar itu bukan tanpa alasan, tetapi untuk kerja open source kemungkinan besar saya akan terus memakainya
Saya sendiri belum yakin apakah itu kekhawatiran yang benar-benar masuk akal
Nuansa komentarnya cukup negatif, tetapi meski saya juga cenderung waspada terhadap pendanaan VC, saya tetap melihat persaingan di area ini perlu didorong
Memulai hal seperti ini secara bootstrap di titik sekarang tampak sangat sulit, bahkan nyaris mustahil; memang benar timing-nya juga pas dengan tulisan kritik GitHub yang kemarin ada di puncak HN, tetapi tetap saja saya ingin mendukung upaya seperti ini
Saya harap ini bisa mapan pada skala yang berarti
Waktu hanya melihat judulnya saya sempat tertarik, tetapi begitu tahu ada pendanaan VC, langsung keluar dari daftar pertimbangan
Kalau saya mau menaruh proyek kesayangan saya yang bahkan tidak menghasilkan uang di sebuah platform, saya ingin memilih tempat yang kecil kemungkinan melakukan rug pull lima tahun dari sekarang
Proyek VC pada akhirnya harus mengembalikan investasi, jadi menurut saya pada suatu saat rug pull itu akan datang dalam bentuk apa pun
Karena itu, sekarang saya lebih suka layanan yang saya pakai sebagai pelanggan yang membayar, atau yang seperti koperasi di mana saya membayar iuran dan punya hak suara dalam pengambilan keputusan
Jadi dari sudut pandang pengguna, kemungkinan itu perlu diketahui sejak awal
Saya kurang suka layanan yang menjual idealisme berlebihan padahal realitas seperti itu sudah jelas di depan mata
Lebih baik menarik biaya layanan saja, atau kalau memang benar-benar idealis, mulai sebagai non-profit, atau setidaknya jelaskan dengan terang rencana monetisasinya
Sulit itu jelas, tetapi apalagi kalau arahnya federation, bukankah seharusnya bisa dibangun dengan infrastruktur yang justru lebih murah, bukan biaya yang sama atau lebih besar?
Kalau penasaran dengan model data atproto, saya menulis artikel pengantar di https://overreacted.io/a-social-filesystem/
Memang agak panjang, tetapi cukup jelas memberi gambaran besarnya
Dari semua tulisan pengantar ATProto yang pernah saya baca, ini yang terbaik
Saya penasaran apakah ada tag atau daftar khusus yang mengumpulkan tulisan-tulisan seperti ini di satu tempat
Menurut saya yang dibutuhkan bukan forge federation, melainkan git repo yang lebih kaya
Fossil sudah mendekati sekitar 90% ke sana dengan mengintegrasikan tiket, forum, dan wiki sebagai bagian dari repositori; saat di-clone, semua itu ikut terunduh dan bisa dilihat secara offline
Bahkan di pesawat pun kita bisa menulis balasan, lalu kalau izinnya sesuai, bisa langsung disinkronkan atau nanti ketika koneksi pulih
Tetapi alih-alih meng-hardcode jenis artefak tertentu ke dalam VCS, menurut saya lebih baik repo memuat aplikasi, lalu aplikasi itu sendiri yang menentukan artefak apa yang diizinkan, aturan apa yang berlaku, dan siapa boleh mengunggah/mengunduh apa serta kapan
forge tinggal menjalankan kebijakan itu dan merendernya untuk pengguna web sesuai kebutuhan
Dengan begitu, pindah ke forge lain pada akhirnya hanya menjadi soal push repo
Belakangan saya sedang membuat hal seperti sistem tiket atau agen sebagai flat files di dalam git repo, dan sekarang saya jadi berpikir itu perlu diperluas sampai ke pengelolaan repo itu sendiri
Sepertinya akan sangat bagus
Menurut saya masalah inti dari federated solution pada akhirnya adalah cold start
Kalau masuk ke server besar yang sudah ada, kita justru kembali memeluk masalah sentralisasi yang tadinya ingin dihindari, tetapi sebagai gantinya langsung mendapat jaringan yang besar sejak awal
Sebaliknya, kalau membuka server sendiri, jaringannya nol, discoverability nol, feed kosong, dan kita harus meyakinkan situs lain agar mau berfederasi atau setidaknya tidak memblokir hanya karena ini server satu orang
Saya tidak tahu apakah hanya saya yang merasa begitu, atau saya memang salah memahami federation
Bisa jadi ini cuma masalah khas Mastodon
Karena ia dirancang agar server-server individual dikumpulkan oleh AppView terpusat sehingga memberi satu tampilan yang konsisten seperti jaringan terpusat
Siapa pun bisa meng-host AppView
atproto tidak bekerja seperti tiap server adalah wilayah semi-terisolasi
Penjelasan dari sudut pandang sistem terdistribusi di https://atproto.com/articles/atproto-for-distsys-engineers menjelaskannya dengan baik
Kalau server besar mulai mencurigakan dari sisi moderasi, kebijakan, konten, atau masalah teknis, kita bisa relatif mudah keluar, lalu membesarkan atau pindah ke server lain yang juga cukup besar
Artinya, sejak awal sudah bisa ada tempat berlindung yang punya reputasi dan skala tertentu
Sudah ada forge alternatif seperti GitLab, Codeberg, freedesktop, Fedora, dan Debian, jadi selama visibilitas dan discoverability proyek tetap terjaga, itu bisa menjadi tempat evakuasi yang cukup aman
Tetapi setelah melihat proyek ini beberapa hari lalu, saya jadi berpikir ini benar-benar mungkin berhasil
Karena target penggunanya cukup banyak tumpang tindih dengan kalangan yang terbiasa self-hosting
Tidak perlu seluruh jaringan saya pindah ke sini; cukup subkelompok yang memang realistis akan masuk ke sini, itu saja sudah berguna
Biaya server frontend pasti sangat rendah, jadi rasanya hampir bisa dijalankan selamanya; data yang sesungguhnya juga disuplai oleh host lain
Fakta bahwa Tangled didukung VC terdengar bagi saya bukan sebagai jaminan stabilitas, melainkan tekanan untuk harus tumbuh apa pun caranya
Saya kurang melihat daya tariknya
Bahkan kalaupun federatif, kalau pengembangannya berhenti, siapa yang akan memperbaiki bug dan merawatnya?
Artinya, semuanya ingin dibuat sepenuhnya dapat direproduksi dan bisa di-self-host sepenuhnya dengan biaya minimal
Pendanaan VC hanyalah sarana, bukan tujuan; bagi dua pendiri asal India yang tinggal di Eropa, hibah butuh 4–12 bulan atau lebih untuk benar-benar cair sehingga nyaris tidak realistis
Jalan tercepat untuk membentuk tim, menyiapkan infrastruktur, dan mempercepat pengembangan adalah VC, dan mereka menghabiskan lebih dari 6 bulan untuk mencari partner yang sangat selaras dengan tujuan mereka
Tangled memang punya banyak pilihan desain yang menarik secara struktural, tetapi kodenya sendiri relatif sederhana, dan dari yang saya lihat langsung, tingkat kesulitan pemeliharaannya tampaknya tidak tinggi
Sebagian besar hanyalah Go modules yang terhubung longgar, ditambah HTML+CSS statis, sedikit TypeScript, dan Nix untuk orkestrasi
Kalau saya ingat dengan benar, kebutuhan hardwarenya juga sangat kecil, jadi pada skala sekarang satu orang pun bisa meng-host-nya sendiri
Sebagian besar beban infrastruktur yang nyata justru ditanggung oleh knots, spindles, PDS milik pengguna dan ekosistem atproto secara keseluruhan
Kenapa harus VC, dan kenapa tidak seperti Ladybird yang didukung sponsor perusahaan
Lalu kalau para investor mengharapkan imbal hasil 10x, kenapa saya harus menghabiskan waktu pada alat developer yang pada akhirnya akan enshittify?
Saya teringat lelucon bahwa kalau ada 4 standar lalu kita ingin menyatukannya dengan membuat standar baru, hasilnya justru jadi 5 standar
Terlepas dari lelucon itu, saya rasa perlu alasan yang lebih kuat kenapa ActivityPub tidak cukup
Sebelum kita mencoba memecahkan lagi masalah komunikasi terdesentralisasi dengan cara lain
Membenturkan keduanya itu mirip seperti bertanya, kalau sudah ada email, kenapa masih perlu web
ActivityPub seperti email: server bertindak sebagai inbox dan saling bertukar pesan
Sedangkan atproto seperti web: repositori pengguna meng-host data, lalu aplikasi mengumpulkan dan menampilkannya dari repo-repo itu
Karena perbedaan topology ini, sifatnya pun berbeda; di atproto, pengalaman aplikasi tidak putus meski pengguna mengganti hosting, dan siapa pun bisa membuat aplikasi baru berdasarkan data yang sudah ada
ActivityPub tidak memungkinkan hal semacam itu, dan pada akhirnya lebih mirip sekumpulan layanan kecil yang terpusat, di mana hosting dan aplikasinya menyatu lalu saling mengirim pesan
Ada juga alternatif GitHub yang berjalan di atas Nostr dan relatif matang: https://gitworkshop.dev/
Ide intinya adalah repositori bisa diunggah ke banyak relay nostr yang kompatibel dengan GRASP, jadi kalau satu server mati, sinkronisasi tetap bisa berlangsung secara transparan lewat tempat lain
Karena itu, kalau memilih server yang tepercaya, uptime-nya pada praktiknya bisa mendekati 100%, dan repositori, aktivitas, issue, dan sebagainya juga ditandatangani secara kriptografis
Dari namanya saja sepertinya sudah melanggar kebijakan merek dagang git
https://git-scm.com/about/trademark
Beberapa memberi pesan bahwa browser tidak mendukung URL ssh atau https, beberapa lain hanya menampilkan
Failed to load file treelalu terus loading tanpa akhirJadi saya kurang bisa menerima penilaian fairly mature itu
Saya sangat mendukung federation, tetapi saya memang tidak pernah benar-benar memahami kegunaan federation of forges
Sebenarnya data apa yang perlu dipertukarkan antarsesama forge?
Kenapa forge untuk Blender harus terhubung dengan forge untuk Ubuntu?
Nilai terbesar yang saya dapat dari GitHub adalah single sign-on untuk berpindah-pindah proyek; menurut saya forge independen pun bisa memberi banyak nilai yang sama hanya dengan mendukung social login, tanpa federation forge yang rumit
Kalau meng-host forge sendiri, kecuali namanya sudah sebesar Blender, tidak ada yang akan menemukan software itu
Karena itu, agar kodenya tidak hilang ke kehampaan, mirroring ke GitHub nyaris jadi keharusan
Kalau ingin menghindari itu dan membuat forge-forge kecil bisa bersaing sebagai satu kumpulan, diperlukan satu jaringan tunggal yang memungkinkan software ditemukan di host mana pun, dan ForgeFed memang menargetkan hal itu
Ini juga mengurangi gesekan karena kontributor pemula tidak harus membuat login khusus untuk tiap forge, meski itu lebih merupakan manfaat tambahan dari masalah yang saling terkait
GitHub hanya memecahkan UI, issue, dan PR dengan baik sehingga pemula pun bisa bekerja dari layar, dan proses itu yang membuatnya menjadi terpusat
federation lebih dekat dengan filosofi Git, tetapi tidak berarti harus sampai ke distribusi ekstrem di mana jika satu node mati, upstream hilang atau bahkan tidak bisa ditemukan
Git tidak menyelesaikan masalah ketersediaan, dan menurut saya federation bisa menutup kekurangan itu sambil tetap mempertahankan filosofi desentralisasinya
Harus ada cara mudah menemukan proyek open source yang tersebar di banyak server
Pencarian proyek GitHub hanya bekerja di dalam GitHub
Selain itu, sistem seperti ini juga bisa menjadi lebih resilient ketika host proyek hilang, mengubah kebijakan, atau diblokir oleh pemerintah
Lalu AppView mengumpulkan data dari banyak PDS dan menampilkannya dalam satu layar
Kalau tangled.org suatu hari enshittify, kita tetap bisa lanjut memakai semuanya dari AppView lain mana pun dengan cara yang sama, dan tangled.org sendiri tidak punya posisi istimewa
social login antar-forge independen memang membantu, tetapi secara pribadi saya lebih suka hanya punya satu akun untuk dikelola, dan berkat AT protocol, bahkan kalau sebuah forge hilang pun datanya tetap bisa diakses lewat AppView lain