glossary

Como funciona o limite de caracteres do Bluesky em grafemas

Taras Shynkarenko
Taras Shynkarenko
•Updated: •7 minutos de leitura
Como funciona o limite de caracteres do Bluesky em grafemasComo funciona o limite de caracteres do Bluesky em grafemas

TL;DR

7 minutos de leitura

O próprio léxico do AT Protocol para um post do Bluesky, app.bsky.feed.post, fixa o limite de caracteres do Bluesky em 300 clusters de grafemas e 3000 bytes UTF-8 por post. Um link completo ou um @handle completo conta para esse limite sem nenhum encurtamento, já que o protocolo guarda menções e links como posições dentro do mesmo texto, e não como objetos separados. Um nome de exibição é limitado a 64 grafemas e uma descrição de perfil a 256 grafemas, e um thread é montado encadeando posts separados por meio de um campo reply, em vez de esticar o limite de um único post.

Qual é o limite de caracteres do Bluesky?

O limite de caracteres do Bluesky é de exatos 300 clusters de grafemas por post, um teto fixo que o próprio léxico do AT Protocol para app.bsky.feed.post define diretamente, ao lado de um teto separado de 3000 bytes medidos em UTF-8, verificado em 9 de setembro de 2026. Os dois números valem para o mesmo campo ao mesmo tempo, então um post precisa caber dentro do limite que ele atingir primeiro, embora o teto de 300 grafemas seja o que quase todo post alcança antes de o teto de bytes sequer se tornar relevante. Todo post criado pelo aplicativo oficial do Bluesky ou por qualquer cliente construído sobre o AT Protocol precisa cumprir os dois números, já que o léxico define o formato do próprio registro, e não uma regra que um cliente decide aplicar por conta própria.

Um close de uma tela de celular digitando um emoji, ilustrando como um único caractere visível pode ser contado de forma diferente das unidades de código brutas.

Qual limite é atingido primeiro
Limite de 300 grafemas
  • Atingido primeiro por quase todo post
  • Conta da forma como um leitor realmente vê o texto
Limite de 3000 bytes
  • Raramente atingido, já que a maioria dos caracteres usa menos de dez bytes
  • Só se torna relevante com conteúdo fortemente multibyte
Os dois limites se aplicam ao mesmo campo app.bsky.feed.post, mas o limite de grafemas é o que quase todo post atinge primeiro.

O que é um grafema, e por que o Bluesky conta dessa forma?

Um grafema é uma única unidade de texto do jeito que um leitor a percebe, o que nem sempre coincide com um único caractere na forma como um computador armazena esse texto. A própria documentação da biblioteca cliente do AT Protocol, publicada no pacote @atproto/api no GitHub, dá o exemplo de um emoji de família, "👨‍👩‍👧‍👧", que uma verificação em JavaScript com .length reporta como 25 unidades separadas, mas que o método .graphemeLength da biblioteca reporta como exatamente 1, batendo com o que uma pessoa realmente vê na tela. O Bluesky conta o limite de 300 usando esse segundo método, voltado para o que a pessoa vê, em vez da contagem bruta de unidades de código que uma linguagem de programação usa internamente, e é por isso que um post cheio de emojis pode parecer curto e ainda assim consumir bem mais do limite do que um texto simples do mesmo tamanho visível.

TextoTamanho em JavaScript (unidades UTF-16)Tamanho em grafemas
Hello55
👨‍👩‍👧‍👧251

Sim, um link completo ou um @handle completo conta para o limite de 300 grafemas na sua forma completa e visível, sem nenhum encurtamento automático. A própria documentação do @atproto/api do AT Protocol descreve menções e links como facets, metadados que marcam um intervalo de bytes dentro do próprio texto do post, em vez de um campo separado que substitui esse texto, então os caracteres da URL ou do handle fazem parte do que é contado, não algo colocado por cima. Um post que precisa linkar para algum lugar tem que reservar espaço de grafemas para a URL completa em si, diferente de uma plataforma que troca um link longo por um código curto de tamanho fixo antes de contar.

