9 poin oleh GN⁺ 4 jam lalu | 2 komentar | Bagikan ke WhatsApp
  • Chatto adalah aplikasi untuk chat grup dan tim; mirip dengan aplikasi chat grup seperti Slack, Teams, dan Discord, tetapi menargetkan pengalaman penggunaan yang lebih ringkas dan cepat
  • Server dapat dijalankan hanya dengan file executable dan menyediakan frontend-nya sendiri, sehingga relatif mudah dideploy di infrastruktur pribadi
  • Setiap server menangani satu komunitas, tanpa federasi antarserver maupun pelacakan/analitik pihak ketiga
  • Data pribadi dan chat dienkripsi saat disimpan dengan kunci per pengguna; saat akun dihapus, kunci tersebut dibuang
  • Ini adalah aplikasi chat grup dan tim yang dikembangkan selama sekitar satu tahun terakhir, dan kini resmi menjadi open source sehingga siapa pun dapat menjalankannya sendiri

Chatto dirilis untuk self-hosting

  • Chatto adalah aplikasi chat grup dan tim yang dikembangkan selama sekitar satu tahun terakhir, dan kini resmi menjadi open source sehingga siapa pun dapat menjalankannya sendiri
  • Cara tercepat untuk menjalankannya adalah menggunakan Homebrew
brew install chattocorp/tap/chatto  
chatto init  
chatto run  
  • Prosedur instalasi dapat dilihat di Getting Started Guide
  • Meski menargetkan penggunaan yang mirip dengan aplikasi chat grup seperti Slack, Teams, dan Discord, Chatto menekankan pengalaman yang lebih ringkas dan cepat
  • Cara kerjanya secara langsung dapat dilihat di Chatto HQ Community

Struktur server dan model keamanan

  • Dalam bentuk paling dasar, server dapat dijalankan dengan satu file executable, dan server juga menyajikan frontend-nya sendiri
  • Penggunaan resource rendah, dan data pribadi serta chat dienkripsi sepenuhnya saat disimpan dengan kunci per pengguna
    • Jika pengguna menghapus akunnya, kunci pengguna tersebut akan dibuang
  • Setiap server Chatto menjalankan satu komunitas
    • Tidak ada federasi data antarserver
    • Tidak ada pelacakan atau analitik pihak ketiga
    • Jika ingin berada di beberapa server sekaligus, klien terhubung langsung ke masing-masing server
    • Untuk meng-host beberapa komunitas, cukup jalankan beberapa proses Chatto
  • Mendukung panggilan suara/video dan berbagi layar secara bawaan
    • Panggilan dienkripsi end-to-end
    • Jumlah peserta dapat diperluas hingga batas yang mampu ditangani infrastruktur pengguna

File distribusi dan materi operasional

Chatto Cloud dan hosting berbayar

  • Chatto Cloud akan segera masuk ke beta publik, dan hanya menyediakan hosting server Chatto berbayar
    • Tidak ada langganan premium, iklan, atau elemen tambahan lainnya; hanya hosting
  • Infrastruktur saat peluncuran terdiri dari infrastruktur Eropa dan milik Eropa
    • Lebih banyak region direncanakan hadir pada awal 2027
    • Semua server Chatto Cloud menyediakan autoscaling, backup data penuh setiap malam, dan upgrade versi tanpa downtime
  • Chatto Cloud diarahkan agar tidak menciptakan lock-in
    • Server yang di-host di Chatto Cloud 100% kompatibel dengan server self-hosted
    • Data dapat dipindahkan kapan saja masuk atau keluar dari Chatto Cloud

Status 0.4 dan rencana menuju 1.0.0

  • Versi Chatto saat ini adalah 0.4
    • Dianggap cukup stabil untuk penggunaan produksi
    • Masih ada beberapa fitur penting yang belum tersedia
    • Rencana lengkap dapat dilihat di Chatto Roadmap
  • Fokus Chatto 0.5 adalah fitur keamanan dan peningkatan klien
    • Mencakup pelaporan konten dan fitur moderasi
    • Secara khusus berfokus pada penyempurnaan fitur multi-server
  • Chatto 1.0.0 diperkirakan akan tercapai sekitar 6–12 bulan lagi
    • Sebelum itu, mungkin ada perubahan yang bersifat breaking
    • Pengguna self-hosting perlu siap memperbarui saat versi baru dirilis
  • Kabar rilis atau notifikasi dimulainya beta Chatto Cloud dapat diterima melalui newsletter Chatto announcements, dengan frekuensi pengiriman sekitar sebulan sekali

