Moon Flower Society > Afluente: um leitor social para a web independente

Afluente: um leitor social para a web independente

Proposta de produto, identidade visual, arquitetura e roteiro para transformar a base do RSC em uma plataforma social de feeds mais bonita, útil, segura e operável.

Posted July 22, 2026. Markdown. Tags: pesquisa, ideia-de-projeto, rss, indieweb, rede-social, self-hosted, afluente.


Esta proposta parte do RSC — Really Simple Conversations, mas não pretende produzir apenas uma troca de logotipo ou uma interface mais bonita. A ideia é criar um produto reconhecível por conta própria: um excelente leitor de feeds, uma ferramenta de publicação e uma camada de conversa entre sites independentes.

O nome recomendado é Afluente. Cada blog, site ou perfil é uma nascente independente; seus feeds chegam ao leitor como afluentes; respostas de lugares diferentes formam uma conversa comum sem exigir que todos entreguem sua identidade e seu conteúdo à mesma empresa.

Frase principal: cada site mantém sua nascente. A conversa corre em comum.

Descrição curta: acompanhe pessoas e sites, publique no seu domínio e participe de conversas que continuam pertencendo à web aberta.

Resumo executivo

O RSC já prova que RSS pode transportar mais do que manchetes. O projeto reúne posts locais e remotos numa timeline, reconstrói respostas, publica feeds de saída, trabalha com RSS, Atom, JSON Feed, OPML, WebSub e rssCloud e oferece interoperabilidade com o rss.chat. Seu repositório informa, porém, que o sistema continua em pré-lançamento, sem versão oficial publicada, e que IndieAuth, Micropub, Webmention, categorias e mídia ainda fazem parte do roteiro futuro.

O Afluente deverá aproveitar esse núcleo técnico por meio de um fork responsável, preservando a licença MIT e os créditos. O esforço inicial deve se concentrar nas áreas em que um produto social autohospedado precisa ser realmente confiável:

  1. experiência de leitura muito superior;
  2. identidade principal baseada no domínio da pessoa;
  3. conversas transparentes entre sites;
  4. moderação, privacidade e controle comunitário;
  5. painel operacional para feeds, filas, falhas e backups;
  6. descoberta de autores e sites independentes;
  7. instalação e atualização previsíveis por Docker Compose;
  8. visual editorial próprio, acessível e responsivo.

A proposta evita começar com microserviços, aplicativo móvel nativo, três bancos de dados, inteligência artificial ou ActivityPub completo. A primeira versão deve continuar usando TypeScript, Hono, SvelteKit, SQLite, Docker Compose e Caddy, porque essa base já existe e é proporcional ao tamanho esperado de uma instalação pessoal ou comunitária.

O resultado não deve ser vendido como “um Mastodon de RSS”. A categoria mais clara é:

Leitor social da web aberta.

Metodologia e critérios

Esta ideia foi construída a partir de cinco frentes:

“Melhor” não significa ter mais funcionalidades. Nesta proposta, significa:

As constatações sobre o estado atual do RSC foram verificadas em 22 de julho de 2026. O projeto está evoluindo rapidamente, portanto algumas lacunas podem ser resolvidas pelo upstream antes do início do fork.

O que o RSC realmente oferece

O RSC define a si próprio como uma timeline social nativa de feeds. Pessoas que publicam dentro da instância e pessoas que publicam em sites próprios aparecem como participantes do mesmo espaço. Posts, respostas e conversas viajam por feeds abertos em vez de dependerem de uma API proprietária.

Recursos já declarados como funcionais

Segundo o README oficial, já existem:

Essa é uma fundação valiosa. Parser, normalização, threading, geração de feeds, autenticação e interoperabilidade são justamente as áreas mais fáceis de subestimar numa reescrita.

Recursos ainda indicados como futuros

O roteiro publicado pelo projeto ainda lista:

O documento fundador descreve três tipos de identidade: usuário local, domínio remoto reivindicado e feed remoto não reivindicado. Entretanto, a reivindicação remota por IndieAuth aparece como parte do desenho, não como funcionalidade concluída. Essa distinção deve permanecer explícita em qualquer fork.

Estado de maturidade

Em 22 de julho de 2026, o repositório se apresentava como pré-lançamento e ainda não tinha uma versão oficial publicada. Isso não diminui o mérito do sistema, mas significa que o Afluente precisará criar sua própria disciplina operacional:

