Murad Library
Murad LibraryREF-0393MD

Recursos excepcionais de IndieWeb e small web para implementar em um futuro site

Catalogued
Reading
31 min read

Autor da análise: ChatGPT para Pablo Murad
Data: 2026-06-30
Objetivo: levantar recursos realmente interessantes para um site pessoal/autoral no espírito IndieWeb, small web, smol web, fediverso, RSS e web independente.


1. Veredito rápido

Um site IndieWeb/small web bom não é um site cheio de efeitos. É um site que devolve controle ao dono: identidade própria, conteúdo próprio, feeds próprios, links próprios, arquivo próprio, interações próprias.

A ordem correta não é começar por ActivityPub, Craft CMS, CMS gigante ou painel cheio de recurso. Isso é tentador, mas é a armadilha clássica: gastar energia montando infraestrutura e não publicar nada.

A ordem brutalmente mais inteligente é:

  1. HTML/Markdown limpo, rápido e versionado.
  2. RSS/Atom decente.
  3. Microformats2 básicos.
  4. Webmentions.
  5. POSSE/PESOS manual ou semi-automático.
  6. Busca local.
  7. Arquivos vivos: blog, notes, now, uses, links, leitura, filmes, projetos.
  8. Só depois pensar em federação completa, Micropub, IndieAuth, backfeed e CMS avançado.

Em outras palavras: primeiro o site vira uma casa. Depois você coloca campainha, correio, antena, rádio amador e túnel secreto.


2. Recursos essenciais — faça primeiro

2.1. Identidade própria via domínio

Ideia: seu domínio deve ser sua identidade primária, não uma rede social.

Exemplo:

https://pablo.space/
https://pablomurad.com/
https://murad.dev/

Esse domínio vira o centro de tudo: blog, perfil, links, feeds, projetos, contato, arquivo, notas, catálogo pessoal.

Implementação:

  • Página inicial com bio curta.
  • Links para perfis externos.
  • rel=me nos links sociais.
  • Uma página /about/ mais completa.
  • Uma página /contact/ sem depender só de rede social.

Prioridade: altíssima.
Dificuldade: baixa.


2.2. rel=me para verificação de identidade

Ideia: usar links recíprocos para provar que seus perfis são seus.

Exemplo no seu site:

<a rel="me" href="https://mastodon.social/@pablo">Mastodon</a>
<a rel="me" href="https://github.com/pablomurad">GitHub</a>
<a rel="me" href="https://bsky.app/profile/exemplo.bsky.social">Bluesky</a>

E, quando possível, no perfil externo você coloca um link de volta para seu domínio.

Por que é bom:

  • É simples.
  • Ajuda verificação em Mastodon e serviços IndieWeb.
  • Reforça que o domínio é sua identidade raiz.

Prioridade: altíssima.
Dificuldade: baixa.

Fonte útil: IndieWeb lista rel-me entre padrões amplamente implementados.


2.3. h-card: cartão de visita semântico

Ideia: marcar seu perfil com Microformats2 para máquinas entenderem que aquilo é uma pessoa/identidade.

Exemplo:

<div class="h-card">
  <img class="u-photo" src="/img/pablo.jpg" alt="Pablo Murad">
  <a class="p-name u-url" href="https://pablo.space">Pablo Murad</a>
  <p class="p-note">Administrador, programador, pesquisador, cinefilo e jardineiro de servidores.</p>
</div>

Por que é bom:

  • Melhora compatibilidade IndieWeb.
  • Ajuda parsers, leitores e ferramentas sociais.
  • É HTML normal, não uma dependência pesada.

Prioridade: altíssima.
Dificuldade: baixa.

Fonte útil: Microformats2 é descrito como uma forma simples de marcar informação estruturada em HTML.


2.4. h-entry para posts

Ideia: cada post do blog deve ser semanticamente identificável como uma entrada/publicação.

Exemplo:

<article class="h-entry">
  <h1 class="p-name">Meu post</h1>
  <a class="u-url" href="/blog/meu-post/">Permalink</a>
  <time class="dt-published" datetime="2026-06-30T10:00:00-03:00">30 jun 2026</time>
  <div class="e-content">
    <p>Conteúdo do post...</p>
  </div>
</article>

Por que é bom:

  • Webmentions funcionam melhor.
  • Arquivos e feeds ficam mais claros.
  • Seu conteúdo passa a ser mais reutilizável.

Prioridade: altíssima.
Dificuldade: baixa a média.


2.5. RSS e Atom completos

Ideia: cada área importante do site deve ter feed.

Não basta um RSS genérico. O ideal é ter feeds segmentados:

/feed.xml                feed geral
/blog/feed.xml           artigos longos
/notes/feed.xml          notas curtas
/links/feed.xml          links comentados
/reading/feed.xml        leituras
/watching/feed.xml       filmes e series
/projects/feed.xml       projetos
/micro/feed.xml          microblog

Por que é excepcional:

  • RSS é o protocolo mais subestimado da internet.
  • Permite que pessoas acompanhem seu site sem rede social.
  • Alimenta bots, agregadores, newsletters, n8n, automações e federação indireta.

Prioridade: altíssima.
Dificuldade: baixa se usar Zola, Hugo, Astro ou Eleventy.

Detalhe importante: inclua conteúdo completo no feed quando fizer sentido. Feed só com resumo é frustrante.


2.6. Sitemap XML e arquivo humano /archive/

Ideia: ter um sitemap para máquinas e um arquivo bonito para humanos.

Estrutura sugerida:

/archive/2026/
/archive/2026/06/
/archive/tags/
/archive/series/
/archive/types/

Por que é bom:

  • SEO básico.
  • Navegação histórica.
  • Sensação de site vivo e acumulativo.

