15 pontos por GN⁺ 2025-12-08 | 1 comentários | Compartilhar no WhatsApp
  • Criada uma extensão de navegação na web baseada em feeds RSS para permitir que usuários explorem e avaliem aleatoriamente conteúdos de sites independentes
  • Com um clique em um botão, um novo site é exibido, e uma estrutura de recomendação baseada na comunidade é formada por meio de curtir, não curtir e denunciar
  • Backend construído com FastAPI e SQLite, usando a lista de RSS da small web da Kagi para indexar cerca de 600 mil páginas
  • Sem anúncios nem coleta de dados dos usuários, oferece simplesmente a experiência de explorar conteúdos interessantes da web por curtos períodos
  • Projeto experimental pessoal que busca reduzir o cansaço dos leitores de RSS existentes e redescobrir o ecossistema da pequena web

Visão geral do projeto

  • Surgiu a partir da percepção de que a experiência de usar leitores de RSS pode ser pesada
    • Aponta a pressão de ver artigos não lidos se acumulando e a ineficiência da estrutura cronológica do conteúdo
    • Expressa o desejo dos usuários de explorar aleatoriamente textos interessantes
  • Inspirado na forma de recomendação do TikTok, foi projetada uma estrutura que oferece aleatoriamente conteúdo de pequenos sites
    • Quando os usuários avaliam o conteúdo, a frequência de exibição aumenta de acordo com o número de curtidas
    • Aplica um algoritmo de recomendação simples, sem anúncios nem coleta de dados pessoais

Recursos e fluxo do usuário

  • Disponível como extensão para Firefox, com download em timewasterpro.xyz
  • O usuário recebe um novo site ao clicar em um botão e o avalia com Upvote/Downvote/Report
  • É necessário criar uma conta, e se o link enviado ganhar popularidade entre outros usuários, ele sobe no Leaderboard
  • O backend faz crawling periódico dos feeds RSS e os armazena no banco de dados
    • Verifica 5 feeds a cada 600 segundos, com atualizações em frequência inferior a uma vez por dia
    • URLs denunciadas são movidas para uma fila de revisão, e os números de curtidas e não curtidas são registrados

Arquitetura técnica

  • API escrita com FastAPI e gerenciamento do banco de dados com SQLAlchemy
  • O armazenamento de dados usa SQLite
    • Permite início rápido e backup simples, sendo adequado para um projeto de hobby
  • A autenticação funciona com criação de conta por e-mail seguida de verificação por link
    • O login com passkey também foi tentado, mas ficou limitado pela instabilidade de implementações OSS
    • Usa autenticação JWT, mas foi avaliado como ineficiente do ponto de vista da experiência do usuário
  • Usa como fonte de dados a lista de RSS do repositório GitHub Kagi small web

Design e experiência do usuário

  • Usa a biblioteca System.css para reproduzir o estilo do Apple System OS dos anos 80 e 90
    • Isso comunica visualmente que se trata de “um experimento pessoal, não um serviço profissional”
  • Como não foi possível diferenciar atalhos de teclado por sistema operacional, eles foram fixados na tecla Alt
  • Houve dificuldades com a definição de IDs por navegador na configuração do manifest.json da extensão
  • Como não inclui ferramentas de análise, o feedback dos usuários é coletado principalmente por problemas reportados diretamente

Planos futuros

  • Pretende melhorar o sistema classificando o conteúdo por categorias, para que os usuários vejam com mais frequência os gêneros de sua preferência
  • Está em análise um recurso para mover para uma fila separada conteúdos com Downvote acima de determinado nível
  • Há necessidade de criar uma estrutura em que novos usuários possam inicialmente ter contato prioritário com “bom conteúdo”
  • Deseja ampliar a presença de sites independentes de fotografia, ciência e artesanato
  • Atualmente, cerca de 600 mil páginas já foram indexadas, e o código-fonte será publicado após estabilização

