seite

Gerador de sites estáticos nativo de IA com servidor MCP integrado. Crie sites, produza conteúdo, aplique temas, pesquise documentos e faça deploy via Claude Code ou qualquer cliente MCP.

Documentação

seite

Um gerador de site estático onde o Claude Code é a interface.

CI Coverage Crates.io License: MIT


seite demo

Você já tem o Claude Code. O seite dá a ele algo em que trabalhar.

seite agent "write a post about our v1 launch — here are the notes: ..."
seite agent "redesign the homepage hero, we just pivoted to B2B"
seite agent "create changelog entries for these release notes: ..."
seite agent        # interactive session

O agente lê sua configuração, seus templates e seu conteúdo existente antes de escrever qualquer coisa. A saída vai para o diretório certo com o frontmatter certo. Você revisa um diff e publica.

Sem nova assinatura. Sem nova interface para aprender. Sem novos comandos. Apenas a assinatura do Claude Code que você já tem — agora ele pode gerenciar seu site inteiro.

curl -fsSL https://seite.sh/install.sh | sh
seite init mysite --title "My Site" --collections posts,docs,pages
cd mysite && seite serve

Por que seite

A maioria dos geradores de site estático produz HTML e para por aí. O seite cria para três públicos ao mesmo tempo:

  • Navegadores recebem páginas com metadados completos de SEO, Open Graph, Twitter Cards e dados estruturados JSON-LD
  • LLMs recebem llms.txt, llms-full.txt e uma cópia .md de cada página para consumo direto
  • Ferramentas de IA recebem um servidor MCP integrado que expõe todo o seu site como recursos estruturados

Tudo a partir de Markdown + frontmatter YAML. Sem runtime JavaScript. Sem dependências de build. Um único binário faz tudo. 331 testes, 139 unitários e 192 de integração.

Integração com IA

Agente

seite agent inicia o Claude Code com contexto completo do site — configuração, inventário de conteúdo, templates e comandos disponíveis. Sem chaves de API, sem configuração. Usa sua assinatura existente do Claude Code.

seite init gera AGENTS.md com o esquema completo do seu site para que agentes de codificação compatíveis sejam orientados antes de escreverem um único caractere. Um CLAUDE.md de uma linha importa as mesmas instruções para o Claude Code. A saída vai para o diretório certo, com o frontmatter certo, seguindo suas convenções. Você revisa um diff e publica.

seite agent "write a post about our v1.2 release — here are the notes: ..."
seite agent "rewrite the homepage hero, our positioning shifted to B2B"
seite agent "generate docs stubs for each CLI command"
seite agent        # interactive session

Servidor MCP

seite mcp executa um servidor Model Context Protocol via stdio. O Claude Code o inicia automaticamente via .mcp.json, gerado por seite init. Qualquer ferramenta de IA compatível com MCP (Codex CLI, OpenCode, Cursor, ...) pode usá-lo; ele fala as revisões MCP de 2024-11-05 a 2025-11-25 via initialize, e a revisão sem estado 2026-07-28 via server/discover.

Recursos — seite://docs, seite://config, seite://content, seite://themes, seite://trust (templates: seite://content/{collection}, seite://docs/{slug})

Ferramentas — seite_build, seite_create_content, seite_get_page, seite_update_frontmatter, seite_search, seite_content_stats, seite_list_templates, seite_apply_theme, seite_create_collection, seite_lookup_docs

Isso significa que sua ferramenta de IA não tem apenas acesso de leitura ao seu site — ela tem uma interface estruturada para construir, pesquisar e modificar.

Descoberta por LLM

Cada build gera llms.txt (resumo) e llms-full.txt (markdown completo) para indexação por LLMs, além de uma cópia .md de cada página. Sites multilíngues recebem versões por idioma. SEO tradicional e GEO tratados em um único pipeline, automaticamente.