Prioridade: alta.
Dificuldade: baixa.


2.7. Busca local sem servidor

Ideia: busca client-side usando índice estático.

Boas opções:

  • Pagefind — excelente para sites estáticos.
  • Elasticlunr — comum em Zola.
  • Lunr.js — clássico.

Recursos legais:

  • busca por título;
  • busca por conteúdo;
  • filtro por tipo: artigo, nota, projeto, livro, filme;
  • resultados com snippet;
  • atalho /search/.

Prioridade: alta.
Dificuldade: baixa a média.


3. Recursos IndieWeb de interação

3.1. Webmention

Ideia: permitir que outros sites avisem o seu site quando mencionam, respondem ou linkam para uma página sua.

Exemplo prático:

  1. Você publica um artigo.
  2. Outra pessoa escreve uma resposta no site dela e coloca link para o seu artigo.
  3. O site dela envia uma Webmention para o seu endpoint.
  4. Seu site mostra essa resposta abaixo do artigo.

Por que é excepcional:

  • Comentários distribuídos sem depender de Disqus, Facebook ou plataforma fechada.
  • Permite likes, reposts, bookmarks e replies vindos de outros sites.
  • É um padrão W3C.

Implementação simples:

  • Usar webmention.io para receber.
  • Usar um script no build para buscar as menções.
  • Salvar JSON localmente.
  • Renderizar menções nos posts.

Implementação avançada:

  • Endpoint próprio.
  • Moderação própria.
  • Cache local.
  • Antispam.
  • Separação por tipo: replies, likes, reposts, bookmarks.

Prioridade: altíssima para IndieWeb.
Dificuldade: média.

Aviso honesto: Webmention é lindo, mas precisa moderação. Qualquer sistema que recebe input externo vira porta de spam mais cedo ou mais tarde.


3.2. Envio automático de Webmentions

Ideia: quando você publicar um post linkando para outros sites, seu sistema detecta os links e envia Webmentions automaticamente.

Fluxo:

Publicar post
→ parser coleta links externos
→ descobre endpoint Webmention dos links
→ envia Webmention
→ registra status de envio

Por que é bom:

  • Você participa da conversa sem depender de rede social.
  • Outros sites podem mostrar sua resposta automaticamente.

Prioridade: média-alta.
Dificuldade: média.


3.3. Página /mentions/

Ideia: uma página pública agregando menções recebidas.

Possíveis filtros:

/mentions/replies/
/mentions/likes/
/mentions/reposts/
/mentions/bookmarks/
/mentions/pings/

Por que é legal:

  • Mostra que o site conversa com outros sites.
  • Cria uma memória social independente.

Prioridade: média.
Dificuldade: média.


3.4. Comentários locais + Webmention juntos

Ideia: permitir comentários tradicionais, mas também respostas distribuídas.

Opções:

  • Comentários locais moderados.
  • Comentários por e-mail.
  • Webmentions exibidas abaixo do post.
  • Respostas via Mastodon importadas como backfeed.

Minha opinião: implemente Webmention primeiro. Comentário local dá manutenção, spam e dor de cabeça. Para site pessoal, comentários locais só valem se você realmente quiser moderar conversa.

Prioridade: baixa a média.
Dificuldade: média a alta.


4. POSSE, PESOS e syndication

4.1. POSSE — publicar no seu site e distribuir fora

POSSE significa:

Publish on your Own Site, Syndicate Elsewhere

Ou seja: você publica primeiro no seu domínio e depois replica em Mastodon, Bluesky, LinkedIn, Reddit, etc.

Implementação mínima:

No frontmatter do post:

[taxonomies]
syndication = ["posse"]

[extra]
syndicated_to = [
  "https://mastodon.social/@pablo/123",
  "https://bsky.app/profile/pablo/post/abc"
]

E no HTML:

<p>Syndicated to: Mastodon, Bluesky</p>

Implementação avançada:

  • Bot publica automaticamente no Mastodon.
  • Bot publica no Bluesky via AT Protocol.
  • Bot publica no LinkedIn quando for artigo profissional.
  • Guarda URLs das cópias no próprio post.

Prioridade: altíssima.
Dificuldade: baixa manualmente; alta se automatizar tudo.

Ponto brutalmente honesto: POSSE perfeito é difícil. POSSE manual bem feito é melhor que automação quebrada.


4.2. PESOS — publicar fora e arquivar no seu site

PESOS significa:

Publish Elsewhere, Syndicate to your Own Site

Você posta primeiro em outro lugar e depois importa para seu site.

Exemplos:

  • posts do Mastodon arquivados em /micro/;
  • threads do Bluesky arquivadas em /notes/;
  • reviews do Letterboxd importadas para /watching/;
  • scrobbles/listens importados para /listening/;
  • bookmarks do Readwise/Reader importados para /links/.

Prioridade: alta para arquivo pessoal.
Dificuldade: média.

Cuidado: PESOS pode virar lixão automático. Importe só o que vale preservar.


4.3. Backfeed

Ideia: trazer interações das cópias externas de volta para o post original.

Exemplo:

  1. Você publica no site.
  2. Replica no Mastodon.
  3. Pessoas respondem no Mastodon.
  4. Seu site busca essas respostas.
  5. As respostas aparecem no post original.

Por que é excepcional:

  • Fecha o ciclo da conversa.
  • Seu site continua sendo o arquivo central.

Dificuldade: alta.

Minha recomendação: faça depois. Primeiro implemente POSSE manual e Webmention. Backfeed é lindo, mas vira integração com API, rate limit, autenticação, spam, duplicação e quebra de plataforma.


4.4. Página /syndications/

Ideia: igual ao Scientiac: uma página que lista conteúdos marcados como POSSE, PESOS, ECHO, REPLY, etc.