Quais são os limites de nome de perfil e bio no Bluesky?

Um nome de exibição do Bluesky é limitado a 64 grafemas e 640 bytes, e uma descrição de perfil, o campo de bio, é limitada a 256 grafemas e 2560 bytes, ambos definidos diretamente no léxico do AT Protocol para app.bsky.actor.profile, verificado em 9 de setembro de 2026. Os dois limites seguem a mesma estrutura de grafemas mais bytes de um post, então o mesmo comportamento de emoji que afeta um post de 300 caracteres também vale para um nome de exibição ou uma bio escritos com emoji. Um perfil que quer a bio de texto simples mais longa possível tem quase dez vezes mais espaço do que um único post permite.

CampoLimite em grafemasLimite em bytes (UTF-8)
Texto do post3003000
Nome de exibição64640
Descrição de perfil (bio)2562560

Uma pessoa escrevendo em várias páginas de um caderno, refletindo como um pensamento longo é dividido em uma cadeia de posts conectados.

Como os threads contornam o limite de caracteres?

Um thread é montado publicando vários posts separados e ligando cada um ao anterior por meio de um campo reply, em vez de esticar um único post além de 300 grafemas, segundo o mesmo léxico app.bsky.feed.post. Esse campo reply exige tanto uma referência root, que aponta para o primeiro post do thread, quanto uma referência parent, que aponta para o post ao qual se está respondendo, então cada post de um thread carrega seu próprio endereço completo de volta até onde o thread começou. Escrever além do limite significa dividir o texto em vários posts e publicá-los como respostas uns aos outros em ordem, o mesmo mecanismo usado para qualquer corrente comum de respostas.

Encadeando posts em um thread
O post um é escrito e publicado normalmente, limitado a 300 grafemas
O post dois define reply.parent como o post um e reply.root como o post um
O post três define reply.parent como o post dois e reply.root de volta ao post um
Os clientes renderizam a corrente como um único thread usando essas referências root e parent
Estrutura segundo o léxico app.bsky.feed.post do AT Protocol, verificado em 9 de setembro de 2026.

O que acontece se um post passar do limite?

Um post que ultrapassa 300 grafemas ou 3000 bytes não chega a ser criado como um único registro app.bsky.feed.post, já que os dois números são restrições que o próprio léxico impõe a esse tipo de registro, e não um aviso que um cliente mostra depois. O próprio aplicativo do Bluesky e todo cliente do AT Protocol que segue o léxico bloqueiam o envio nesse limite, e é por isso que a solução prática é sempre um thread, encadeando posts adicionais por meio do campo reply, e não algum ajuste que aumente o limite. Escrever mirando o limite de propósito, em vez de descobrir isso no meio do post, é a diferença entre um thread limpo e um post cortado de forma estranha bem na fronteira.

O Bluesky é uma de cinco plataformas que o RedReplier monitora em busca de menções de marca e conversas com intenção de compra, ao lado de Reddit, X, Facebook e Hacker News, e a mesma fronteira de 300 grafemas vale para todo post que o RedReplier traz da busca do Bluesky. A sintaxe exata de consulta para encontrar esses posts em primeiro lugar está em operadores de busca do Bluesky, e o identificador que mantém uma busca salva combinando com uma conta mesmo depois que ela muda o handle é explicado em DIDs do AT Protocol. Uma ferramenta que posta em seu nome pela API esbarra na mesma fronteira de 300 grafemas do registro, e como conectar uma com segurança está em senhas de aplicativo do Bluesky.

Perguntas frequentes

O limite de caracteres do Bluesky é de 300 caracteres ou 300 grafemas?

São 300 grafemas, não 300 caracteres brutos do jeito que uma linguagem de programação conta por padrão. Um único emoji visível pode ocupar bem mais de uma unidade numa contagem de caracteres bruta, então o Bluesky conta usando clusters de grafemas, que batem com o que uma pessoa realmente vê.

Colar uma URL longa consome mais do limite de 300 grafemas do que uma curta?

