15 poin oleh GN⁺ 2025-12-08 | 1 komentar | Bagikan ke WhatsApp
  • Membuat ekstensi penjelajahan web berbasis feed RSS agar pengguna dapat menjelajahi dan menilai konten dari situs web independen secara acak
  • Menampilkan situs baru dengan klik tombol, dan membentuk struktur rekomendasi berbasis komunitas melalui fitur suka, tidak suka, dan laporkan
  • Menyusun backend dengan FastAPI dan SQLite, serta memanfaatkan daftar RSS small web milik Kagi untuk mengindeks sekitar 600 ribu halaman
  • Tanpa iklan atau pengumpulan data pengguna, menawarkan pengalaman menjelajahi konten web menarik dalam waktu singkat
  • Proyek eksperimental pribadi yang bertujuan mengurangi kelelahan dari pembaca RSS lama dan menemukan kembali ekosistem web kecil

Gambaran proyek

  • Berangkat dari kesadaran bahwa pengalaman menggunakan pembaca RSS terasa membebani
    • Menunjukkan masalah tekanan karena artikel yang belum dibaca terus menumpuk, serta inefisiensi struktur konten yang diurutkan berdasarkan waktu
    • Pengguna ingin menjelajahi tulisan menarik secara acak
  • Terinspirasi dari cara rekomendasi TikTok, dirancang struktur yang menyajikan konten dari situs web kecil secara acak
    • Jika pengguna menilai konten, frekuensi tampil meningkat sesuai jumlah suka
    • Menerapkan algoritme rekomendasi sederhana tanpa iklan atau pengumpulan data pribadi
Iklan

Fitur dan alur pengguna

  • Tersedia dalam bentuk ekstensi Firefox, dapat diunduh dari timewasterpro.xyz
  • Pengguna menerima situs web baru dengan klik tombol, lalu menilai dengan Upvote/Downvote/Report
  • Perlu membuat akun, dan jika tautan yang dikirim menjadi populer di kalangan pengguna lain, peringkat akan naik di Leaderboard
  • Di backend, feed RSS dirayapi secara berkala lalu disimpan ke basis data
    • Memeriksa 5 feed setiap 600 detik, dengan frekuensi pembaruan tidak lebih dari sekali per hari
    • URL yang dilaporkan dipindahkan ke antrean peninjauan, dan jumlah suka/tidak suka dicatat

Susunan teknologi

  • Menulis API dengan FastAPI, dan mengelola basis data dengan SQLAlchemy
  • Penyimpanan data menggunakan SQLite
    • Karena mudah untuk mulai cepat dan melakukan pencadangan sederhana, cocok untuk proyek hobi
  • Autentikasi menggunakan pembuatan akun berbasis email lalu verifikasi melalui tautan
    • Login Passkey juga sempat dicoba, tetapi terbatas karena implementasi OSS yang kurang stabil
    • Menggunakan autentikasi JWT, tetapi dinilai kurang efisien dari sisi pengalaman pengguna
    Iklan
  • Memanfaatkan daftar RSS dari repositori GitHub Kagi small web sebagai sumber data

Desain dan pengalaman pengguna

  • Menggunakan pustaka System.css untuk menghadirkan gaya Apple System OS era 80–90-an
    • Secara visual menyampaikan bahwa ini adalah “eksperimen pribadi, bukan layanan profesional”
  • Karena tidak bisa membedakan pintasan keyboard per OS, dikunci ke tombol Alt
  • Mengalami masalah penentuan ID per browser dalam pengaturan manifest.json ekstensi
  • Karena tidak menyertakan alat analitik, umpan balik pengguna dikumpulkan terutama dari masalah yang dilaporkan langsung

Rencana ke depan

  • Berencana meningkatkan fitur dengan mengelompokkan konten berdasarkan kategori agar pengguna lebih sering melihat genre yang disukai
  • Meninjau fitur untuk memindahkan konten dengan Downvote di atas ambang tertentu ke antrean terpisah
  • Perlu menyiapkan struktur agar pengguna baru lebih dulu melihat ‘konten bagus’ pada tahap awal
  • Berharap menambah situs web independen di bidang fotografi, sains, dan kerajinan
  • Saat ini sekitar 600 ribu halaman telah diindeks, dan kode sumber akan dibuka setelah stabil