Tipos sugeridos:

POSSE    publicado aqui e distribuído fora
PESOS    publicado fora e arquivado aqui
ECHO     resposta/eco a outro post
REPLY    resposta direta
QUOTE    citação comentada
BOOST    repost/recomendação

Prioridade: alta se você quiser estética IndieWeb forte.
Dificuldade: baixa.


5. Tipos de post que deixam o site vivo

5.1. Artigos longos

Caminho:

/blog/

Para textos técnicos, ensaios, tutoriais, reflexões, artigos sobre cinema, infra, fediverso, livros e projetos.

Campos úteis:

title = "..."
date = 2026-06-30
tags = ["indieweb", "rss"]
series = "Web Independente"
summary = "..."
canonical = "..."

5.2. Notes / microblog

Caminho:

/notes/

Notas curtas, pensamentos, updates, quase tweets próprios.

Recurso excepcional: cada nota tem permalink próprio.

Exemplo:

/notes/2026/06/30/1430/

Prioridade: altíssima para deixar o site vivo.


5.3. Linklog / bookmarks comentados

Caminho:

/links/

Você salva links com comentário curto.

Exemplo:

---
title: "Readable CSS"
url: "https://readable-css.freedomtowrite.org/"
tags: ["css", "smallweb"]
---

CSS simples e legível. Bom antídoto contra framework demais.

Por que é excelente:

  • Substitui favoritos perdidos no navegador.
  • Vira fonte para artigos futuros.
  • Pode alimentar RSS próprio.

5.4. Respostas para outros sites

Caminho:

/replies/

Você escreve uma resposta no seu site, linka o post original, e manda Webmention.

Frontmatter:

in_reply_to = "https://example.com/post"

Prioridade: alta para IndieWeb real.


5.5. Likes e favorites próprios

Caminho:

/likes/

Você pode registrar que gostou de um post externo sem depender de botão de plataforma.

Frontmatter:

like_of = "https://example.com/post-interessante"

Cuidado: likes demais viram ruído. Eu usaria mais como “favoritos públicos comentados”.


5.6. Reposts / boosts próprios

Caminho:

/reposts/

Para recomendar algo de outra pessoa.

Frontmatter:

repost_of = "https://example.com/artigo"

Prioridade: média.


5.7. Reviews de filmes, livros, séries e jogos

Isso combina muito com você.

Caminhos:

/watching/
/reading/
/playing/
/listening/

Campos para filmes:

title = "Napoleon Dynamite"
year = 2004
director = "Jared Hess"
rating = 4.5
watched_at = 2026-06-30
rewatch = false
tags = ["awkward-comedy", "indie"]

Campos para livros:

title = "..."
author = "..."
started = 2026-06-01
finished = 2026-06-30
rating = 5
isbn = "..."

Recurso excepcional: gerar páginas automáticas:

/books/authors/
/books/years/
/films/directors/
/films/genres/

Prioridade: altíssima para um site seu.


5.8. Diário técnico de servidores

Caminho:

/infra-log/

Registre alterações importantes:

2026-06-30 — Ajustado feed RSS do GoToSocial murad.social
2026-06-29 — Backup de nginx antes de remover bloco murad.rocks
2026-06-28 — Configurado email SMTP em instância ActivityPub

Por que é matador para você:

  • Vira memória técnica.
  • Evita repetir investigação.
  • Pode virar artigo depois.
  • Ajuda a documentar sua infraestrutura real.

Prioridade: altíssima.


5.9. Changelog pessoal

Caminho:

/changelog/

Um log do próprio site/projetos.

Exemplo:

## 2026-06-30

- Adicionado feed separado para notas.
- Criada página /uses/.
- Implementado h-card na homepage.

Prioridade: alta.


6. Páginas clássicas da small web que valem muito

6.1. /now/

Página dizendo no que você está focado agora.

Conteúdo:

  • projetos atuais;
  • livros em leitura;
  • filmes recentes;
  • servidores mexidos;
  • prioridades pessoais/profissionais;
  • última atualização.

Exemplo:

# Now

Atualizado em 2026-06-30.

Estou trabalhando em:

- Portal IDEA automações;
- sites IndieWeb/small web;
- infraestrutura ActivityPub;
- catalogação de filmes estranhos.

Prioridade: altíssima.


6.2. /uses/

Lista de ferramentas que você usa.

Categorias:

Hardware
Sistema operacional
Editor
Servidores
Apps
Leitura
Cinema
Automação
IA

Por que é bom:

  • Pessoas adoram páginas /uses/.
  • Serve como inventário pessoal.
  • Ajuda outros técnicos.

Prioridade: alta.


6.3. /colophon/

Página explicando como o site foi feito.

Inclua:

  • gerador estático/CMS;
  • hospedagem;
  • fontes;
  • CSS;
  • ferramentas;
  • princípios;
  • licença;
  • feed;
  • código-fonte, se público.

Prioridade: alta para small web.


6.4. /blogroll/

Lista humana de blogs/sites que você acompanha.

Campos:

Nome
URL
Feed
Categoria
Idioma
Descrição curta

Por que é excepcional:

  • Blogroll é antialgoritmo.
  • Fortalece a web independente.
  • Pode virar OPML exportável.

Extra: disponibilize:

/blogroll.opml

Prioridade: altíssima.


6.5. /links/ + OPML

Além do blogroll, tenha uma página de links úteis:

/links/tools/
/links/blogs/
/links/indieweb/
/links/selfhosted/
/links/cinema/
/links/books/

E exporte OPML para leitores RSS.

Prioridade: alta.


6.6. /guestbook/

Livro de visitas moderno.

Opções:

  • estático com PR no Git;
  • formulário moderado;
  • comentários via e-mail;
  • Webmentions exibidas;
  • assinatura simples com nome/site/mensagem.