Recursos

  • 10 temas inclusos — default, minimal, dark, docs, brutalist, bento, landing, terminal, magazine, academic — ou gere um personalizado com seite theme create "coral brutalist with lime accents"
  • 6 predefinições de coleções — posts, docs, pages, changelog, roadmap e trust center
  • Multilíngue — i18n baseado em nomes de arquivo com URLs por idioma, feeds RSS, sitemaps, índices de busca e tags hreflang
  • Pipeline de imagens — redimensionamento automático, conversão para WebP, elementos srcset/<picture>, carregamento preguiçoso
  • Implantação em qualquer lugar — GitHub Pages, Cloudflare Pages, Netlify com configuração guiada, verificações pré-implementação e --dry-run
  • Analytics — Google Analytics, GTM, Plausible, Fathom, Umami com banner opcional de consentimento de cookies
  • Shortcodes — youtube, vimeo, gist, callout, figure integrados, além de templates definidos pelo usuário
  • Workspaces multi-site — gerencie vários sites a partir de um único diretório com servidor de desenvolvimento unificado
  • Auto-atualização — seite self-update busca a versão mais recente com verificação de checksum SHA256

Instalação

macOS / Linux:

curl -fsSL https://seite.sh/install.sh | sh

Windows (PowerShell):

irm https://seite.sh/install.ps1 | iex

A partir do código-fonte (requer Rust):

cargo install seite

Fixar uma versão específica:

VERSION=v0.1.0 curl -fsSL https://seite.sh/install.sh | sh

Início rápido

seite init mysite --title "My Site" --collections posts,docs,pages
cd mysite
seite serve

Abra http://localhost:3000. Edite o conteúdo em content/, os templates em templates/. Recarregamento automático a cada mudança.

# Create content
seite new post "Hello World" --tags intro,rust
seite new doc "Getting Started"
seite new changelog "v1.0.0" --tags new,improvement

# Deploy
seite deploy              # commit, push, build, deploy
seite deploy --dry-run    # preview what would happen
seite deploy --setup      # guided first-time setup

Saída do build

seite build executa um pipeline de 13 etapas e produz:

dist/
├── index.html
├── posts/
│   ├── hello-world.html       # HTML for browsers
│   └── hello-world.md         # Markdown for LLMs
├── docs/
│   └── getting-started.html
├── feed.xml
├── sitemap.xml
├── search-index.json
├── robots.txt
├── llms.txt
├── llms-full.txt
├── 404.html
└── static/

Cada página HTML inclui URLs canônicas, tags Open Graph, Twitter Cards, dados estruturados JSON-LD e um link para sua alternativa em markdown.

Coleções

PredefiniçãoDatadaRSSAninhadaCaso de uso
posts✓✓—Postagens de blog, artigos
docs——✓Documentação com navegação lateral
pages———Páginas independentes (Sobre, Contato)
changelog✓✓—Notas de versão com badges de tag coloridos
roadmap———Roadmap público com acompanhamento de status
trust——✓Hub de conformidade (SOC 2, ISO 27001, GDPR)
seite collection add changelog
seite new changelog "v2.0" --tags new,breaking

Temas

Seis temas acompanham o binário — sem downloads, sem CDNs:

TemaDescrição
defaultColuna central limpa, fontes do sistema, links azuis
minimalSerifa Georgia, sensação literária, espaçamento generoso
darkPreto verdadeiro #0a0a0a, acentos violeta, anéis de foco visíveis
docsBarra lateral fixa com navegação de rolagem automática, estilo GitHub
brutalistFundo creme, bordas pretas grossas, sombras fortes, acentos amarelos
bentoCartões em grade CSS, cantos arredondados, tamanhos variados, sombras suaves
seite theme list
seite theme apply dark
seite theme create "neon cyberpunk on black"
seite theme install https://example.com/t.tera
seite theme export my-theme

Multilíngue

Traduções baseadas em nomes de arquivo. Sites de idioma único não precisam de configuração.

content/posts/
├── hello-world.md        → /posts/hello-world
├── hello-world.es.md     → /es/posts/hello-world
└── hello-world.fr.md     → /fr/posts/hello-world
[languages.es]
title = "Mi Sitio"