2 komentar

 

Saya sedang memakai Mattermost, tetapi rasanya mereka terus mengarahkan ke sisi enterprise dan mengurangi fitur di versi OSS,
jadi kalau sudah cukup matang, saya ingin mencoba membuat tool untuk migrasi dari Mattermost.

 
GN⁺ 4 jam lalu
Opini Hacker News
  • Menarik karena tampaknya dirancang agar sangat mudah untuk self-hosting di infrastruktur sendiri. Dari dokumentasinya (https://docs.chatto.run/), Chatto didistribusikan sebagai biner kecil yang mandiri, menggunakan NATS, message broker ringan dengan engine persistensi stream bawaan, dan juga bisa dikonfigurasi dengan object storage eksternal yang kompatibel dengan S3
    Panggilan aktual dijalankan dengan LiveKit (Apache-2.0) dan perlu dideploy bersama Chatto; bagus juga karena mereka menunjukkan konfigurasi koneksi yang membutuhkan contoh deployment seperti NATS. Ini proyek yang hebat karena bukan cuma omongan, tapi punya panduan nyata

    • Keren sekali. Selalu bagus kalau pilihan makin banyak. Tapi dari dokumentasinya, agak membingungkan apakah ada aplikasi desktop
      Dari tangkapan layarnya sepertinya ada, tapi saya tidak bisa menemukan dokumentasi untuk mengunduhnya
    • Saya penasaran apakah ini bisa dipasang di tempat yang mudah dan murah, atau nyaris gratis, seperti Cloudflare atau Vercel
  • Saya sudah mengenal Hendrik selama beberapa tahun, dan dia termasuk salah satu developer paling berbakat yang pernah saya temui. Saya yakin proyek ini akan sukses dengan sangat cepat
    Proyeknya sendiri menarik, tapi yang особенно mengesankan adalah fakta bahwa dia mengembangkannya sendirian dengan memanfaatkan agentic coding

    • Saya mengenalnya secara pribadi hampir 30 tahun, dan dia masih menjadi salah satu developer paling cerdas, berpengalaman, dan penuh rasa ingin tahu yang pernah saya temui
      Secara keseluruhan orang yang baik, dan saya akan senang bekerja dengannya lagi kapan saja
    • Penasaran apakah ada hal menarik lain yang pernah dia buat
    • Saya sempat tertarik sesaat, tapi justru komentar ini membuat saya merasa harus menghindarinya
  • Kalau ingin menjual ini ke perusahaan, bagian “ketika pengguna menghapus akun mereka, kunci per pengguna akan dimusnahkan” perlu dipikirkan lagi. Pesan kerja bukan milik pribadi pengguna, melainkan milik pemberi kerja, jadi perlu ada soft delete

    • Untuk kasus seperti itu, sepertinya cukup dengan tidak mengizinkan pengguna menghapus akunnya sendiri. Meski begitu, untuk sebagian besar pengguna dan penyedia Chatto, pendekatan yang otomatis mematuhi hak untuk dihapus tetap terlihat baik
    • Bisa jadi pemberi kerja memang bukan target pelanggannya
  • Lucu juga karena dalam bahasa Portugis, “chato” berarti “membosankan”. Tapi ini terlihat sangat mudah diatur dan digunakan
    Saya menyambut lebih banyak software yang membosankan

    • Bisa juga berarti “menyebalkan”. Sebelum menentukan nama proyek atau perusahaan, sebaiknya selalu cari tahu setidaknya di 10 bahasa teratas berdasarkan jumlah pengguna apakah ada makna buruknya
      Dalam bahasa Portugis/Spanyol, cukup sering ternyata itu slang NSFW
  • Keren. Tapi dari situs webnya tidak jelas sama sekali apakah ada dukungan mobile
    Kalau mau memindahkan perusahaan atau teman-teman ke sini, dukungan mobile itu wajib

    • Sepertinya itu memang ada di rencana
      https://github.com/orgs/chattocorp/projects/1?pane=issue&ite...
    • Perlu diingat bahwa untuk mengirim notifikasi ke aplikasi iOS, penerbit aplikasinya yang harus mengirim notifikasi. Artinya perlu menjalankan layanan proxy pengiriman event
      Sepertinya Mattermost, Element/Matrix, dan mungkin sebagian atau seluruh klien ActivityPub melakukan ini. Kalau tidak, arti dari self-host server adalah aplikasi kliennya juga harus didistribusikan sendiri lewat App Store dan biaya program developer Apple
  • Saya akan terus memantau ini. Saat ini saya memakai Mattermost, tapi skema harganya cukup naik-turun dan berorientasi enterprise, jadi untuk sekarang saya masih memakai versi open source yang fiturnya sangat dibatasi
    Selain itu, saya merasa fitur panggilan video di sana kurang memadai, jadi senang melihat Chatto punya fitur itu

  • Saya penasaran alasan adanya dual license. Backend Go-nya AGPL, tapi frontend TypeScript-nya tampaknya Apache 2.0
    Saya ingin tahu kenapa tidak semuanya dibuat AGPL

    • Menjadikan backend AGPL bisa mencegah orang lain meng-host-nya sebagai layanan. AGPL menganggap hosting sebagai distribusi, jadi siapa pun yang meng-host-nya harus membuka kodenya
      Jadi itu memberi bentuk eksklusivitas ringan untuk menjalankan Cloud sendiri. Sementara itu, frontend lebih masuk akal memakai lisensi yang lebih permisif jika ingin mengizinkan kustomisasi, white-labeling, dan sebagainya
      Grafana adalah contoh yang bagus. Pada 2021 mereka pindah dari Apache ke AGPLv3 agar penyedia cloud tidak bisa meng-host versi modifikasi tanpa berkontribusi balik, sementara plugin tetap memakai lisensi Apache
    • AGPL mencegah pihak lain memakai backend Go untuk menjalankan layanan cloud yang bersaing. Untuk frontend, efeknya nyaris tidak ada dan hanya akan membuat pengguna enterprise takut
  • Akan sangat bagus kalau setelah self-hosting, kita bisa membuat paket atau tautan yang menangani unduh, instalasi, sampai pra-konfigurasi login. Semacam installer khusus atau skrip konfigurasi yang terhubung ke orang tertentu
    Tujuannya adalah meminimalkan friksi onboarding semaksimal mungkin. Mungkin ada implikasi keamanan, misalnya kalau tautannya tak sengaja dibagikan, tapi untuk instance self-host kecil rasanya itu cukup mudah dimitigasi. Bisa juga dibuat hanya bekerja untuk akun lokal
    Dengan begitu akan mudah mengirim tautan ke teman sambil bilang, “ayo ngobrol dengan saya di sini”, tanpa perlu khawatir mereka menjawab, “saya sudah pakai Discord jadi malas mengatur yang beginian”

    • Saya penasaran apa yang diharapkan selain “saya kasih tautan instance, lalu daftar di sana”. Dikombinasikan dengan peran ala Discord, visibilitas channel dan izin bisa dibatasi berdasarkan peran
      Jadi meskipun orang lain ikut bergabung, misalnya mereka tidak akan diberi peran “grup internal”. Apakah yang dimaksud semacam tautan undangan dengan token sekali pakai
  • Sangat bagus. Dulu saya pernah punya ide serupa: banyak perusahaan menginginkan sesuatu untuk mengumpulkan notifikasi dan menjalankan aksi bot sederhana, tapi tidak harus terikat ke penyedia chat tertentu
    Akan sangat menarik kalau ini bisa dipakai sebagai frontend untuk berbagai integrasi, atau bahkan hanya untuk chat internal

  • Saya ingin tahu apa kelebihan dan kekurangan Chatto dibandingkan Mattermost
    Tambahan lagi, backend Chatto yang diimplementasikan dengan Go sangat menyenangkan untuk dilihat. Go memang sangat cocok untuk use case seperti ini