Sim. O AT Protocol guarda o texto completo de um link como parte do post e o marca com um facet, em vez de substituí-lo por um código encurtado, então cada caractere da URL conta para o limite de 300 grafemas.

Qual é o limite de bytes ao lado do limite de 300 grafemas?

O léxico de post do Bluesky também limita um post a 3000 bytes medidos em UTF-8. Quase todo post alcança o limite de 300 grafemas antes de chegar ao limite de bytes, porque a maioria dos caracteres usa menos de dez bytes cada.

Quanto pode medir um nome de exibição do Bluesky?

Um nome de exibição é limitado a 64 grafemas e 640 bytes, segundo o léxico do AT Protocol para um perfil do Bluesky. Isso é separado do campo de descrição de perfil, que permite até 256 grafemas.

Quanto pode medir uma bio do Bluesky?

Uma descrição de perfil do Bluesky, o campo de bio, é limitada a 256 grafemas e 2560 bytes, segundo o próprio léxico de perfil do AT Protocol. Isso dá a uma bio quase dez vezes o espaço que um único post permite.

Posso escrever um post longo no Bluesky desligando o limite de caracteres?

Não. Os tetos de 300 grafemas e 3000 bytes são impostos pela própria definição do léxico do registro de post, não por uma configuração do aplicativo que um usuário possa mudar. Escrever além do limite significa dividir o texto em vários posts conectados pelo campo reply, formando um thread.

RedReplier
RedReplier

Começar

Reddit, X, Bluesky e HN

Alertas de intenção em tempo real

Respostas IA ilimitadas

Classificado por intenção de compra

Uma hashtag conta para o limite de 300 grafemas na forma completa e sem encurtamento, assim como um link ou um @handle. Cada caractere do texto da hashtag ocupa espaço de grafemas contra o limite do post. Isso vale seja a hashtag curta ou longa, já que o Bluesky não a comprime antes de contar.

O limite de 300 grafemas também vale para apps de terceiros do Bluesky, ou só para o app oficial?

Os limites de 300 grafemas e 3000 bytes vêm do próprio léxico do AT Protocol para app.bsky.feed.post, não de uma regra que só o app oficial aplica. Todo post criado pelo app do Bluesky ou por qualquer cliente construído sobre o protocolo precisa respeitar os dois números, porque o léxico define o formato do registro em si. Um app de terceiros aplica o mesmo limite, não um próprio.

O que é um facet em um post do Bluesky?

Um facet é um metadado dentro de um registro de post que marca um intervalo de bytes dentro do próprio texto do post, o mecanismo que o AT Protocol usa para uma menção ou um link. Ele não substitui a URL ou o @handle por um campo separado, então os caracteres marcados continuam fazendo parte do texto que conta para o limite de 300 grafemas. É por isso que um link completo custa exatamente o mesmo espaço de grafemas que esse mesmo texto digitado como palavras comuns.

Todo post em uma thread do Bluesky precisa da sua própria referência root e parent?

Cada post de uma thread carrega um campo reply com duas referências, um root que aponta para o primeiro post da thread e um parent que aponta para o post ao qual ele responde diretamente. Até o terceiro ou quarto post de uma cadeia define seu root de volta para esse primeiro post original, não para o post anterior. Essa estrutura é o que permite a um cliente renderizar toda a cadeia como uma única thread.

Veja-nos mais no Google

Um clique marca a RedReplier como fonte preferida e nossos artigos passam a aparecer mais acima nas suas Principais notícias, no modo IA e nas visões gerais com IA.

Antes de você ir...

RedReplier

RedReplier

Alcance cada comprador que procura o que você vende

O RedReplier monitora Reddit, X, Bluesky e Hacker News em tempo real, classifica cada tópico por intenção de compra e redige a sua resposta, para que você chegue primeiro.

Reddit, X, Bluesky e HN

Alertas de intenção em tempo real

Respostas IA ilimitadas

Classificado por intenção de compra

Artigos relacionados