Voltar ao Blog

Como Usamos o Sutram para Manter Nosso Próprio Site

By Sergio Vieira Greve
Como Usamos o Sutram para Manter Nosso Próprio Site

Dogfooding no melhor estilo: o Sutram serve seu proprio blog e documentacao em seis idiomas


A premissa

Existe um ditado no mundo do software: se voce nao usaria o seu proprio produto, por que outra pessoa usaria? No Sutram, levamos isso a serio. Nosso site institucional — este que voce esta lendo agora — e inteiramente alimentado pela propria infraestrutura de conteudo do Sutram.

Cada post de blog, cada pagina de documentacao, cada conteudo que voce ve aqui e armazenado, organizado e servido a partir de um projeto Sutram. Isso nao e uma demo. E producao.

A arquitetura

O site e construido com Astro, um gerador de sites estaticos moderno. No momento do build, o Astro chama a API REST do Sutram para buscar todo o conteudo, renderiza tudo em HTML estatico e faz o deploy na Netlify. Sem dependencias em tempo de execucao, sem consultas a banco de dados no carregamento da pagina — apenas paginas rapidas e pre-construidas.

O fluxo de conteudo funciona assim:

Projeto Sutram
  └── /{lang}/Blog/{ano}/{slug-do-post}/
  │     ├── post.md          (corpo em markdown)
  │     └── cover.jpg         (imagem de capa, opcional)
  └── /{lang}/Docs/{categoria}/{slug-do-doc}/
        └── guide.md          (corpo em markdown)

        ↓  API REST do Sutram  ↓

Astro (build time)
  → busca pastas + tags
  → baixa arquivos markdown
  → converte imagens de capa para WebP
  → renderiza em HTML estatico

        ↓  deploy  ↓

Netlify (CDN)

Seis idiomas, uma unica estrutura

O site suporta seis idiomas: ingles, portugues, espanhol, frances, alemao e italiano. Em vez de manter sistemas de conteudo separados ou duplicar hierarquias de pastas, usamos uma convencao simples: o idioma e a raiz.

/en/Blog/2026/how-we-use-sutram/
/pt/Blog/2026/como-usamos-o-sutram/
/es/Blog/2026/como-usamos-sutram/

Cada idioma tem sua propria pasta de Blog e Docs no Sutram. O cliente da API mapeia codigos de idioma para IDs de pastas e busca o conteudo correspondente — sem filtragem por tags, sem logica de roteamento complexa. O caminho da pasta e o idioma.

As strings de interface do site (navegacao, botoes, labels) sao tratadas separadamente via arquivos JSON de traducao, mas todo o conteudo substantivo — os posts e documentacoes que voce de fato le — vive no Sutram.

Metadados como tags

Cada pasta de conteudo no Sutram carrega metadados como tags — pares simples de chave-valor associados a propria pasta:

Tag Finalidade
title Titulo de exibicao do post ou documento
author Nome do autor do post
excerpt Descricao curta para listagens e SEO
category Categoria do conteudo (ex.: "Engenharia", "Produto")
published_at Data de publicacao (controla visibilidade e ordenacao)

Essa e uma das funcionalidades centrais do Sutram: metadados estruturados em qualquer pasta, sem schemas rigidos. O cliente da API le essas tags para construir paginas de listagem, filtros por categoria e feeds RSS — tudo no momento do build.

Imagens de capa com otimizacao automatica

Posts de blog podem incluir uma imagem de capa como um arquivo dentro da pasta do post. Durante o build, o cliente Astro:

  1. Detecta o primeiro arquivo de imagem na pasta
  2. Faz o download pela API do Sutram
  3. Converte para o formato WebP usando sharp
  4. Redimensiona para 1200x630 (otimizado para compartilhamento em redes sociais)
  5. Salva no diretorio de saida estatica

Isso significa que os autores so precisam colocar uma imagem na pasta do Sutram — sem redimensionamento manual, sem conversao de formato, sem configuracao de CDN.

Gerenciando conteudo com IA e MCP

E aqui que as coisas ficam interessantes. Nos nao usamos uma interface de CMS tradicional para escrever e publicar conteudo. Em vez disso, usamos o Claude Code com o Sutram MCP Server.

O fluxo de trabalho:

  1. Escrever ou traduzir um post em markdown (frequentemente com a ajuda do Claude Code)
  2. Criar a pasta de destino no Sutram via sutram_create_folder
  3. Definir as tags de metadados via sutram_set_folder_tags
  4. Fazer upload do arquivo markdown via sutram_request_upload + sutram_confirm_upload
  5. Disparar um build na Netlify

Tudo isso acontece pelo terminal, em uma unica sessao de conversa. Sem navegador, sem campos de formulario, sem copiar e colar. O agente de IA le o conteudo, cria a estrutura de pastas, define as tags, faz o upload do arquivo, e o site se reconstroi automaticamente.

Este proprio post foi escrito, traduzido para portugues e publicado no Sutram usando exatamente esse fluxo.

O cliente da API

O coracao da integracao e um unico arquivo TypeScript (sutram.ts) que serve como ponte entre o Sutram e o Astro. Ele cuida de:

  • Descoberta de conteudo — percorre recursivamente as pastas do Sutram para encontrar registros de conteudo (qualquer pasta com uma tag title)
  • Busca de markdown — baixa o primeiro arquivo .md de cada pasta de conteudo
  • Processamento de imagens — converte imagens de capa para WebP otimizado
  • Fallback com dados mock — retorna conteudo placeholder quando as credenciais da API nao estao configuradas (para desenvolvimento local)

O cliente tem cerca de 460 linhas de TypeScript. Sem framework, sem ORM, sem camadas de abstracao — apenas chamadas fetch para a API do Sutram e sharp para processamento de imagens.

Por que isso importa

Dogfooding nao e apenas uma questao de credibilidade. Nos obriga a experimentar as mesmas dificuldades que nossos usuarios enfrentam. Cada aresta do API, cada funcionalidade que falta, cada comportamento confuso — nos sentimos primeiro.

Algumas coisas que descobrimos e melhoramos ao usar o Sutram no nosso proprio site:

  • Deteccao de conteudo baseada em tags funciona melhor do que convencoes rigidas de nomeacao de pastas
  • Travessia recursiva de pastas e essencial para hierarquias de conteudo flexiveis
  • O MCP Server torna o gerenciamento de conteudo pelo terminal nao apenas possivel, mas preferivel para equipes tecnicas
  • Pastas raiz por idioma sao mais simples do que filtragem de idioma por tags

Os numeros

Metrica Valor
Idiomas suportados 6 (en, pt, es, fr, de, it)
Tipos de conteudo 2 (Posts de blog, Documentacao)
Chamadas de API por build ~20-30
Tempo de build < 30 segundos
JavaScript em tempo de execucao 0 (HTML estatico)
Interface de CMS utilizada Nenhuma (MCP + terminal)

Conclusao

Usar o Sutram para alimentar nosso proprio site e a declaracao mais forte que podemos fazer sobre a plataforma. Nao e um projeto de brinquedo nem uma prova de conceito — e o sistema de producao que serve cada pagina que voce ve aqui.

Se o seu conteudo precisa de estrutura, sua equipe precisa de controle e seu fluxo de trabalho se beneficia de automacao — o Sutram foi construido exatamente para isso. E provamos isso todos os dias, a comecar por esta propria pagina.