Minha opinião: legal, mas não essencial. Faça só se for moderado, senão vira parede de spam.

Prioridade: média.


6.7. /webring/

Participar ou criar um webring.

Exemplo de navegação:

← site anterior | weird web ring | próximo site →

Por que é bom:

  • Traz descoberta humana.
  • Combina com small web.
  • É divertido.

Prioridade: média-alta.


6.8. /manifesto/

Uma página curta explicando o espírito do site.

Não precisa ser pomposo. Algo como:

Este site é minha casa na web.
Redes sociais são pontos de distribuição, não origem.
Aqui ficam meus textos, logs, links, filmes, leituras e experimentos.

Prioridade: alta, desde que seja curto. Manifesto longo demais vira teatro.


6.9. /humans.txt

Arquivo simples em:

/humans.txt

Conteúdo:

/* TEAM */
Author: Pablo Murad
Site: https://pablo.space
Location: Brazil

/* SITE */
Built with: Zola/Astro/etc
Language: Portuguese, English

Prioridade: baixa, mas charmoso.


6.10. /robots.txt honesto

Defina o que bots podem acessar.

Exemplo:

User-agent: *
Allow: /

Sitemap: https://pablo.space/sitemap.xml

Você também pode bloquear crawlers de IA específicos se quiser, mas seja realista: isso é mais declaração de preferência do que muro de verdade.

Prioridade: média.


7. Recursos de arquivo pessoal

7.1. Biblioteca pessoal

Caminho:

/library/

Não precisa ser só “livros lidos”. Pode ser um catálogo vivo:

/library/books/
/library/articles/
/library/papers/
/library/quotes/
/library/notes/

Campos úteis:

title = "..."
author = "..."
type = "book"
status = "reading"
rating = 5
tags = ["history", "occultism"]

Prioridade: alta para você.


7.2. Film log estilo Letterboxd próprio

Caminho:

/film-log/

Recursos:

  • assistido em;
  • nota;
  • mini-review;
  • diretor;
  • país;
  • década;
  • tags de vibe;
  • links para posts relacionados.

Tags de vibe são melhores que gêneros frios:

awkward-comedy
small-town-weird
melancholy
analog-horror
deadpan
surreal
comfort-trash

Prioridade: altíssima para você.


7.3. “Shelf” visual

Uma estante visual de livros, filmes, jogos e discos.

Exemplo:

/shelf/
/shelf/books/
/shelf/films/
/shelf/games/
/shelf/music/

Pode ser grid com capas. Mas cuidado: capa demais pode pesar e trazer problemas de copyright/hotlink. Melhor usar imagens locais otimizadas ou metadados simples.

Prioridade: alta.


7.4. Mapa de projetos

Caminho:

/projects/

Cada projeto tem página própria:

/projects/portal-idea/
/projects/runv-club/
/projects/murad-tv/
/projects/prami/
/projects/le-rss/
/projects/genmap/
/projects/pabling/

Campos:

status = "active"
type = "selfhosted"
started = 2026-01-01
stack = ["Go", "Docker", "PostgreSQL"]
repo = "..."
url = "..."

Prioridade: altíssima.


7.5. Página de status dos projetos

Caminho:

/projects/status/

Estados:

active
paused
archived
abandoned
idea
maintenance

Brutalmente útil: declare projeto abandonado sem culpa. Cemitério de projeto também é documentação.


7.6. Cemitério de ideias

Caminho:

/graveyard/

Projetos mortos, tentativas, fracassos, experimentos.

Por que é bom:

  • Ajuda a não repetir burrice.
  • Pode virar post técnico honesto.
  • É mais interessante que portfólio fake onde tudo parece sucesso.

Prioridade: alta.


8. Recursos sociais pequenos e charmosos

8.1. Botão “reply by email”

Em cada post:

<a href="mailto:voce@example.com?subject=Re: Titulo do post">Responder por e-mail</a>

Melhor ainda: usar endereço mascarado/alias.

Prioridade: alta.


8.2. Botão “copy link”

Um botão simples para copiar o permalink.

Prioridade: média.


8.3. Citações ancoráveis por parágrafo

Cada parágrafo pode ter um link permanente.

Exemplo:

<p id="p42">Texto do parágrafo <a href="#p42">#</a></p>

Por que é excelente:

  • Facilita citação.
  • Ajuda discussão técnica.
  • Combina com posts longos.

Prioridade: alta.


8.4. Fragmentions / links para trechos

Fragmention é uma ideia IndieWeb para linkar frases específicas dentro de documentos por fragmento na URL.

Exemplo conceitual:

https://site/post/#frase%20citada

