RSS를 더 재미있게 만들기

3 days ago 5

  • RSS 피드 기반 웹 탐색 확장 프로그램을 제작해, 사용자가 무작위로 독립 웹사이트 콘텐츠를 탐색하고 평가할 수 있도록 구현
  • 버튼 클릭으로 새 사이트를 표시하고, 좋아요·싫어요·신고 기능을 통해 커뮤니티 기반 추천 구조 형성
  • FastAPI와 SQLite를 사용해 백엔드 구성, Kagi의 small web RSS 목록을 활용해 약 60만 개 페이지를 인덱싱
  • 광고나 사용자 데이터 수집 없이, 단순히 짧은 시간 동안 흥미로운 웹 콘텐츠를 탐색하는 경험 제공
  • 기존 RSS 리더의 피로감을 줄이고, 작은 웹 생태계의 재발견을 목표로 한 개인 실험적 프로젝트

프로젝트 개요

  • RSS 리더 사용 경험이 부담스럽다는 문제의식에서 출발
    • 읽지 않은 글이 쌓이는 압박감, 시간순 콘텐츠 구조의 비효율성 지적
    • 사용자는 무작위로 흥미로운 글을 탐색하고 싶다는 욕구 표현
  • TikTok의 추천 방식에서 착안해, 작은 웹사이트 콘텐츠를 무작위로 제공하는 구조 설계
    • 사용자가 콘텐츠를 평가하면, 좋아요 수에 따라 노출 빈도 증가
    • 광고나 개인 데이터 수집 없이 단순한 추천 알고리듬 적용

기능 및 사용자 흐름

  • Firefox 확장 프로그램 형태로 제공, timewasterpro.xyz에서 다운로드 가능
  • 사용자는 버튼 클릭으로 새 웹사이트를 받고, Upvote/Downvote/Report로 평가
  • 계정 생성 필요, 제출한 링크가 다른 사용자에게 인기를 얻으면 Leaderboard에서 순위 상승
  • 백엔드에서 RSS 피드를 주기적으로 크롤링해 데이터베이스에 저장
    • 600초마다 5개 피드를 확인, 하루에 한 번 이하 빈도로 업데이트
    • 신고된 URL은 검토 대기열로 이동, 좋아요·싫어요 횟수 기록

기술 구성

  • FastAPI로 API 작성, SQLAlchemy로 데이터베이스 관리
  • 데이터 저장은 SQLite 사용
    • 빠른 시작과 간단한 백업이 가능해 취미 프로젝트에 적합
  • 인증은 이메일 기반 계정 생성 후 링크 검증 방식
    • Passkey 로그인도 시도했으나 OSS 구현의 불안정성으로 제한적
    • JWT 인증 사용, 그러나 사용자 경험 측면에서 비효율적이라 평가
  • Kagi small web GitHub 저장소의 RSS 목록을 데이터 소스로 활용

디자인 및 사용자 경험

  • System.css 라이브러리를 사용해 80~90년대 Apple System OS 스타일 구현
    • “전문 서비스가 아닌 개인 실험”임을 시각적으로 전달
  • 키보드 단축키를 OS별로 구분하지 못해 Alt 키로 고정
  • 확장 프로그램의 manifest.json 설정에서 브라우저별 ID 지정 문제를 겪음
  • 분석 도구를 포함하지 않아, 사용자 피드백은 직접 보고된 문제 중심으로 수집

향후 계획

  • 콘텐츠를 카테고리별로 분류해 사용자가 선호 장르를 더 자주 볼 수 있도록 개선 예정
  • Downvote가 일정 수준 이상인 콘텐츠를 별도 큐로 이동하는 기능 검토
  • 신규 사용자가 초기에 ‘좋은 콘텐츠’를 우선적으로 접할 수 있는 구조 마련 필요
  • 사진·과학·공예 분야의 독립 웹사이트 확충 희망
  • 현재 약 60만 개 페이지 인덱싱 완료, 소스 코드는 안정화 후 공개 예정

Read Entire Article