O que é o AT Protocol

O AT Protocol (Authenticated Transfer Protocol, ou ATProto) e um protocolo de rede social descentralizado criado pela empresa Bluesky Social. Foi desenvolvido originalmente com apoio de Jack Dorsey, cofundador do Twitter, como uma tentativa de criar uma alternativa aberta e descentralizada as redes sociais tradicionais.

A ideia central e simples mas poderosa: em vez de seus dados ficarem presos no servidor de uma empresa, o ATProto permite que você leve sua conta, seguidores, posts e histórico para qualquer plataforma compatível. E como ter um número de telefone que você pode levar de uma operadora para outra - só que para redes sociais.

O protocolo ganhou traction real em 2023 quando o Bluesky abriu o cadastro público e em 2024 quando explodiu em popularidade, chegando a mais de 20 milhões de usuários em novembro de 2024, impulsionado por migrações do X (antigo Twitter).

Como funciona o ATProto na prática

O ATProto e construido sobre alguns conceitos técnicos fundamentais que o diferenciam das redes sociais tradicionais:

DID (Decentralized Identifier): cada usuário tem um identificador único que não pertence a nenhuma empresa específica. Você pode usar o seu próprio domínio como handle (por exemplo, você.dev) em vez de ficar preso ao handle de uma plataforma.

PDS (Personal Data Server): e onde seus dados ficam armazenados. Pode ser o servidor do Bluesky, um servidor de terceiros ou até o seu próprio servidor. O protocolo garante que os dados sejam idênticos independente de onde estão hospedados.

Lexicons: são os esquemas que definem os tipos de dados que o protocolo entende - posts, perfis, likes, reposts. Qualquer desenvolvedor pode criar novos lexicons para novos tipos de interação.

💡
Dica

Você pode usar seu próprio domínio como handle no Bluesky adicionando um arquivo .well-known/atproto-did na raiz do seu domínio. E uma forma elegante de verificar identidade sem depender de uma plataforma centralizada.

O fluxo básico e: você pública um post no Bluesky (ou em qualquer app ATProto). Esse post fica no seu PDS. O AppView (camada de indexação) coleta posts de todos os PDSs e os torna pesquisáveis. Qualquer cliente (Bluesky, Skylight, deck.blue, e outros) pode exibir esses dados.

Principais diferenciais do ATProto

O que torna o ATProto diferente de outras tentativas de descentralização?

  • Portabilidade de conta: se o Bluesky fechar ou mudar suas políticas, você pode migrar sua conta inteira para outro servidor ATProto sem perder seguidores ou histórico de posts.
  • Algoritmos escolhidos pelo usuário: diferente do Twitter/X que tem um algoritmo único e opaco, o ATProto permite que qualquer desenvolvedor crie e publique feeds alternativos. Você pode usar o feed cronológico, o algoritmo padrão do Bluesky, ou um feed customizado que filtra por tópico.
  • Moderação descentralizada: existem provedores de moderação independentes (Ozone) que qualquer cliente pode adotar ou ignorar. Você tem mais controle sobre o que ver e o que não ver.
  • Open source: o protocolo e todas as implementações de referência estão em código aberto no GitHub.

Como começar a construir no ATProto

Se você e desenvolvedor e quer explorar o ATProto, o ponto de entrada mais fácil e o SDK oficial em TypeScript:

npm install @atproto/api

Com ele você pode autenticar e interagir com a rede em poucas linhas:

import { BskyAgent } from "@atproto/api";

const agent = new BskyAgent({
  service: "https://bsky.social"
});

await agent.login({
  identifier: "seu.handle.bsky.social",
  password: "sua-senha"
});

await agent.post({
  text: "Meu primeiro post via API do ATProto!",
  createdAt: new Date().toISOString()
});
⚠️
Atenção

Para aplicações em produção, use App Passwords em vez da senha principal da conta. Crie em Configurações > Privacidade e segurança > Senhas de aplicativo no Bluesky.

Exemplo prático: criando um feed customizado

Uma das capacidades mais interessantes do ATProto para desenvolvedores e a criação de feeds algorítmicos próprios. Um feed generator e um servidor HTTP simples que o Bluesky consulta:

// Feed generator minimalista
// Responde ao endpoint /xrpc/app.bsky.feed.getFeedSkeleton

app.get("/xrpc/app.bsky.feed.getFeedSkeleton", async (req, res) => {
  const posts = await buscarPostsDoMeuAlgoritmo();
  
  res.json({
    feed: posts.map(uri => ({ post: uri }))
  });
});

