O que é o Bluesky e o AT Protocol
O Bluesky e uma rede social criada inicialmente com apoio do Twitter (hoje X) e desenvolvida de forma independente desde 2022. O diferencial técnico e o AT Protocol (Authenticated Transfer Protocol), um protocolo aberto que permite a qualquer desenvolvedor criar clientes, servidores e aplicações sobre a mesma infraestrutura de dados.
A proposta central e simples: você não esta preso a um servidor específico. Sua identidade, seus posts e seus seguidores podem migrar para qualquer servidor compatível com o AT Protocol sem perder nada - diferente do Twitter/X, onde sua conta só existe nos servidores da empresa.
Para desenvolvedores, o AT Protocol e interessante porque expõe uma API pública e bem documentada, permite criar bots, feeds customizados, aplicações de terceiros e até redes sociais próprias usando a mesma base de usuários do Bluesky.
Como funciona o AT Protocol
O AT Protocol funciona sobre três componentes principais: o PDS (Personal Data Server), o AppView e o Relay. Cada usuário tem seus dados armazenados em um PDS (pode ser o oficial do Bluesky ou um que você mesmo hospeda). O Relay agrega posts de todos os PDSs e o AppView e a camada que transforma esses dados em feeds legíveis.
A identidade no AT Protocol e baseada em DIDs (Decentralized Identifiers), que podem ser vinculados a um domínio próprio. Isso significa que você pode usar seu próprio domínio como handle - por exemplo, wallyson.duarte.dev em vez de @wallyson.bsky.social.
Os dados são armazenados em repositórios imutáveis chamados CAR files, com cada operação (post, like, follow) sendo um registro assinado criptograficamente. Isso garante autenticidade e permite auditoria de qualquer ação na rede.
Principais recursos para desenvolvedores
O ecossistema do AT Protocol oferece vários pontos de entrada para devs que querem construir sobre ele:
- API REST do Bluesky (XRPC): protocolo próprio baseado em HTTP com schemas Lexicon (similar ao GraphQL mas com validação de tipo mais rígida). Permite postar, seguir, buscar e ler qualquer dado público.
- Firehose: stream em tempo real de todos os eventos da rede (posts, likes, follows). Útil para analytics, bots de monitoramento e feeds customizados.
- Custom Feeds: você pode criar um algoritmo de feed próprio e disponibiliza-lo para qualquer usuário do Bluesky. E a versão aberta dos algoritmos de recomendação.
- Labelers: serviços de moderação que qualquer desenvolvedor pode criar e distribuir - usuários escolhem quais labelers aplicar ao seu feed.
Para começar com a API do Bluesky, use o SDK oficial @atproto/api (Node.js) ou a biblioteca atproto (Python). Ambos abstraem o XRPC e deixam o código muito mais limpo.
Como começar: acesso passo a passo
Para usar a API do Bluesky como desenvolvedor, você precisa de uma conta no Bluesky e de uma App Password (senha de aplicação separada da senha principal).
Passo 1: Acesse bsky.app e crie sua conta gratuitamente.
Passo 2: Va em Settings > Privacy and Security > App Passwords e gere uma senha específica para sua aplicação.
Passo 3: Instale o SDK oficial:
npm install @atproto/api
# ou para Python
pip install atprotoPasso 4: Autentique e faca seu primeiro post via API:
const { BskyAgent } = require('@atproto/api')
const agent = new BskyAgent({ service: 'https://bsky.social' })
await agent.login({
identifier: 'seu-handle.bsky.social',
password: 'SUA_APP_PASSWORD'
})
await agent.post({
text: 'Meu primeiro post via API do Bluesky!',
createdAt: new Date().toISOString()
})Exemplo prático
Vamos criar um bot simples que monitora a firehose do Bluesky e conta quantos posts por minuto contem a palavra 'JavaScript'. Esse e um exemplo clássico de analytics em tempo real sobre a rede.
const { Firehose } = require('@atproto/sync')
let contador = 0
const inicio = Date.now()
const firehose = new Firehose({ service: 'wss://bsky.network' })
firehose.on('commit', (evt) => {
for (const op of evt.ops) {
if (op.action === 'create' && op.path.startsWith('app.bsky.feed.post')) {
const texto = op.record?.text || ''
if (texto.toLowerCase().includes('JavaScript')) {
contador++
}
}
}
})
setInterval(() => {
const mins = (Date.now() - inicio) / 60000
console.log('Posts com JavaScript por minuto: ' + (contador / mins).toFixed(1))
}, 10000)
firehose.start()Esse script conecta ao relay público do Bluesky, escuta todos os eventos em tempo real e filtra posts que mencionam JavaScript. Em produção, você substituiria o console.log por um banco de dados ou dashboard.
Comparação com alternativas
O Bluesky/AT Protocol não e a única tentativa de rede social descentralizada. As principais alternativas são o Mastodon (protocolo ActivityPub) e o Nostr.
- Mastodon/ActivityPub: protocolo mais antigo e maduro, usado por centenas de instâncias independentes. A federação e diferente: cada servidor tem sua própria comunidade e os dados ficam fragmentados. Não e possível migrar levando posts antigos.
- Nostr: mais descentralizado ainda, sem entidade central, usa chaves criptográficas como identidade. Mais difícil para usuário comum, mas com total soberania de dados.
O AT Protocol ainda esta em desenvolvimento ativo. APIs e schemas Lexicon podem mudar entre versões. Monitore o repositório oficial no GitHub antes de colocar um projeto em produção.
O diferencial do Bluesky/AT Protocol e que a migração de servidor preserva identidade, seguidores E posts antigos - algo que o ActivityPub não garante. Para devs, a API REST e muito mais simples de usar que o ActivityPub.
Pontos positivos e limitações
Pontos positivos: API pública e bem documentada, SDK oficial para Node.js e Python, firehose em tempo real para analytics, custom feeds com algoritmos próprios, identidade portável via DID e handle de domínio próprio.
Limitações reais: o protocolo ainda não suporta mensagens diretas encriptadas de ponta a ponta (DMs existem mas não são E2E). A rede ainda e menor que o Twitter/X em termos de volume. Hospedar um PDS próprio exige conhecimento técnico significativo.
Outro ponto: o modelo de moderação distribuída via Labelers e poderoso mas complexo para o usuário comum entender. A experiência fora do cliente oficial bsky.app ainda e inconsistente entre apps de terceiros.
Casos de uso reais
O AT Protocol abre possibilidades reais para desenvolvedores que queiram construir sobre uma rede social aberta:
- Bot de noticias: postar automaticamente atualizações de um RSS feed ou API de noticias no Bluesky sem depender de serviços pagos como Buffer.
- Analytics de sentimento: monitorar a firehose para medir o sentimento sobre um produto, empresa ou evento em tempo real.
- Feed customizado: criar um algoritmo de curadao especializado (ex: só posts de devs brasileiros sobre Python) e disponibiliza-lo para a comunidade.
- Espelho de conta: sincronizar posts de outra rede para o Bluesky automaticamente.
Dicas e boas práticas
Use sempre uma App Password dedicada para cada aplicação, nunca sua senha principal. Assim você pode revogar o acesso de uma app sem afetar as outras.
Vincule seu próprio domínio como handle no Bluesky (Settings > Change Handle > I have my own domain). Isso melhora sua credibilidade e deixa a identidade independente do servidor bsky.social.
A firehose do Bluesky gera um volume muito alto de eventos - centenas de posts por segundo nos horários de pico. Se você consume a firehose sem filtragem, prepare sua infraestrutura para lidar com esse throughput antes de ir para produção.
Vale a pena?
Para desenvolvedores interessados em construir sobre redes sociais abertas, o Bluesky/AT Protocol e o ponto de entrada mais acessível hoje. A API e clara, o SDK funciona bem e a comunidade de devs esta ativa no próprio Bluesky.
Se você quer apenas postar conteúdo automaticamente, o Bluesky já compete de igual para igual com o Twitter/X em facilidade de integração. Se você quer construir uma aplicação nova sobre uma rede social, o AT Protocol oferece algo que nenhuma rede fechada oferece: dados abertos e portabilidade real.
O próximo passo e criar sua conta no bsky.app, gerar uma App Password e rodar o exemplo de post automático deste artigo. A documentação oficial em atproto.com cobre todos os endpoints com exemplos prontos.
Comentários
Deixar um comentárioVocê precisa ter uma conta no Cafe com Dev Pai para comentar.