Blog

Artigos

Textos longos da nossa equipe. Engenharia, produto e novidades da empresa.

  • Product

    Uma central de ajuda multilíngue sem páginas vazias

    O portal hospedado do Kookee mostrava todas as páginas no idioma padrão do projeto, qualquer que fosse o idioma escolhido pelo leitor. Agora cada idioma tem seu próprio endereço, uma página sem tradução aparece no idioma padrão, e o seletor de idiomas lista só os idiomas do projeto.

  • Product

    Como adicionar uma página de status ao seu SaaS

    As decisões por trás da página de status de um SaaS: o que listar, quando um monitor de disponibilidade deve declarar uma queda, como redigir as atualizações de um incidente e onde a página deve ficar, com a página de status e os monitores de disponibilidade que acabei de adicionar ao Kookee como exemplo prático.

  • Product

    Seus webhooks não deveriam confiar na URL que receberam

    O webhook é o único recurso em que o cliente digita um endereço e os seus servidores vão lá chamá-lo. O que construí para os webhooks do Kookee e para as integrações com Slack, GitHub e Jira, e oito coisas que quem envia webhooks precisa acertar.

  • Product

    Sua central de ajuda não deveria começar do zero

    A maioria das equipes já tem o conteúdo de ajuda, em PDFs, arquivos do Word e exportações antigas. As centrais de ajuda ficam vazias porque ninguém tem tempo de redigitar tudo isso. O que construí para importar esse conteúdo, e as sete regras que impedem uma importação de entregar segredos a um chatbot.

  • oauth

    Seu servidor MCP não deveria obrigar as pessoas a colar um token

    O servidor MCP do Kookee funcionava bem com tokens pessoais, desde que você vivesse no terminal. Os apps de chat do Claude e o ChatGPT se conectam fazendo login. O que lancei para que eles possam se conectar, e as sete decisões que levaram mais tempo que o código.

  • Product

    Seu widget de feedback não deveria exigir cadastro

    O quadro de feedback do Kookee pede uma conta, e para votar isso faz sentido. Para o visitante que acabou de topar com um bug e tem meio minuto, é um muro. A nova aba Feedback do widget do site, as cinco regras que segui para construí-la e por que o chat com IA agora também é opcional.

  • headless-cms

    Os componentes React do seu CMS não deveriam buscar os próprios dados

    A maioria dos kits de componentes de headless CMS envolve seu app num provider e busca os dados dentro dos componentes. Com Server Components, isso tira o conteúdo do primeiro HTML, envia JavaScript para listas estáticas e manda os artigos duas vezes. As seis regras que segui nos componentes do Kookee.

  • Engineering

    O React 19 reescreve seu dangerouslySetInnerHTML a cada renderização

    Um objeto { __html } inline faz o React 19 substituir todo o HTML de um elemento sempre que o pai renderiza de novo. Descobri isso por causa de um índice que travava no último título. Por que acontece, o que quebra e a correção de uma linha.

  • pagination

    A paginação do seu blog provavelmente esconde posts do Google

    Botão “Carregar mais”, paginação guardada no estado, todas as páginas com a canonical apontando para a primeira, noindex na página dois: quatro jeitos comuns de a paginação esconder dos buscadores os posts antigos do blog, o que fazer em vez disso e uma checklist.

  • security

    Seu link de convite é uma senha que você colou no Slack

    Ao mandar um link de convite para alguém, você entrega uma credencial que funciona para qualquer pessoa que um dia a veja. O que esse link precisa ter antes de ser seguro colá-lo num canal, e as decisões por trás do link do Kookee.