Diagnóstico visual da referência

A aplicação pública foi inspecionada diretamente em desktop. Ela já é limpa, rápida e legível, usando uma estrutura de três colunas: ferramentas à esquerda, timeline ao centro e informações da instância à direita. Na visualização observada, o centro tinha aproximadamente 609 pixels, a barra esquerda 256 pixels e a direita 288 pixels. A interface usava Public Sans no corpo, títulos com aparência editorial, fundo claro, cartões discretos e laranja como cor principal.

O problema não é feiura. O problema é que a apresentação ainda se comporta como uma demonstração técnica:

O Afluente deve conservar a sobriedade e o carregamento progressivo, mas organizar a informação de acordo com o tipo de conteúdo e a intenção do leitor.

O nome recomendado

Afluente

Afluente é melhor que uma sigla técnica porque comunica movimento, encontro e independência. Um afluente não perde sua origem quando encontra outro rio. Essa metáfora descreve exatamente o produto: cada pessoa pode continuar no próprio domínio, mas participar de uma corrente compartilhada.

Por que o nome funciona

Vocabulário de produto

Conceito técnico Nome na interface
Timeline principal Corrente
Feed ou site acompanhado Fonte
Grupo de feeds Canal
Thread de respostas Confluência
Diretório de descoberta Nascentes
Item salvo Margem
Estado e entrega de resposta Percurso
Importação OPML Trazer minhas fontes

Esse vocabulário deve ser usado com moderação. Os termos técnicos continuam disponíveis em ajuda e administração. Uma pessoa não deve precisar aprender uma metáfora para encontrar “Configurações” ou “Backup”.

Frases de marca

Principal:

Cada site mantém sua nascente. A conversa corre em comum.

Curta:

A web volta a conversar.

Explicativa:

Leia sites, publique no seu domínio e converse pela web aberta.

Verificação obrigatória antes da adoção

A busca preliminar não encontrou um leitor social de RSS conhecido com o nome Afluente. Isso não é uma liberação jurídica de marca. Antes de publicar, será necessário consultar:

Não se deve comprar identidade visual ou anunciar o produto antes dessa verificação.

Alternativas de reserva

Nome Ponto forte Limitação
Entrefios Comunica conversas entre origens distintas Já aparece em iniciativas sociais e negócios brasileiros
Ramal Curto, sugere ramificação e conexão Também significa extensão telefônica
Tecer Ativo, humano e ligado à construção coletiva Muito genérico para busca e domínio
Trama Metáfora perfeita para threads e rede Nome bastante ocupado por empresas e projetos
Confluência Explica o encontro de fontes Longo e institucional demais para aplicativo

A proposta de produto

O Afluente será uma aplicação autohospedável que combina quatro produtos sem transformá-los em quatro sistemas separados:

  1. Leitor de feeds: acompanha sites e pessoas por RSS, Atom, JSON Feed e microformats.
  2. Biblioteca pessoal: organiza não lidos, salvos, coleções, notas e histórico.
  3. Publicador: permite criar posts locais ou publicar no domínio do usuário por Micropub.
  4. Rede de conversas: encontra respostas, envia Webmentions e reconstrói threads entre sites.

Proposta de valor

Para o leitor:

“Tudo que você acompanha, sem algoritmo e sem perder o contexto.”

Para quem publica:

“Seu domínio é sua identidade; o Afluente distribui e reúne as conversas.”

Para quem hospeda:

“Uma instância que mostra o que está funcionando, o que falhou e como restaurar.”

Público inicial

O primeiro público não deve ser “todo mundo”. O produto deve servir bem a:

Grandes redes públicas, celebridades e milhões de usuários não são requisitos da primeira arquitetura.

Princípios do produto

1. O domínio é a identidade mais forte

Uma conta local é conveniente, mas o nível mais confiável de identidade deve ser um endereço controlado pela pessoa, como https://pablomurad.com. O sistema descobre nome, foto, biografia, feeds, rel="me", endpoint Micropub e endpoint Webmention. A interface diferencia claramente:

Um feed importado nunca deve receber aparência de perfil verificado apenas porque possui nome e avatar.

2. Ler vem antes de postar

O Afluente deve ser bom mesmo para quem nunca publicar uma resposta. Isso exige:

3. Tipos de conteúdo merecem apresentações diferentes

O sistema identifica, sem esconder a origem:

