seite
Generador de sitios estáticos nativo de IA con servidor MCP integrado. Crea sitios, genera contenido, aplica temas, busca documentación y despliega mediante Claude Code o cualquier cliente MCP.
Documentación
seite
Un generador de sitios estáticos donde Claude Code es la interfaz.
Ya tienes Claude Code. seite le da algo en lo que trabajar.
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
El agente lee tu configuración, tus plantillas y tu contenido existente antes de escribir nada. La salida llega al directorio correcto con el frontmatter correcto. Revisas un diff y lo publicas.
Sin nueva suscripción. Sin nueva interfaz que aprender. Sin nuevos comandos. Solo la suscripción a Claude Code que ya tienes — ahora puede gestionar todo tu sitio web.
curl -fsSL https://seite.sh/install.sh | sh
seite init mysite --title "My Site" --collections posts,docs,pages
cd mysite && seite serve
Por qué seite
La mayoría de los generadores de sitios estáticos producen HTML y se detienen ahí. seite construye para tres audiencias a la vez:
- Navegadores obtienen páginas con metadatos SEO completos, Open Graph, Twitter Cards y datos estructurados JSON-LD
- LLMs obtienen
llms.txt,llms-full.txty una copia.mdde cada página para consumo directo - Herramientas de IA obtienen un servidor MCP integrado que expone todo tu sitio como recursos estructurados
Todo desde Markdown + frontmatter YAML. Sin runtime de JavaScript. Sin dependencias de compilación. Un solo binario hace todo. 331 pruebas, 139 unitarias y 192 de integración.
Integración con IA
Agente
seite agent inicia Claude Code con contexto completo del sitio — configuración, inventario de contenido, plantillas y comandos disponibles. Sin claves API, sin configuración. Usa tu suscripción existente a Claude Code.
seite init genera AGENTS.md con el esquema completo de tu sitio para que los agentes de codificación compatibles se orienten antes de escribir un solo carácter. Una línea CLAUDE.md importa las mismas instrucciones para Claude Code. La salida llega al directorio correcto, con el frontmatter correcto, siguiendo tus convenciones. Revisas un diff y lo publicas.
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 ejecuta un servidor de Protocolo de Contexto de Modelo sobre stdio. Claude Code lo inicia automáticamente mediante .mcp.json, generado por seite init. Cualquier herramienta de IA compatible con MCP (Codex CLI, OpenCode, Cursor, ...) puede usarlo; habla las revisiones MCP 2024-11-05 hasta 2025-11-25 mediante initialize, y la revisión sin estado 2026-07-28 mediante server/discover.
Recursos — seite://docs, seite://config, seite://content, seite://themes, seite://trust (plantillas: seite://content/{collection}, seite://docs/{slug})
Herramientas — 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
Esto significa que tu herramienta de IA no solo tiene acceso de lectura a tu sitio — tiene una interfaz estructurada para construir, buscar y modificarlo.
Descubrimiento LLM
Cada compilación genera llms.txt (resumen) y llms-full.txt (markdown completo) para indexación LLM, además de una copia .md de cada página. Los sitios multilingües obtienen versiones por idioma. SEO tradicional y GEO gestionados en un solo pipeline, automáticamente.
Características
- 10 temas incluidos — default, minimal, dark, docs, brutalist, bento, landing, terminal, magazine, academic — o genera uno personalizado con
seite theme create "coral brutalist with lime accents" - 6 ajustes preestablecidos de colecciones — posts, docs, pages, changelog, roadmap y trust center
- Multilingüe — i18n basado en nombres de archivo con URLs por idioma, feeds RSS, sitemaps, índices de búsqueda y etiquetas hreflang
- Pipeline de imágenes — redimensionado automático, conversión a WebP, elementos srcset/
<picture>, carga diferida - Despliegue en cualquier lugar — GitHub Pages, Cloudflare Pages, Netlify con configuración guiada, comprobaciones previas y
--dry-run - Analítica — Google Analytics, GTM, Plausible, Fathom, Umami con banner opcional de consentimiento de cookies
- Shortcodes —
youtube,vimeo,gist,callout,figureintegrados, además de plantillas definidas por el usuario - Espacios de trabajo multi-sitio — gestiona múltiples sitios desde un directorio con servidor de desarrollo unificado
- Auto-actualización —
seite self-updateobtiene la última versión con verificación de suma de comprobación SHA256
Instalación
macOS / Linux:
curl -fsSL https://seite.sh/install.sh | sh
Windows (PowerShell):
irm https://seite.sh/install.ps1 | iex
Desde el código fuente (requiere Rust):
cargo install seite
Fijar una versión específica:
VERSION=v0.1.0 curl -fsSL https://seite.sh/install.sh | sh
Inicio rápido
seite init mysite --title "My Site" --collections posts,docs,pages
cd mysite
seite serve
Abre http://localhost:3000. Edita contenido en content/, plantillas en templates/. Recarga en vivo en cada cambio.
# 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
Salida de compilación
seite build ejecuta un pipeline de 13 pasos y produce:
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 incluye URLs canónicas, etiquetas Open Graph, Twitter Cards, datos estructurados JSON-LD y un enlace a su alternativa en markdown.
Colecciones
| Ajuste preestablecido | Con fecha | RSS | Anidado | Caso de uso |
|---|---|---|---|---|
| posts | ✓ | ✓ | — | Entradas de blog, artículos |
| docs | — | — | ✓ | Documentación con navegación lateral |
| pages | — | — | — | Páginas independientes (Acerca de, Contacto) |
| changelog | ✓ | ✓ | — | Notas de versión con insignias de etiqueta de color |
| roadmap | — | — | — | Hoja de ruta pública con seguimiento de estado |
| trust | — | — | ✓ | Centro de cumplimiento (SOC 2, ISO 27001, GDPR) |
seite collection add changelog
seite new changelog "v2.0" --tags new,breaking
Temas
Seis temas se incluyen con el binario — sin descargas, sin CDNs:
| Tema | Descripción |
|---|---|
| default | Columna centrada limpia, fuentes del sistema, enlaces azules |
| minimal | Serif Georgia, sensación literaria, espacio en blanco generoso |
| dark | Negro verdadero #0a0a0a, acentos violeta, anillos de enfoque visibles |
| docs | Barra lateral fija con navegación de desplazamiento automático, estilo GitHub |
| brutalist | Fondo crema, bordes negros gruesos, sombras duras, acentos amarillos |
| bento | Tarjetas de cuadrícula CSS, esquinas redondeadas, tamaños mixtos, 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
Multilingüe
Traducciones basadas en nombres de archivo. Los sitios de un solo idioma no necesitan configuración.
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"
Configuración
# seite.toml — minimal
[site]
title = "My Site"
base_url = "https://example.com"
[[collections]]
name = "posts"
Referencia 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"]
Archivos de datos
Coloca YAML, JSON o TOML en data/ y accede desde cualquier plantilla:
# data/nav.yaml
- title: Blog
url: /posts
- title: Docs
url: /docs
Disponible como {{ data.nav }} en todas las plantillas.
Espacios de trabajo
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
Despliegue
seite deploy
seite deploy --dry-run
seite deploy --setup
seite deploy --domain example.com
[deploy]
target = "cloudflare" # or "github-pages" or "netlify"
seite init genera automáticamente el flujo de trabajo CI para tu destino elegido.
Telemetría
seite recopila telemetría de uso anónima y con opción de exclusión para entender qué comandos se usan y si tienen éxito. Sin datos personales, sin rutas de archivos, sin contenido.
Qué se recopila:
| Campo | Ejemplo |
|---|---|
| Nombre del comando | build |
| Versión de seite | 0.12.2 |
| SO / arquitectura | macos / aarch64 |
| Éxito (salida 0?) | true |
| Rango de duración aproximado | 1-5s |
| Fuente de instalación | shell / cargo |
Qué nunca se recopila: rutas de archivos, dominios o URLs del sitio, contenido de páginas, argumentos de comandos o valores de banderas, variables de entorno, nombres de usuario o cualquier identificador estable.
Los datos se envían a la partición cli.seite.sh — un espacio de nombres dedicado completamente separado de la analítica de tu propio sitio. Detalles completos: seite.sh/telemetry
Exclúyete en cualquier momento:
seite telemetry off # persisted preference (survives shell restarts)
O establece una variable de entorno para una ejecución o en tu perfil de shell:
export SEITE_TELEMETRY=0 # disable via env var
export DO_NOT_TRACK=1 # respects the universal DO_NOT_TRACK standard
La telemetría también se desactiva automáticamente en CI (cuando la variable de entorno CI está establecida a cualquier valor no vacío). Comprueba tu estado actual:
seite telemetry status
seite telemetry on # re-enable if you opted out
Documentación
Documentación completa en seite.sh/docs
- Primeros pasos
- Configuración
- Colecciones
- Plantillas
- Shortcodes
- Multilingüe
- Despliegue
- Referencia CLI
- Centro de confianza
Contribuciones
seite es temprano y los problemas, PRs y comentarios son genuinamente bienvenidos. Especialmente útiles:
- Informes de errores con un caso de reproducción (incluso un
seite.tomlmínimo + archivo de contenido) - Nuevas ideas de temas — abre un problema primero para alinear la dirección antes de construir
- Mejoras de documentación — si algo te confundió, confundirá a otros
- Uso en el mundo real — si construyes algo con seite, compártelo
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
Abre un problema antes de comenzar un PR grande — ahorra tiempo a todos.