1 komentar

 
GN⁺ 2025-12-08
Komentar Hacker News
  • Gagasan bahwa semua konten harus dibaca adalah cacat dalam desain UI reader

    • Masalahnya ada pada cara feed RSS ditampilkan sebagai ‘kotak masuk’ seperti email

    • Harus didekati seperti ‘river of news’ yang mengalir, seperti TikTok

    • Intinya adalah mampir sebentar ke tulisan yang menarik, lalu membiarkan sisanya lewat begitu saja

    • Twitter pada dasarnya juga punya struktur yang mirip RSS — hanya saja orang cukup scroll tanpa penanda ‘belum dibaca’

    • Karena itu, sebaiknya matikan penghitung ‘item belum dibaca’. Nilai RSS ada pada apa yang kupilih untuk kubaca

    • Kalau artikelnya benar-benar bagus, pada akhirnya pelanggan lain akan membagikan tautannya

    • Aku lebih suka model kotak masuk daripada ‘river’

      • Kalau feed sudah diatur per kategori, menandai ‘semua telah dibaca’ juga tidak sulit
      • Sebaliknya, feed yang terlalu sering mem-posting langsung ku-unsubscribe. Blog yang posting setiap hari terlalu berat untuk diikuti
    • Aku juga pernah mencoba membuat sistem yang otomatis menemukan konten yang cocok dengan seleraku dari seluruh web

      • Pada akhirnya aku sadar pentingnya sumber data berkualitas tinggi, lalu sampai pada kesimpulan bahwa cukup berlangganan segelintir orang yang bagus
      • Setelah dipikir lagi dari awal, ternyata itu memang RSS — konsep yang sudah matang sejak 2005
    • Aku juga mendapat pencerahan serupa beberapa tahun lalu

      • Karena tidak ingin melacak apa yang sudah kubaca, aku membuat bot untuk tiap feed RSS lalu mencerminkannya ke Diaspora
      • Sekarang aku pindah ke Mastodon, tapi prinsipnya sama — cukup scroll dan hanya melihat tulisan yang menarik
    • Twitter dulu memang layanan seperti itu, sekarang tidak lagi

  • Sepertinya ada orang yang memakai RSS reader dengan cara yang salah

    • RSS bukan alat untuk menghabiskan semua konten seperti channel YouTube, melainkan alat untuk melihat judul lalu hanya membaca yang menarik

    • TikTok justru lebih buruk — strukturnya dibuat untuk terus menahan orang dalam aliran konten tanpa akhir

    • Untuk orang seperti ini, mungkin daftar ‘baca nanti’ lebih cocok daripada RSS reader baru

    • Mesin rekomendasi TikTok sangat efisien karena mengukur respons per unit konten tunggal

      • Sementara itu, YouTube membuat kita memilih satu dari banyak thumbnail, sehingga kehilangan informasi tentang 9 yang tidak diklik
      • Bukan algoritmenya yang buruk, masalahnya ada pada apa yang dioptimalkan
      • Reader buatanku juga menampilkan satu konten dalam satu waktu seperti TikTok, tetapi isinya terdiri dari paper ilmiah atau tulisan tentang LLM yang kukirim sendiri
    • Tidak perlu langsung menyimpulkan bahwa seseorang ‘memakai RSS dengan salah’

      • Cara konsumsi konten hanya berubah dari ‘membaca yang baru naik sekarang’ menjadi ‘mengejar tumpukan yang kusimpan’
      • YouTube juga bisa dipakai dengan prinsip yang sama
    • Dulu saat memakai NetNewsWire aku merasa cemas karena badge artikel belum dibaca

      • Kalau sekarang kupakai lagi, aku akan mematikan badge itu dan otomatis menandai artikel yang berusia lebih dari 2 hari sebagai sudah dibaca
    • Aku masih memakai tt-rss versi 2005 yang sudah kukustomisasi

      • Ada feed yang kubaca dari awal sampai akhir, ada juga yang hanya sesekali kupindai
      • Nanti aku ingin menambahkan feed algoritmis berbasis sistem rekomendasi
      • Aku terutama ingin bereksperimen dengan feed rekomendasi terdesentralisasi berbasis ‘artikel yang diberi bintang/tag’ oleh penulis yang sering kubaca
    • Penanda ‘belum dibaca’ di Google Reader terlihat seperti email, sehingga terasa seperti ‘tugas yang harus dikerjakan’

      • Itu adalah UI yang membuat aktivitas sekadar memindai judul terasa seperti ‘pekerjaan’
  • Banyak orang memakai RSS sebagai istilah umum untuk web feed

    • Dalam implementasi nyata, pertanyaannya adalah apakah harus memakai RSS, Atom, atau JSON Feed

    • Podcast masih memakai RSS sebagai dasar

    • Aku hanya memakai JSON Feed

      • Berkat strukturnya yang sederhana, format ini berjalan baik di sebagian besar reader dan mudah ditangani secara terprogram
      • Saat membuat feed sendiri, aku 100% memakai JSON Feed. Aku tidak merasa ada alasan khusus untuk memakai Atom
  • Kebanyakan feed reader terasa seperti dibuat oleh orang yang sebenarnya tidak memakai RSS

    • Aku mengelola 211 feed dalam sekitar 20 kategori, dengan 13.000 item cache

    • Rasio klik untuk membuka isi artikel sebenarnya hanya sekitar 1~5%

    • Sangat setuju. Banyak reader yang tidak punya fitur filtering atau struktur untuk menangani artikel dalam jumlah besar

  • Kelebihan RSS adalah bebas dari pengaruh algoritme rekomendasi

    • Artikel dari domain tertentu tidak akan terus-menerus ditampilkan ulang, dan kita bisa melihat tulisan dari beragam bidang dengan lebih seimbang
    • Ini terasa seperti kembali ke model aliran informasi linear yang lebih tradisional
  • Senang sekali melihat proyek seperti ini

    • Dulu aku sangat suka StumbleUpon, jadi senang ada layanan yang mirip

    • Semoga ada yang membuat penerus DIGG

    • Sangat setuju. Ini membangkitkan nostalgia StumbleUpon, sekaligus bagus karena kita bisa memilih sendiri fokus kontennya

    • Sebagai catatan, Digg baru-baru ini diluncurkan ulang dalam versi beta

  • Aku suka kurasi RSS yang non-algoritmis, tapi tidak menginginkan kurasi yang berfokus pada ‘kesenangan’

    • Aku ingin menghindari struktur yang mendorong ‘engagement’ seperti TikTok
    • Alasan aku kembali memakai RSS adalah agar bisa terhubung langsung dengan penulis yang kusukai
    • Kalau nanti kontennya makin banyak, kurasi bergaya newsletter mingguan di mana algoritme merangkum konten mungkin akan ideal
  • Apakah urutan waktu konten dipertahankan atau tidak bergantung pada situasi

    • Aku pernah membayangkan UX untuk menyelesaikan masalah ini di RSS reader atau podcast, tapi belum menemukan solusi yang bagus
  • Merekomendasikan layanan bernama Scour

    • Layanan ini memberi peringkat pada artikel yang paling relevan dengan minat pengguna

    • Bisa mengimpor feed RSS atau mencari dari lebih dari 15.000 sumber

    • Dirancang sebagai alat yang memilihkan hanya artikel bagus, sehingga terhindar dari ribuan item ‘belum dibaca’

    • Terdengar menarik. Aku penasaran apakah ada fitur untuk mengecualikan feed tertentu lewat blacklist

  • Sedang mencoba menyelesaikan masalah klasifikasi kategori di RSS

    • Karena banyak feed tidak memakai field category, aku membuat crawler yang mem-parsing hashtag dari kolom deskripsi

    • Agar bisa menjaga RSS ‘inbox zero’ setiap hari, aku unsubscribe dari blog yang terlalu sering mem-posting

    • Ada kecenderungan bahwa frekuensi posting dan kualitas konten berbanding terbalik

    • Aku berlangganan RSS lewat aplikasi Karakeep

      • Aplikasi itu menyimpan konten secara otomatis dan membuat tag dengan AI generatif
      • Karena bisa membuat feed RSS berbasis kondisi, aplikasi ini enak dipakai bersama reader yang sudah ada
    • Website-ku juga menyediakan beberapa jenis konten, tetapi karena kebanyakan reader tidak mendukung tag category

      • Pada akhirnya aku membedakannya dengan cara menambahkan prefiks seperti [Blog] pada judul