Uma nota curta pode aparecer completa. Um artigo deve mostrar título, resumo, tempo estimado e imagem principal, abrindo numa leitura dedicada. Podcast precisa de player e duração. Resposta deve exibir o trecho ao qual responde. Esse tratamento reduz a sensação de que toda a internet foi comprimida no mesmo cartão.

4. Conversas devem mostrar o percurso

Ao publicar uma resposta, o sistema apresenta uma sequência compreensível:

Resposta salva
      ↓
URL pública criada
      ↓
Feed atualizado
      ↓
Webmention enviada
      ↓
Destino confirmou recebimento

Cada etapa pode estar pendente, concluída, recusada ou com erro. A pessoa vê uma explicação simples e, se desejar, os detalhes técnicos. A transparência evita a falsa sensação de que “federado” significa “entregue”.

5. Nenhum aprisionamento

O usuário deve poder exportar:

Excluir conta deve gerar um pacote antes da remoção, se solicitado, e publicar tombstones quando o protocolo permitir.

Como o Afluente será melhor

Área RSC observado/documentado Proposta do Afluente
Leitura Timeline única com quatro filtros principais Não lidos, salvos, coleções, busca, densidade e modos por conteúdo
Identidade Local e remoto; domínio reivindicado ainda no desenho Domínio verificado como identidade central, com estados visíveis
Conversas Threads por feeds e interoperabilidade rss.chat Thread unificada, Webmention e painel do percurso de entrega
Descoberta Assinatura por URL e feeds conectados Diretório editorial, recomendações manuais e integração opcional com WeirdNet
Visual Limpo, porém uniforme e próximo de demonstração Sistema editorial próprio, hierarquia por tipo e interface responsiva
Administração Operação pouco exposta na interface pública Saúde de feeds, filas, entregas, duplicatas, armazenamento e backups
Moderação Não é o foco visível Aprovação, denúncias, bloqueios, quarentena e políticas por instância
Mídia Ainda no roteiro Imagens e enclosures após estabilizar leitura e operação
Atualização Pré-lançamento, sem release oficial Releases semânticos, changelog, migrações e rollback documentado
Interoperabilidade RSS, Atom, JSON Feed, OPML, WebSub, rssCloud e rss.chat Mantém tudo isso e acrescenta testes permanentes para IndieWeb
Exportação OPML e feeds de saída Exportação de conta e restauração completa da instância
Acessibilidade Base sem JavaScript é positiva WCAG 2.2 AA, teclado, foco, redução de movimento e testes de leitor de tela

Arquitetura da informação

Navegação principal

Hoje apresenta um resumo de novas publicações e conversas importantes, sem algoritmo opaco.

Corrente contém todos os itens das fontes acompanhadas.

Não lidos é a caixa de entrada real do leitor.

Conversas reúne threads iniciadas, seguidas ou com novas respostas.

Salvos funciona como biblioteca de leitura posterior.

Canais organiza fontes por tema, projeto ou pessoa.

Nascentes permite descobrir sites e autores.

Publicar abre o compositor e pergunta onde publicar: conta local ou site conectado por Micropub.

Estrutura de desktop

┌──────────────────┬──────────────────────────────────┬──────────────────────┐
│ Afluente         │ Corrente                         │ Contexto              │
│                  │                                  │                      │
│ Hoje             │ Filtros · densidade · busca     │ Fonte selecionada    │
│ Corrente         │                                  │ Conversa             │
│ Não lidos        │ Item editorial                  │ Percurso da resposta │
│ Conversas        │ Item curto                      │ Ações                 │
│ Salvos           │ Podcast                         │                      │
│ Canais           │ Resposta com contexto           │                      │
│ Nascentes        │                                  │                      │
│                  │                                  │                      │
│ + Publicar       │                                  │                      │
└──────────────────┴──────────────────────────────────┴──────────────────────┘

A terceira coluna não deve exibir permanentemente um texto “Sobre”. Ela se torna uma barra de contexto: mostra informações sobre a fonte, a conversa, o item selecionado ou o estado de entrega. Em telas menores, abre como painel lateral.

Estrutura móvel

No celular, a interface usa uma coluna e navegação inferior com cinco destinos:

Filtros aparecem numa folha inferior. Ações secundárias ficam no menu do item. O compositor pode ocupar a tela inteira e salvar rascunhos automaticamente. Nenhuma ação importante deve depender de gesto oculto.

Direção visual