Hoje navegadores também têm text fragments (#:~:text=), mas uma solução própria pode ser charmosa.

Prioridade: média.
Dificuldade: média.


8.5. “This page was last updated”

Mostrar data de criação e última edição.

Exemplo:

Publicado em 2026-06-01.
Atualizado em 2026-06-30.

Prioridade: altíssima.


8.6. Histórico de edições público

Para páginas importantes, mostrar changelog.

Exemplo:

2026-06-30: adicionada seção sobre Webmention.
2026-06-28: corrigidos links quebrados.

Prioridade: média-alta.


8.7. Links “via”, “hat tip” e “inspired by”

Campos no post:

via = "https://example.com"
hat_tip = "https://example.net"
inspired_by = "https://example.org"

Por que é bom:

  • Dá crédito.
  • Estimula rede humana de descoberta.
  • Ajuda Webmention.

Prioridade: alta.


9. Feeds especiais e formatos alternativos

9.1. Feed JSON

Além de RSS/Atom, gere JSON Feed.

/feed.json

Por que é bom:

  • Fácil de consumir por scripts.
  • Bom para automações.

Prioridade: média.


9.2. OPML público

Arquivo com feeds que você acompanha:

/blogroll.opml
/feeds.opml

Por que é excelente:

  • Compartilha sua curadoria.
  • Ajuda outras pessoas a fugir de algoritmo.

Prioridade: alta.


9.3. twtxt

Twtxt é microblogging minimalista em arquivo de texto público.

Exemplo:

2026-06-30T12:00:00-03:00	mexendo no site novo, rss e webmentions.

Caminho:

/twtxt.txt

Por que é divertido:

  • É ridiculamente simples.
  • Combina com hacker/small web.
  • Identidade = URL do arquivo.

Prioridade: média.
Dificuldade: baixa.

Minha opinião: não é essencial, mas é muito “Pablo mexendo em protocolo esquisito às 2h da manhã”. Então provavelmente vale.


9.4. Arquivo .well-known

Recursos possíveis:

/.well-known/webfinger
/.well-known/host-meta
/.well-known/security.txt
/.well-known/change-password

Uso:

  • WebFinger ajuda descoberta de identidade/federação.
  • security.txt indica contato para problemas de segurança.

Prioridade: média.


9.5. WebFinger

Ideia: permitir descoberta de identidade tipo:

acct:pablo@pablo.space

Isso é mais fediverso do que IndieWeb clássico, mas combina.

Prioridade: média se você quiser identidade federada.
Dificuldade: média.


10. Federação e protocolos sociais maiores

10.1. ActivityPub no site

Ideia: permitir que pessoas no Mastodon/GoToSocial/etc sigam seu site diretamente.

Caminho possível:

@pablo@pablo.space

O que permitiria:

  • posts do site aparecem no fediverso;
  • replies/follows/likes federados;
  • identidade social própria no domínio.

Mas aqui vai a verdade: implementar ActivityPub diretamente é trabalhoso. Não é só gerar JSON. Tem assinatura HTTP, inbox/outbox, followers, delivery, retries, blocks, moderation, compatibilidade com Mastodon e outros detalhes chatos.

Alternativas inteligentes:

  1. Usar GoToSocial/Mastodon separado e linkar via POSSE.
  2. Usar Bridgy Fed.
  3. Usar um plugin/serviço pronto.
  4. Gerar feeds e deixar outros sistemas consumirem.

Prioridade: baixa no início; alta se o site virar plataforma social própria.
Dificuldade: alta.


10.2. Bridgy / Bridgy Fed

Ideia: usar serviço intermediário para conectar site, Webmention e redes/fediverso.

Por que pode ser bom:

  • Evita implementar tudo do zero.
  • Pode ajudar com backfeed e federação.

Cuidado: dependência externa. Não é grave, mas contraria um pouco o ideal “tudo meu”. Ainda assim, é pragmático.

Prioridade: média.


10.3. AT Protocol / Bluesky syndication

Ideia: publicar links/resumos dos posts no Bluesky.

Possibilidades:

  • POSSE manual para Bluesky.
  • Bot usando AT Protocol.
  • Guardar URL da cópia no frontmatter.

Prioridade: média-alta se você usa Bluesky.
Dificuldade: média.


11. Autenticação e publicação

11.1. IndieAuth

IndieAuth é uma camada de identidade baseada em OAuth 2.0, usada no ecossistema IndieWeb para autenticação e para obter tokens usados por clientes Micropub.

Uso prático:

  • entrar em apps usando seu domínio;
  • autorizar clientes a publicar no seu site;
  • conectar Micropub.

Prioridade: média.
Dificuldade: média a alta.

Minha recomendação: não comece por isso. Só implemente quando você realmente tiver um cliente Micropub ou fluxo de publicação externo.


11.2. Micropub

Micropub é um protocolo W3C para criar, atualizar e apagar posts no seu próprio domínio usando clientes de terceiros.

Exemplo de uso:

  • postar nota curta pelo celular;
  • publicar foto;
  • favoritar link;
  • responder outro post;
  • registrar check-in;
  • editar post sem abrir repositório.

Prioridade: média-alta se você quiser postar do celular.
Dificuldade: alta se for implementar do zero.

Alternativa pragmática: criar um painel simples próprio que gera Markdown e commit no Git.


11.3. Painel próprio minimalista

Em vez de Micropub completo, você pode criar um painel privado:

/new/note
/new/link
/new/film
/new/book
/new/project-log

Ele gera arquivos Markdown no repo e faz commit.

Stack possível:

  • Go + Git;
  • Python/FastAPI + Git;
  • Node + simple-git;
  • n8n + GitHub API;
  • formulário estático + webhook.

Prioridade: altíssima se você quiser realmente publicar com frequência.

Verdade dura: se publicar exigir abrir editor, lembrar frontmatter, commitar e subir, você vai publicar menos. Um painel simples pode valer mais que 20 padrões IndieWeb.


12. Recursos visuais small web

12.1. Tema leve, autoral e sem framework pesado

Princípios:

  • CSS próprio.
  • Sem Tailwind se o objetivo é small web artesanal.
  • Sem React para página estática.
  • Pouquíssimo JS.
  • Tipografia boa.
  • Layout legível.

Prioridade: altíssima.


12.2. Modo claro/escuro sem firula

Implementação:

@media (prefers-color-scheme: dark) {
  :root { ... }
}

Com botão opcional para alternar.

Prioridade: alta.


12.3. ASCII art / ANSI art / pequenos símbolos

Combina com sua estética runv.club, servidores, pubnix e weird web.

Use com moderação:

    .  *        .       *
  *      pablo.space      .
       independent web

Prioridade: média-alta.


12.4. Badges 88x31

Clássico da web antiga.

Exemplos:

RSS
IndieWeb
No AI slop
Handmade HTML
Fediverse
Validated HTML

Cuidado: badge demais vira carnaval GeoCities ruim. Use uma seção específica no rodapé ou /badges/.

Prioridade: média.


12.5. Página /badges/

Você pode criar seus próprios badges:

Portal IDEA
runv.club
Murad TV
pablo.space
RSS forever

E permitir que outros copiem.

Prioridade: média.


12.6. Estética de terminal sem destruir legibilidade

Terminal é legal, mas texto longo em terminal fake pode ser horrível.

Use terminal para:

  • homepage;
  • cabeçalhos;
  • pequenos blocos;
  • projeto técnico;
  • logs.

Não use terminal para:

  • artigos longos;
  • reviews;
  • leitura contínua.

Prioridade: média.


13. Recursos de privacidade e independência

13.1. Sem analytics invasivo

Opções:

  • sem analytics nenhum;
  • logs do servidor;
  • Plausible self-hosted;
  • Umami self-hosted;
  • GoatCounter;
  • análise por RSS/downloads.

Minha opinião: para site pessoal, use analytics mínimo ou nenhum. Se usar, coloque em /privacy/.


13.2. Página /privacy/

Explique:

  • se usa cookies;
  • se usa analytics;
  • se usa CDN;
  • se carrega fontes externas;
  • se guarda comentários;
  • se recebe Webmentions.

Prioridade: alta.


13.3. Sem fontes externas

Hospede fontes localmente ou use system fonts.

Por que:

  • privacidade;
  • performance;
  • resiliência.

Prioridade: alta.


13.4. Sem dependência de CDN para funcionar

O site deve abrir mesmo se Google Fonts, jsDelivr, unpkg, Cloudflare etc. estiverem fora.

Prioridade: altíssima.


13.5. Páginas estáticas cacheáveis

Tudo que puder ser estático deve ser estático.

Headers ideais:

Cache-Control
ETag
Last-Modified

Prioridade: alta.


14. Recursos de preservação e portabilidade

14.1. Conteúdo em Markdown

Use Markdown com frontmatter. Evite prender seu conteúdo em banco opaco.

Prioridade: altíssima.


14.2. Export completo

Tenha comando para exportar tudo:

make export

Gerando:

export/site.zip
export/posts.json
export/feed.xml
export/content.tar.gz
export/opml.xml

Prioridade: alta.


14.3. Licença por post

Permitir licenças diferentes:

license = "CC BY-SA 4.0"

Ou uma licença padrão no rodapé.

Prioridade: média.


14.4. Canonical URL

Cada post deve ter canonical.

<link rel="canonical" href="https://pablo.space/blog/post/">

Prioridade: alta.


14.5. Conteúdo espelhado

Espelhos possíveis:

GitHub Pages
Codeberg Pages
servidor próprio
IPFS

Prioridade: média.

Cuidado: espelho demais aumenta manutenção.


14.6. IPFS para arquivo

Como você já mexe com IPFS, pode publicar snapshots:

/ipfs/
/ipns/

Mas não faça do IPFS o caminho principal do site. Use como preservação/experimento.

Prioridade: média para você; baixa para pessoas normais.


15. Recursos de descoberta

15.1. Página /random/

Botão para post aleatório.

Por que é ótimo:

  • Reaproveita arquivo antigo.
  • Dá sensação de exploração.

Prioridade: alta.


15.2. “Related posts” manual

Nada de algoritmo tosco. Use campo manual:

related = [
  "/blog/rss-e-web-independente/",
  "/projects/le-rss/"
]

Prioridade: alta.


15.3. Séries

Caminho:

/series/
/series/indieweb/
/series/servidores/
/series/cinema-estranho/

Prioridade: alta.


15.4. Tags úteis, não lixo

Evite tag demais.

Ruim:

web, internet, site, coisa, teste, pessoal, misc

Bom:

indieweb
activitypub
rss
selfhosted
cinema-estranho
infra-log
portal-idea

Prioridade: alta.


15.5. Índice temático

Além de tags, crie páginas curatoriais:

/topics/indieweb/
/topics/fediverse/
/topics/selfhosting/
/topics/cinema/
/topics/books/

Essas páginas podem misturar artigos, notas, links, projetos e reviews.

Prioridade: altíssima.


16. Recursos experimentais e deliciosamente estranhos

16.1. Jardim digital

Caminho:

/garden/

Notas não necessariamente finalizadas, conectadas por links internos.

Estados:

seedling
budding
evergreen
withered

Prioridade: alta se você realmente usar.
Risco: virar depósito bagunçado.


16.2. Wiki pessoal

Caminho:

/wiki/

Para conceitos recorrentes:

/wiki/indieweb/
/wiki/activitypub/
/wiki/gotosocial/
/wiki/rss/
/wiki/permacomputing/
/wiki/napoleon-dynamite-core/

Prioridade: alta para pesquisador.


16.3. Zettelkasten público parcial

Notas conectadas por backlinks.

Recursos:

  • backlinks;
  • links internos [[assim]];
  • grafo opcional;
  • tags;
  • estado da nota.

Cuidado: grafo visual quase sempre é enfeite inútil. Backlinks textuais são mais úteis.

Prioridade: média-alta.


16.4. Página “on this day”

Mostra posts publicados no mesmo dia em anos anteriores.

Em 30 de junho:
- 2024: texto X
- 2025: projeto Y
- 2026: nota Z

Prioridade: média.


16.5. Moodboard público

Caminho:

/moodboard/

Imagens, cores, referências visuais, pôsteres, screenshots de interfaces, capas.

Cuidado: copyright. Use links, thumbnails próprios quando permitido, ou imagens livres.

Prioridade: média.


16.6. Página “signals”

Um painel com sinais vivos:

último post
última nota
último filme visto
último livro finalizado
última música ouvida
último projeto atualizado
status dos servidores públicos

Prioridade: alta para você.


16.7. Status board pessoal

Inspirado em Panic Status Board, mas small web:

/status/

Widgets:

  • uptime público;
  • posts recentes;
  • cursos Portal IDEA publicados;
  • scrobbles;
  • filmes;
  • RSS monitorados;
  • servidores;
  • tarefas de projetos;
  • visitantes via analytics leve.

Prioridade: alta para você, mas não no MVP.


16.8. Rádio/TV pessoal integrada

Como você já tem Murad TV/Owncast:

/live/
/tv/
/radio/

Mostrar:

  • player;
  • programação;
  • “now playing”;
  • histórico;
  • RSS da programação;
  • chat ou link para chat.

Prioridade: alta para ecossistema Pablo.


16.9. Pet/site mascot

Um mascot pequeno tipo Prami ou Shelf Wraith.

Uso:

  • aparece no rodapé;
  • comenta páginas aleatórias;
  • dá dicas de navegação;
  • muda conforme horário ou seção;
  • tem página própria.

Cuidado: se exagerar, vira cringe. Mascote bom é tempero, não prato principal.

Prioridade: média-alta.


16.10. “Site weather”

Um recurso poético mostrando o clima do site:

Site weather: quiet, caffeinated, indexing old ghosts.

Pode ser manual ou derivado de atividade recente.

Prioridade: baixa, mas charmoso.


17. Recursos para publicação constante

17.1. Templates de post

Comandos:

make note
make link
make article
make film
make book
make infra-log

Cada um gera frontmatter pronto.

Prioridade: altíssima.


17.2. Inbox de ideias

Caminho privado ou público:

/_inbox/

Para capturar ideias rapidamente.

Depois você promove para artigo, nota, projeto etc.

Prioridade: alta.


17.3. Rascunhos públicos opcionais

Alguns textos podem aparecer como draft/lab:

/lab/

Com aviso:

Isto é uma nota em progresso, não um artigo final.

Prioridade: média.


17.4. Sistema de “maturidade” do conteúdo

Estados:

seed      ideia bruta
sprout    nota inicial
leaf      texto útil
tree      referência estável
dead      arquivado/obsoleto

Prioridade: média-alta para jardim digital.


17.5. Publicação por e-mail

Enviar e-mail para um endereço secreto e transformar em post.

Fluxo:

e-mail recebido
→ parser
→ gera Markdown
→ commit
→ build

Prioridade: média.
Dificuldade: média.


17.6. Publicação por Telegram/Matrix/Discord privado

Você manda uma mensagem para um bot e ele cria nota.

Prioridade: alta para praticidade.
Dificuldade: média.

Minha opinião: para você, isso pode ser mais útil que Micropub. Você já vive em automação e bot.


18. Recursos anti-enshittification

18.1. Sem dependência de algoritmo

Tudo deve ser navegável por:

  • cronologia;
  • tags;
  • busca;
  • tópicos;
  • arquivo;
  • feeds;
  • links internos.

Prioridade: altíssima.


18.2. Conteúdo canônico no seu domínio

Nunca trate LinkedIn, Mastodon, Bluesky ou Reddit como origem permanente.

Regra:

Se é importante, nasce ou morre arquivado no seu site.

Prioridade: absoluta.


18.3. Links externos com contexto

Não faça só lista de links. Dê contexto.

Ruim:

https://example.com

Bom:

Readable CSS — uma base CSS minimalista boa para texto longo. Útil se você quer legibilidade sem framework.

Prioridade: alta.


18.4. Link rot detection

Script periódico para detectar links mortos.

Relatório:

links quebrados
redirecionamentos
certificados vencidos
HTTP 403/404/500

Prioridade: alta.


18.5. Snapshot de links importantes

Para links críticos, salvar:

  • título;
  • autor;
  • data;
  • resumo;
  • URL original;
  • archive.org se disponível;
  • trecho curto.

Cuidado: não republicar conteúdo alheio integralmente.

Prioridade: média-alta.


19. SEO sem vender a alma

19.1. Metadados básicos

  • title;
  • description;
  • canonical;
  • Open Graph;
  • Twitter Card;
  • JSON-LD opcional;
  • sitemap.

Prioridade: alta.


19.2. Open Graph decente

Cada post deve ter imagem social simples.

Você pode gerar cards automaticamente:

título
categoria
data
pablo.space

Prioridade: média-alta.


19.3. Páginas topic-first

Para SEO e utilidade, crie páginas por assunto:

/topics/rss/
/topics/activitypub/
/topics/gotosocial/
/topics/indieweb/

Essas páginas são melhores que tag burra porque têm introdução, curadoria e links.

Prioridade: alta.


20. Segurança e operação

20.1. Site estático como padrão

Se puder ser estático, deixe estático.

Vantagens:

  • barato;
  • rápido;
  • seguro;
  • fácil de backup;
  • fácil de migrar.

Prioridade: absoluta.


20.2. Build reproduzível

Use:

Makefile
justfile
Nix flake opcional
Dockerfile opcional

Comandos:

make dev
make build
make check
make deploy

Prioridade: alta.


20.3. CI com validação

No GitHub Actions/Forgejo Actions:

  • build do site;
  • validação de links internos;
  • validação de HTML;
  • geração de feeds;
  • checagem de imagens pesadas;
  • deploy.

Prioridade: alta.


20.4. Backup simples

Se o conteúdo está em Git, backup já fica fácil. Mesmo assim:

Git remoto 1
Git remoto 2
backup .tar.gz periódico
export de conteúdo

Prioridade: alta.


21. Craft CMS cabe aqui?

Sim, mas com ressalvas.

Quando Craft CMS faz sentido

Craft CMS cabe se o site virar um sistema editorial estruturado, com muitos tipos de conteúdo e relações complexas:

Posts
Notas
Filmes
Livros
Projetos
Servidores
Cursos
Pessoas
Links
Séries
Tags
Coleções
Mídia

Craft seria bom para:

  • painel administrativo bonito;
  • campos customizados;
  • relações entre entidades;
  • edição por pessoas não técnicas;
  • assets/capas/imagens;
  • conteúdo multilíngue;
  • permissões;
  • GraphQL/API;
  • seções complexas.

Quando Craft CMS é exagero

Craft é exagero se o objetivo inicial for:

blog pessoal
notes
RSS
Webmention
arquivo Markdown
site rápido
small web artesanal

Porque ele traz:

  • banco de dados;
  • painel;
  • atualizações;
  • plugins;
  • backup mais delicado;
  • superfície de ataque;
  • hospedagem mais exigente;
  • menos portabilidade que Markdown puro.

Recomendação honesta

Para começar:

Zola ou Astro + Markdown + Pagefind + Webmention.io

Para evoluir quando houver necessidade real:

Craft CMS headless ou Craft CMS completo

Mas não comece com Craft só porque ele é bonito e poderoso. Poder sem necessidade vira manutenção. Você já tem projetos demais; não precisa construir outro castelo antes de saber se vai morar nele.


22. Stack recomendada para você

MVP forte

Zola
Markdown
Templates Tera
CSS próprio
Pagefind ou Elasticlunr
RSS/Atom/JSON Feed
Microformats2
Webmention.io
GitHub/Codeberg Actions
Deploy em servidor próprio, Cloudflare Pages ou GitHub Pages

Stack alternativa moderna

Astro
Content Collections
Markdown/MDX
Pagefind
RSS/Atom
Microformats2 em componentes
Webmention.io
Deploy em Cloudflare Pages ou servidor próprio

Stack mais editorial

Craft CMS
PostgreSQL/MySQL
Templates Twig
Feed plugin/custom
Webmention custom/plugin
Campos estruturados
GraphQL opcional

Stack que eu evitaria no começo

Next.js + React para blog simples
WordPress cheio de plugin
Craft antes de validar estrutura editorial
ActivityPub próprio no MVP
Comentários locais sem moderação forte

23. Roadmap prático recomendado

Fase 1 — Fundação

  • domínio;
  • homepage;
  • about;
  • now;
  • uses;
  • blog;
  • notes;
  • RSS/Atom;
  • sitemap;
  • h-card;
  • h-entry;
  • rel-me;
  • CSS leve.

Fase 2 — Arquivo vivo

  • film log;
  • reading log;
  • projects;
  • infra log;
  • links/bookmarks;
  • blogroll;
  • OPML;
  • busca local;
  • tags e tópicos.

Fase 3 — IndieWeb real

  • Webmention receive;
  • Webmention send;
  • syndication links;
  • página /syndications/;
  • POSSE manual;
  • reply posts;
  • likes/bookmarks próprios.

Fase 4 — Automação

  • bot para criar notes;
  • publicação por Telegram/Matrix;
  • import PESOS seletivo;
  • cards sociais automáticos;
  • link checker;
  • changelog automático;
  • backfeed parcial.

Fase 5 — Federação/experimentos

  • WebFinger;
  • Bridgy Fed;
  • ActivityPub via serviço ou implementação própria;
  • twtxt;
  • IPFS snapshot;
  • painel status;
  • mascote.

24. Lista curta dos recursos mais excepcionais

Se eu tivesse que escolher só 20, seriam estes:

  1. Domínio como identidade principal.
  2. rel=me.
  3. h-card.
  4. h-entry.
  5. RSS/Atom completo e segmentado.
  6. JSON Feed.
  7. Blogroll + OPML.
  8. Página /now/.
  9. Página /uses/.
  10. Página /colophon/.
  11. Webmention recebida.
  12. Webmention enviada.
  13. POSSE com links de syndication.
  14. Página /syndications/.
  15. Notes/microblog no próprio site.
  16. Linklog/bookmarks comentados.
  17. Film log e reading log.
  18. Infra log.
  19. Busca local.
  20. Publicação rápida por bot/painel.

Esses 20 já dariam um site pessoal brutalmente acima da média.


25. O que eu faria no seu caso específico

Eu montaria um site chamado algo como:

pablo.space

Com a seguinte estrutura:

/
/about/
/now/
/uses/
/colophon/
/blog/
/notes/
/links/
/projects/
/infra-log/
/film-log/
/reading/
/garden/
/wiki/
/syndications/
/blogroll/
/status/
/live/
/feed.xml
/feeds/

E separaria a identidade assim:

pablo.space        casa pessoal/autoral
pablomurad.com     perfil mais profissional
portalidea.com.br  negócio
runv.club          comunidade/pubnix
murad.social       fediverso

Não misture tudo no mesmo site. Misturar Portal IDEA, diário pessoal, cinema estranho, GoToSocial, servidores, dieta, artigo técnico e mascote no mesmo lugar sem arquitetura vira gaveta bagunçada.

A solução é ter um site pessoal com seções claras e links para os outros mundos.


26. Fontes e referências consultadas


27. Conclusão

O melhor site IndieWeb/small web para você não deve tentar ser uma rede social inteira no primeiro dia. Ele deve ser um arquivo vivo, com identidade própria, feeds bons, semântica HTML, Webmentions, POSSE, logs pessoais e catálogo dos seus mundos.

A tecnologia deve servir a isso, não sequestrar o projeto.

A frase guia deveria ser:

Meu site é a origem. O resto da internet são ecos.

Did this resonate?

Related documents