Após publicar seu feed generator, você o registra no próprio Bluesky como um novo feed. Qualquer usuário pode então adicionar e usar seu algoritmo. A comunidade já criou centenas de feeds especializados - de posts sobre programação a feeds de humor brasileiro.

Comparação: ATProto vs. ActivityPub (Mastodon)

ActivityPub e o outro grande protocolo de redes sociais descentralizadas, usado pelo Mastodon, Misskey e outros. A diferença principal e de arquitetura:

ActivityPub usa uma federação de servidores independentes. Cada servidor tem seus próprios usuários, regras e moderação. Você pode seguir alguém em outro servidor, mas migrar de servidor e complicado e nem sempre preserva seguidores.

ATProto separa armazenamento de dados (PDS) de indexação e exibição (AppView). Isso permite portabilidade de conta muito mais simples e permite que múltiplos clientes e algoritmos diferentes convivam na mesma rede de dados.

🚀
Pro tip

O ATProto e o ActivityPub não são mutualmente exclusivos. Já existem bridges que permitem seguir contas do Mastodon a partir do Bluesky e vice-versa. A web descentralizada esta convergindo gradualmente.

Pontos positivos e limitações

O que é genuinamente bom: a portabilidade de dados e real e funciona. O ecossistema de clientes e feeds alternativos esta crescendo. A API e bem documentada e o SDK e estável para uso em produção. Para desenvolvedores, e uma plataforma genuinamente aberta onde você pode construir coisas que não seriam possíveis no Twitter/X.

Limitações reais:

  • Descentralização parcial na prática: mais de 90% dos usuários usam o PDS do próprio Bluesky. A promessa de descentralização só se realiza se as pessoas realmente migrarem para servidores alternativos.
  • Escala incerta: o protocolo foi projetado para descentralização, mas a maioria do tráfego ainda passa pela infraestrutura do Bluesky. Como vai se comportar com escala real distribuída ainda e uma incógnita.
  • Fragmentação de moderação: a moderação descentralizada e um ideal, mas na prática e mais complexa de implementar e pode criar inconsistências de experiência entre clientes.

Casos de uso reais para desenvolvedores

O que desenvolvedores brasileiros estão construindo em cima do ATProto?

Bots e automações: newsletters que postam automaticamente, bots de noticias tecnológicas, contas automatizadas de utilidade pública. A API e simples e a autenticação via App Password e segura para esse caso de uso.

Clientes alternativos: o deck.blue (cliente estilo TweetDeck), o Graysky (cliente mobile) e o Skylight são exemplos de clientes construidos sobre o ATProto. O ecossistema ainda tem espaço para inovação em UX.

Ferramentas de análise: como todos os dados são públicos e acessíveis via API, e possível construir ferramentas de análise de sentimento, tendências e grafos de conexão sem restrições de acesso.

Plataformas de nicho: o White Wind (editor de blog no ATProto) e o Frontpage (agregador de links estilo Hacker News) mostram que da para construir aplicações completas usando o protocolo como backend social.

Dicas e boas práticas

💡
Dica

Para experimentar a API sem configurar um projeto completo, use o atproto.blue - e um playground web onde você testa endpoints do ATProto diretamente no browser.

🚀
Pro tip

Use cursors para paginação em todas as consultas. A API do ATProto usa paginação por cursor (não por página numerada) e sem isso você vai perder dados em coleções grandes.

⚠️
Atenção

O ATProto ainda esta evoluindo. Alguns endpoints e lexicons podem mudar entre versões. Monitore o repositório oficial no GitHub e o blog de desenvolvedores do Bluesky para não ser pego de surpresa por breaking changes.

🔴
Cuidado

Nunca faca scraping agressivo da API pública. O Bluesky tem rate limits e pode bloquear IPs que fazem muitas requisições. Use os firehose (fluxos de dados em tempo real) para coleta em escala em vez de polling de endpoints.

Vale a pena construir no ATProto?

Para desenvolvedores que querem explorar o futuro das redes sociais abertas, sim. O ATProto tem uma comunidade técnica ativa, documentação em crescimento e casos de uso reais já em produção. Não e um protocolo hipotético - e uma plataforma funcionando com milhões de usuários reais.

O ponto de entrada recomendado: crie uma conta no Bluesky, instale o SDK oficial (@atproto/api), e experimente criar um feed customizado. E a melhor forma de entender na prática o que o protocolo oferece e onde estão os limites reais.