O Afluente deve parecer uma mistura de revista independente, caderno de leitura e ferramenta de rede, não um painel corporativo e não uma cópia do Mastodon.

Personalidade

Símbolo

O símbolo recomendado combina três linhas fluidas que convergem sem se fundirem completamente. O espaço negativo forma simultaneamente:

Não usar ondas genéricas, planeta, globo de rede, mascote tecnológico ou o ícone laranja de RSS como logotipo principal. O símbolo precisa funcionar em 16 pixels e numa única cor.

Paleta

Papel Cor Uso
Nascente #0E766E ações principais, links e foco
Tinta #17221D texto e superfícies escuras
Papel #F6F3EA fundo claro, menos agressivo que branco puro
Argila #D56745 conversas, destaques e alertas não críticos
Musgo #86A36B estados saudáveis e fontes verificadas
Névoa #DCE7E1 bordas, seleções e superfícies secundárias
Noite #101816 fundo do tema escuro

Argila não deve ser usada como única indicação de erro, e Musgo não deve ser a única indicação de verificação. Ícone e texto acompanham a cor.

Tipografia

O corpo padrão deve ter pelo menos 16 pixels e entre 1,55 e 1,7 de altura de linha. Artigos usam coluna entre 65 e 75 caracteres. O usuário pode aumentar fonte e espaçamento sem quebrar os cartões.

Cartões e ritmo

Em vez de colocar todos os itens dentro de caixas pesadas, a Corrente usa divisores, espaço e uma pequena barra de origem. Cartões completos ficam reservados para:

Isso cria uma página mais parecida com publicação e menos parecida com painel administrativo.

Movimento

Animações devem explicar mudança de estado:

Todas respeitam prefers-reduced-motion. Nenhuma animação automática fica em repetição.

Acessibilidade mínima

Funcionalidades essenciais

Leitor

Publicação

Identidade

Conversas

Descoberta e curadoria

Administração

O painel administrativo deve responder rapidamente:

Cada erro deve trazer uma ação possível: tentar novamente, editar URL, aceitar redirecionamento, pausar fonte, mesclar duplicata ou abrir detalhes.

Moderação e segurança

Uma rede baseada em URLs públicas continua sujeita a spam, perseguição, conteúdo malicioso e abuso de infraestrutura.

Controles comunitários

SSRF e busca de conteúdo remoto

Todo fetch de feed, avatar, imagem ou Webmention deve:

A própria recomendação do W3C para Webmention alerta que endpoints podem induzir o servidor a realizar requisições arbitrárias e recomenda limites, processamento assíncrono e proteção de recursos internos.

Conteúdo e navegador

Direitos autorais e atribuição

Um feed disponível publicamente não transforma o conteúdo em domínio público. O Afluente deve:

Arquitetura técnica recomendada

Estratégia: fork controlado

O caminho recomendado é criar um fork e manter uma trilha clara de alterações. Isso reaproveita o que já funciona e permite comparar o comportamento com o upstream.

RSC upstream
     ↓
Fork Afluente
     ↓
Testes de comportamento existente
     ↓
Camada operacional e nova experiência de leitura
     ↓
Identidade por domínio e IndieWeb
     ↓
Decisão futura: continuar fork ou separar implementação

Uma reescrita imediata provavelmente entregaria uma tela melhor e interoperabilidade pior.

Stack inicial

Não adicionar Redis apenas para executar polling. Não adicionar PostgreSQL apenas porque o projeto “pode crescer”. Esses componentes entram quando medições reais demonstrarem contenção ou volume incompatível com SQLite.

Componentes

Core

Web

Armazenamento

Entidades principais

Separar item bruto de publicação normalizada ajuda a corrigir o parser sem perder o material recebido e permite reprocessamento controlado.

Implantação simples

A distribuição inicial deve oferecer:

caddy
web
core + worker
volume de dados

Banco, arquivos, chaves e configurações persistem em caminhos explícitos. Um comando cria a configuração; outro inicia; outro produz backup consistente. A documentação deve incluir Debian e Ubuntu, proxy externo, Tailscale e restauração num servidor vazio.

Backup e restauração

O backup precisa incluir:

O projeto só poderá declarar backup “funcional” depois de restaurá-lo automaticamente num ambiente limpo durante testes de release.

Roteiro de desenvolvimento

Os prazos abaixo são estimativas de planejamento, não compromissos. Pressupõem uma pessoa trabalhando com apoio de automação e reaproveitando o código do RSC.