1 comentários

 
GN⁺ 2025-12-08
Comentários no Hacker News
  • A ideia de que é preciso ler todo o conteúdo é uma falha no design da UI do leitor

    • O problema é mostrar o feed RSS como uma “caixa de entrada”, como se fosse e-mail

    • É melhor abordar isso como um "rio de notícias (river of news)" fluindo, como no TikTok

    • O ponto principal é dar uma olhada rápida só no que parecer interessante e deixar o resto passar

    • O Twitter também era, na essência, parecido com RSS — só que você rolava a tela sem marcação de “não lido”

    • Por isso, é melhor desligar o contador de “itens não lidos”. O valor do RSS está em o que eu escolho ler

    • Se um texto for realmente bom, outros assinantes vão acabar compartilhando o link

    • Eu prefiro o modelo de caixa de entrada ao de “rio”

      • Se os feeds estiverem organizados por categoria, também não é difícil marcar tudo como lido
      • Em compensação, eu cancelo na hora a assinatura de feeds que publicam demais. Blog com post todo dia não dá para acompanhar
    • Eu também já tentei criar um sistema que encontrasse automaticamente conteúdos alinhados ao meu gosto em toda a web

      • No fim, percebi a importância de fontes de dados de alta qualidade e cheguei à conclusão de que bastava seguir poucas pessoas boas
      • Quando repensei isso desde o começo, percebi que era exatamente RSS — um conceito que já estava pronto em 2005
    • Também tive uma percepção parecida alguns anos atrás

      • Como eu não queria rastrear o que já tinha lido, criei bots para espelhar cada feed RSS no Diaspora
      • Hoje migrei para o Mastodon, mas a lógica é a mesma — simplesmente rolar e ver só o que parecer interessante
    • O Twitter “era” esse tipo de serviço; hoje não é mais

  • Parece que algumas pessoas estão usando RSS do jeito errado

    • RSS não é uma ferramenta para consumir tudo como um canal do YouTube, e sim para olhar os títulos e ler só o que interessa

    • O TikTok é ainda pior — é uma estrutura feita para manter a pessoa presa a um fluxo infinito de conteúdo

    • Para esse tipo de pessoa, talvez faça mais sentido usar uma lista de “ler depois” do que um novo leitor de RSS

    • O motor de recomendação do TikTok é muito eficiente porque mede a reação em nível de item individual

      • Já o YouTube faz você escolher um entre vários thumbnails e perde informação sobre os outros 9 que você não clicou
      • O problema não é o algoritmo em si, e sim o que está sendo otimizado
      • Meu leitor também mostra um conteúdo por vez, como o TikTok, mas é composto por artigos científicos e textos sobre LLM que eu mesmo enviei
    • Não precisa cravar que alguém está “usando RSS errado”

      • O jeito de consumir conteúdo só mudou de “ler o que acabou de sair” para “alcançar o que eu deixei acumulado”
      • Dá para usar o YouTube pelo mesmo princípio
    • Quando eu usava o NetNewsWire, o badge de artigos não lidos me deixava ansioso

      • Se eu voltasse a usar hoje, desativaria o badge e marcaria automaticamente como lidos os posts com mais de 2 dias
    • Eu uso uma versão customizada de 2005 do tt-rss

      • Alguns feeds eu leio do começo ao fim, outros só passo os olhos de vez em quando
      • Mais para frente, quero adicionar um feed algorítmico baseado em sistema de recomendação
      • Em especial, quero experimentar um feed de recomendação distribuído baseado em textos com estrela/tag de autores que eu gosto de ler
    • A marcação de “não lido” do Google Reader parecia e-mail e, por isso, dava a sensação de “tarefa pendente”

      • Era uma UI que fazia até o simples ato de passar os olhos pelos títulos parecer “trabalho”
  • Muita gente usa RSS como termo genérico para feed da web

    • Na implementação real, a questão é se deve usar RSS, Atom ou JSON Feed

    • Podcasts ainda usam RSS como base

    • Eu uso só JSON Feed

      • Graças à estrutura simples, funciona bem na maioria dos leitores e é fácil de manipular programaticamente
      • Quando eu mesmo gero um feed, é JSON Feed 100%. Nunca vi motivo para usar Atom
  • A maioria dos leitores de feed parece ter sido feita por gente que na prática não usa RSS

    • Eu gerencio 211 feeds em cerca de 20 categorias e tenho 13.000 itens em cache

    • Na prática, a taxa em que eu realmente clico para abrir o texto completo fica em torno de 1% a 5%

    • Concordo totalmente. Falta em muitos leitores uma estrutura para lidar com grande volume de posts ou recursos de filtragem

  • A vantagem do RSS é ficar livre da influência de algoritmos de recomendação

    • Você não fica vendo sempre os mesmos domínios repetidos, e consegue ver textos de áreas variadas de forma mais equilibrada
    • Isso parece um retorno ao tradicional modelo linear de fluxo de informação
  • Fico muito feliz de ver um projeto assim

    • Eu adorava o StumbleUpon, então é ótimo ver algo parecido surgindo

    • Queria que alguém fizesse um sucessor do DIGG

    • Concordo plenamente. Dá uma sensação nostálgica de StumbleUpon, mas com a vantagem de você mesmo escolher o foco do conteúdo

    • Só para constar, o Digg foi relançado recentemente em beta

  • Eu gosto da curadoria não algorítmica do RSS, mas não quero curadoria focada em “diversão”

    • Quero evitar uma estrutura que incentive “engajamento” como no TikTok
    • O motivo de eu voltar a usar RSS é me conectar diretamente com autores de que eu gosto
    • Se o volume de conteúdo crescer depois, uma curadoria em formato de newsletter semanal com algoritmo resumindo o conteúdo talvez seja o ideal
  • A questão de manter ou não a ordem cronológica do conteúdo depende do caso

    • Já imaginei uma UX para resolver isso em leitores de RSS ou até em podcasts, mas ainda não encontrei uma boa solução
  • Recomendo um serviço chamado Scour

    • Ele ranqueia textos de acordo com os interesses do usuário e a relevância

    • Dá para importar feeds RSS ou pesquisar em mais de 15.000 fontes

    • Foi pensado como uma ferramenta para evitar milhares de itens “não lidos” e selecionar só os bons textos

    • Achei interessante. Queria saber se existe uma função para excluir determinados feeds por blacklist

  • Estou tentando resolver o problema de categorização no RSS

    • Como muitos feeds não usam o campo category, fiz um crawler que faz parse de hashtags na descrição

    • Para manter um “inbox zero” de RSS por dia, cancelo a assinatura de blogs que publicam demais

    • Existe uma tendência de frequência de publicação e qualidade do conteúdo serem inversamente proporcionais

    • Eu assino RSS pelo app Karakeep

      • Ele salva o conteúdo automaticamente e gera tags com IA generativa
      • Dá para criar feeds RSS baseados em condições, então funciona bem junto com leitores tradicionais
    • Meu site também oferece vários tipos de conteúdo, mas como a maioria dos leitores não dá suporte à tag category

      • no fim, eu separo usando um prefixo no título, como [Blog]