[languages.fr]
title = "Mon Site"

Configuração

# seite.toml — minimal
[site]
title = "My Site"
base_url = "https://example.com"

[[collections]]
name = "posts"
Referência completa
[site]
title = "My Site"
description = "A site built with seite"
base_url = "https://example.com"
language = "en"
author = "Your Name"

[[collections]]
name = "posts"
# name = "docs" | "pages" | "changelog" | "roadmap" | "trust"
# paginate = 10

[build]
output_dir = "dist"
data_dir = "data"
minify = true
fingerprint = true

[deploy]
target = "github-pages"   # or "cloudflare" or "netlify"
auto_commit = true

[images]
widths = [480, 800, 1200]
quality = 80
webp = true
lazy_loading = true

[analytics]
provider = "plausible"    # or "google", "gtm", "fathom", "umami"
id = "example.com"
cookie_consent = false

[languages.es]
title = "Mi Sitio"

[trust]
company = "Acme Corp"
frameworks = ["soc2", "iso27001"]

Arquivos de dados

Coloque YAML, JSON ou TOML em data/ e acesse em qualquer template:

# data/nav.yaml
- title: Blog
  url: /posts
- title: Docs
  url: /docs

Disponível como {{ data.nav }} em todos os templates.

Workspaces

seite workspace init my-workspace
seite workspace add blog --collections posts,pages
seite workspace add docs --collections docs
seite build --site blog
seite serve
seite deploy

Implantação

seite deploy
seite deploy --dry-run
seite deploy --setup
seite deploy --domain example.com
[deploy]
target = "cloudflare"    # or "github-pages" or "netlify"

seite init gera automaticamente o fluxo de trabalho de CI para o destino escolhido.

Telemetria

O seite coleta telemetria de uso anônima e com opção de exclusão para entender quais comandos são usados e se são bem-sucedidos. Sem dados pessoais, sem caminhos de arquivo, sem conteúdo.

O que é coletado:

CampoExemplo
Nome do comandobuild
Versão do seite0.12.2
SO / arquiteturamacos / aarch64
Sucesso (saída 0?)true
Faixa de duração aproximada1-5s
Origem da instalaçãoshell / cargo

O que nunca é coletado: caminhos de arquivo, domínios ou URLs do site, conteúdo de páginas, argumentos de comando ou valores de flags, variáveis de ambiente, nomes de usuário ou qualquer identificador estável.

Os dados são enviados para a partição cli.seite.sh — um namespace dedicado completamente separado da análise do seu próprio site. Detalhes completos: seite.sh/telemetry

Exclua-se a qualquer momento:

seite telemetry off        # persisted preference (survives shell restarts)

Ou defina uma variável de ambiente para uma execução ou no seu perfil de shell:

export SEITE_TELEMETRY=0   # disable via env var
export DO_NOT_TRACK=1      # respects the universal DO_NOT_TRACK standard

A telemetria também é desativada automaticamente em CI (quando a variável de ambiente CI está definida com qualquer valor não vazio). Verifique seu status atual:

seite telemetry status
seite telemetry on         # re-enable if you opted out

Documentação

Documentação completa em seite.sh/docs

Contribuindo

O seite é novo e issues, PRs e feedback são genuinamente bem-vindos. Especialmente úteis:

  • Relatórios de bug com um caso de reprodução (mesmo um seite.toml mínimo + arquivo de conteúdo)
  • Ideias de novos temas — abra uma issue primeiro para alinhar a direção antes de construir
  • Melhorias na documentação — se algo confundiu você, vai confundir outros
  • Uso no mundo real — se você construir algo com o seite, compartilhe
git clone https://github.com/seite-sh/seite
cargo build
cargo test        # 331 tests (139 unit + 192 integration)
cargo clippy      # must be zero warnings
cargo fmt --all

Abra uma issue antes de iniciar um PR grande — economiza tempo de todos.

Licença

MIT