Etapa 0 — provar a base

Duração estimada: 1 a 2 semanas.

Saída: relatório de compatibilidade e decisão formal de fork.

Versão 0.1 — leitor operacional

Duração estimada: 4 a 8 semanas.

Critério de lançamento: uma pequena comunidade consegue usá-lo diariamente e o operador consegue explicar e recuperar falhas.

Versão 0.2 — domínio como identidade

Versão 0.3 — conversas entre sites

Versão 0.4 — mídia

Versão 0.5 — alcance opcional

O que não construir agora

Cada item aumenta manutenção, superfície de ataque e suporte. Nenhum é necessário para provar que um leitor social de feeds pode ser excelente.

Critérios de sucesso

Experiência

Operação

Segurança

Metas de referência

Estas são metas internas sugeridas e devem ser medidas numa VPS definida pelo projeto:

Estratégia jurídica e relação com o upstream

O RSC usa licença MIT. Ela permite usar, copiar, modificar, mesclar, publicar, distribuir, sublicenciar e vender o software. A condição essencial é conservar o aviso de copyright e o texto da permissão em cópias ou porções substanciais reaproveitadas.

Para o Afluente:

Uma forma respeitosa de apresentação seria:

Afluente é um fork independente do RSC, construído sobre ideias de Textcasting, rss.chat e padrões IndieWeb. Não é afiliado nem endossado pelos projetos de origem.

Esta seção é orientação prática, não parecer jurídico.

Recomendações práticas

Primeiro passo

Não comece pelo logotipo nem por uma reescrita. Instale o RSC numa URL de laboratório, importe 50 a 100 feeds reais, publique, responda, edite, exporte OPML e provoque falhas. O produto novo deve nascer de problemas observados, não apenas da lista de funcionalidades do README.

Primeira mudança de código

Crie testes de regressão para:

Só depois altere a experiência de leitura.

Primeira entrega visual

Construa três telas de alta fidelidade antes de redesenhar toda a aplicação:

  1. Corrente com quatro tipos de conteúdo;
  2. conversa com Percurso da resposta;
  3. painel de saúde de feeds.

Essas telas testam as partes mais distintivas da proposta. Landing page e diretório podem esperar.

Decisão de nome

Use Afluente como nome de trabalho. Antes de criar domínio público, faça a busca de marca e colisões. Se houver conflito relevante na área de software ou comunicação, a alternativa recomendada é Ramal.

Prioridade real

A ordem correta é:

Confiabilidade da base
        ↓
Leitura excelente
        ↓
Operação e moderação
        ↓
Identidade por domínio
        ↓
Conversas cross-site
        ↓
Mídia e alcance adicional

O projeto será melhor que a referência se as três primeiras camadas forem excelentes, mesmo antes de concluir as demais.

Conclusão

O RSC é uma referência valiosa porque trata RSS como infraestrutura social, não apenas como lista de links. Ele já resolve uma parte difícil: fazer conteúdos locais e externos coexistirem, publicar feeds, transportar edições e reconstruir conversas.

A oportunidade do Afluente está em transformar essa prova técnica num produto que as pessoas queiram usar todos os dias. A vantagem não será uma lista maior de protocolos, mas a combinação de:

Afluente é uma direção de marca forte porque traduz a arquitetura do produto sem recorrer a sigla ou jargão. A frase “cada site mantém sua nascente” expressa a promessa central: juntar pessoas sem capturar suas identidades e seus conteúdos.

A recomendação final é criar um fork pequeno, testado e operacional, lançar primeiro o melhor leitor social possível e adicionar IndieAuth, Micropub e Webmention em etapas verificáveis. Assim o projeto pode ser mais bonito que o RSC, mas, principalmente, mais confiável, compreensível e útil.

Fontes consultadas


Nota sobre atualidade

Pesquisa concluída em 22 de julho de 2026. O RSC estava em desenvolvimento acelerado e se declarava pré-lançamento, portanto funcionalidades, arquitetura, documentação, licença e estado de releases podem mudar. Confirme o repositório oficial antes de iniciar o fork. O nome Afluente passou apenas por uma busca preliminar e exige verificação jurídica de marca, domínios e identificadores antes de qualquer lançamento público.

View the original Markdown file


Ideas | What changed | RSS | About | Text version

Pablo Murad <pablomurad@pm.me>