- สร้างส่วนขยายสำหรับการท่องเว็บบนพื้นฐาน RSS feed เพื่อให้ผู้ใช้สามารถสำรวจและให้คะแนนคอนเทนต์จากเว็บไซต์อิสระแบบสุ่มได้
- แสดงเว็บไซต์ใหม่ได้ด้วยการคลิกปุ่ม และสร้างโครงสร้างการแนะนำแบบชุมชนผ่านฟังก์ชันถูกใจ·ไม่ถูกใจ·รายงาน
- สร้างแบ็กเอนด์ด้วย FastAPI และ SQLite และใช้รายการ RSS ของ small web จาก Kagi เพื่อทำดัชนีประมาณ 600,000 หน้า
- ไม่มีโฆษณาหรือการเก็บข้อมูลผู้ใช้ มอบประสบการณ์สำรวจคอนเทนต์เว็บที่น่าสนใจในช่วงเวลาสั้น ๆ อย่างเรียบง่าย
- โปรเจกต์ทดลองส่วนตัวที่ตั้งเป้าลดความเหนื่อยล้าจาก RSS reader แบบเดิม และมุ่งสู่การค้นพบระบบนิเวศของเว็บขนาดเล็กอีกครั้ง
ภาพรวมโปรเจกต์
- เริ่มต้นจากการตระหนักว่าประสบการณ์ใช้งาน RSS reader นั้นสร้างภาระ
- ชี้ให้เห็นถึงความกดดันจากบทความที่ยังไม่ได้อ่านสะสม และความไม่มีประสิทธิภาพของโครงสร้างคอนเทนต์ตามลำดับเวลา
- ผู้ใช้มีความต้องการที่จะสำรวจบทความที่น่าสนใจแบบสุ่ม
- ได้แรงบันดาลใจจากวิธีแนะนำคอนเทนต์ของ TikTok จึงออกแบบโครงสร้างที่นำเสนอคอนเทนต์จากเว็บไซต์ขนาดเล็กแบบสุ่ม
- เมื่อผู้ใช้ให้คะแนนคอนเทนต์ ความถี่ในการแสดงผลจะเพิ่มขึ้นตามจำนวนถูกใจ
- ใช้อัลกอริทึมแนะนำอย่างเรียบง่ายโดยไม่มีโฆษณาหรือการเก็บข้อมูลส่วนบุคคล
ฟีเจอร์และโฟลว์ของผู้ใช้
- ให้บริการในรูปแบบส่วนขยาย Firefox ดาวน์โหลดได้ที่ timewasterpro.xyz
- ผู้ใช้รับเว็บไซต์ใหม่ได้ด้วยการคลิกปุ่ม และให้คะแนนผ่าน Upvote/Downvote/Report
- ต้องสร้างบัญชี และหากลิงก์ที่ส่งได้รับความนิยมจากผู้ใช้อื่น อันดับจะสูงขึ้นบน Leaderboard
- แบ็กเอนด์จะครอว์ล RSS feed เป็นระยะและบันทึกลงฐานข้อมูล
- ตรวจสอบ 5 feed ทุก 600 วินาที และอัปเดตด้วยความถี่ไม่เกินวันละครั้ง
- URL ที่ถูกรายงานจะถูกย้ายไปยังคิวรอตรวจสอบ พร้อมบันทึกจำนวนถูกใจ·ไม่ถูกใจ
โครงสร้างเทคนิค
- เขียน API ด้วย FastAPI และจัดการฐานข้อมูลด้วย SQLAlchemy
- ใช้ SQLite สำหรับการจัดเก็บข้อมูล
- เริ่มต้นได้รวดเร็วและสำรองข้อมูลง่าย จึงเหมาะกับโปรเจกต์งานอดิเรก
- การยืนยันตัวตนใช้การสร้างบัญชีด้วยอีเมลแล้วตรวจสอบผ่านลิงก์
- เคยลองใช้การล็อกอินแบบ Passkey ด้วย แต่ถูกจำกัดจากความไม่เสถียรของ implementation ฝั่ง OSS
- ใช้การยืนยันตัวตนแบบ JWT แต่ประเมินว่าไม่มีประสิทธิภาพในแง่ประสบการณ์ผู้ใช้
- ใช้รายการ RSS จาก Kagi small web GitHub repository เป็นแหล่งข้อมูล
การออกแบบและประสบการณ์ผู้ใช้
- ใช้ไลบรารี System.css เพื่อสร้างสไตล์ Apple System OS ยุค 80~90
- สื่อสารทางภาพว่าเป็น “การทดลองส่วนตัว ไม่ใช่บริการระดับมืออาชีพ”
- ไม่สามารถแยกคีย์ลัดตามระบบปฏิบัติการได้ จึงกำหนดคงที่เป็นปุ่ม Alt
- พบปัญหาเรื่องการกำหนด ID แยกตามเบราว์เซอร์ในไฟล์
manifest.json ของส่วนขยาย
- ไม่มีการใส่เครื่องมือวิเคราะห์ ดังนั้นฟีดแบ็กจากผู้ใช้จึงเก็บจากปัญหาที่มีการรายงานเข้ามาโดยตรงเป็นหลัก
แผนในอนาคต
- มีแผนปรับปรุงโดยจัดหมวดหมู่คอนเทนต์ตามประเภท เพื่อให้ผู้ใช้เห็นแนวที่ชอบได้บ่อยขึ้น
- กำลังพิจารณาฟีเจอร์ย้ายคอนเทนต์ที่มี Downvote เกินระดับหนึ่งไปยังคิวแยก
- จำเป็นต้องมีโครงสร้างที่ช่วยให้ผู้ใช้ใหม่ได้พบกับ**‘คอนเทนต์ดี ๆ’ เป็นลำดับแรก**ในช่วงเริ่มต้น
- อยากขยายจำนวนเว็บไซต์อิสระในหมวดภาพถ่าย วิทยาศาสตร์ และงานฝีมือ
- ปัจจุบันทำดัชนีเสร็จแล้วประมาณ 600,000 หน้า และมีแผนจะเปิดเผยซอร์สโค้ดหลังจากทำให้เสถียร
1 ความคิดเห็น
ความเห็นจาก Hacker News
การคิดว่าต้องอ่านคอนเทนต์ทั้งหมดคือ ข้อบกพร่องของการออกแบบ UI ของรีดเดอร์
ปัญหาคือการแสดง RSS feed แบบเป็น "กล่องจดหมายเข้า" เหมือนอีเมล
ควรเข้าถึงมันในรูปแบบ "สายน้ำแห่งข่าวสาร (river of news)" ที่ไหลไปเรื่อย ๆ แบบ TikTok
แก่นสำคัญคือแวะดูเฉพาะบทความที่น่าสนใจสักครู่ แล้วปล่อยที่เหลือไหลผ่านไป
Twitter เองก็มีโครงสร้างคล้าย RSS โดยพื้นฐาน — แค่เป็นการเลื่อนดูโดยไม่มีการทำเครื่องหมายว่า "ยังไม่ได้อ่าน"
เพราะงั้นควรปิดตัวนับ "จำนวนรายการที่ยังไม่ได้อ่าน" คุณค่าของ RSS อยู่ที่ เราเลือกอ่านอะไร
ถ้าเป็นบทความที่ดีจริง สุดท้ายผู้ติดตามคนอื่นก็จะแชร์ลิงก์นั้นอยู่ดี
ฉันกลับชอบ รูปแบบกล่องจดหมายเข้า มากกว่าสายน้ำ
ฉันเองก็เคยพยายามสร้างระบบที่ค้นหาคอนเทนต์จากทั่วทั้งเว็บให้ตรงกับรสนิยมของฉันแบบอัตโนมัติ
ฉันก็เคยได้ข้อสรุปคล้ายกันเมื่อหลายปีก่อน
Twitter เป็นบริการแบบนั้น "เคยเป็น" เท่านั้น ตอนนี้ไม่ใช่แล้ว
ดูเหมือนบางคนกำลังใช้ RSS reader ผิดวิธี
RSS ไม่ใช่เครื่องมือสำหรับบริโภคทุกอย่างทั้งหมดแบบช่อง YouTube แต่เป็น เครื่องมือดูพาดหัวแล้วอ่านเฉพาะบทความที่น่าสนใจ
TikTok ยิ่งแย่กว่าอีก — มันเป็นโครงสร้างที่ตรึงคนไว้กับสตรีมคอนเทนต์ไม่รู้จบ
สำหรับคนแบบนี้ การใช้ ลิสต์อ่านภายหลัง น่าจะเหมาะกว่าการหา RSS reader ตัวใหม่
เอนจินแนะนำของ TikTok มีประสิทธิภาพมาก เพราะ วัดปฏิกิริยาในระดับคอนเทนต์เดี่ยว
ไม่จำเป็นต้องตัดสินว่ามีใครใช้ RSS "ผิด"
ตอนที่เคยใช้ NetNewsWire ฉันรู้สึกกังวลเพราะ ป้ายบทความที่ยังไม่ได้อ่าน
ฉันกำลังใช้ tt-rss เวอร์ชันปี 2005 ที่ปรับแต่งเอง
การแสดง สถานะ "ยังไม่ได้อ่าน" ของ Google Reader ทำให้มันดูเหมือนอีเมล เลยให้ความรู้สึกเหมือนเป็น "งานที่ต้องทำ"
หลายคนใช้ RSS เป็น คำนามทั่วไปสำหรับเว็บฟีด
ในการใช้งานจริง ประเด็นคือควรใช้ RSS, Atom หรือ JSON Feed แบบไหน
พอดแคสต์ก็ยังใช้ RSS เป็นพื้นฐานอยู่
ฉันใช้แค่ JSON Feed
รีดเดอร์ฟีดส่วนใหญ่น่าจะถูกสร้างโดยคนที่ไม่ได้ใช้ RSS จริง ๆ
ฉันจัดการฟีด 211 รายการในกว่า 20 หมวดหมู่ และมีรายการแคชอยู่ 13,000 รายการ
อัตราที่ฉันคลิกเปิดเนื้อหาจริงมีเพียงประมาณ 1–5%
เห็นด้วยมาก มีรีดเดอร์จำนวนมากที่ไม่มี ฟังก์ชันกรอง หรือโครงสร้างสำหรับรับมือกับบทความจำนวนมาก
ข้อดีของ RSS คือ เป็นอิสระจากอิทธิพลของอัลกอริทึมแนะนำ
ดีใจมากที่มีโปรเจ็กต์แบบนี้
เมื่อก่อนฉันชอบ StumbleUpon มาก เลยดีใจที่มีบริการคล้ายกันเกิดขึ้น
อยากให้มีใครสักคนทำ ภาคต่อของ DIGG
เห็นด้วยสุด ๆ มันให้ความรู้สึกคิดถึง StumbleUpon แต่ก็ดีตรงที่เราสามารถเลือก จุดโฟกัสของคอนเทนต์ เองได้
เผื่อยังไม่ทราบ Digg เพิ่ง กลับมาเปิดใหม่เป็นเวอร์ชันเบตา ไม่นานนี้
ฉันชอบการคัดสรรคอนเทนต์ของ RSS ที่ ไม่อิงอัลกอริทึม แต่ไม่ต้องการการคัดสรรที่เน้น "ความสนุก"
เรื่องการ คงลำดับเวลาของคอนเทนต์ หรือไม่นั้นขึ้นอยู่กับสถานการณ์
ขอแนะนำบริการชื่อ Scour
มันจัดอันดับบทความตามความเกี่ยวข้องกับความสนใจของผู้ใช้
สามารถดึง RSS feed เข้ามา หรือค้นหาจากแหล่งข้อมูลกว่า 15,000 แห่งได้
มันถูกออกแบบมาเพื่อหลีกเลี่ยงรายการ "ยังไม่ได้อ่าน" หลายพันชิ้น และเป็น เครื่องมือที่คัดเฉพาะบทความดี ๆ ให้
ฟังดูน่าสนใจ อยากรู้ว่ามีฟังก์ชันตัดฟีดบางรายการออกด้วย blacklist หรือไม่
กำลังพยายามแก้ปัญหา การจัดหมวดหมู่ของ RSS
ฟีดจำนวนมากไม่ใช้ฟิลด์ category เลยสร้าง crawler ที่ parse แฮชแท็กในช่องคำอธิบาย
เพื่อรักษา RSS "inbox zero" รายวัน ฉันจะเลิกติดตามบล็อกที่โพสต์ถี่เกินไป
มีแนวโน้มว่า ความถี่ในการโพสต์จะแปรผกผันกับคุณภาพของคอนเทนต์
ฉันติดตาม RSS ด้วยแอป Karakeep
เว็บไซต์ของฉันก็มีคอนเทนต์หลายประเภท แต่รีดเดอร์ส่วนใหญ่ไม่รองรับแท็ก category