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.

CI Coverage Crates.io License: MIT


seite demo

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.txt y una copia .md de 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, figure integrados, 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-update obtiene 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 preestablecidoCon fechaRSSAnidadoCaso 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:

TemaDescripción
defaultColumna centrada limpia, fuentes del sistema, enlaces azules
minimalSerif Georgia, sensación literaria, espacio en blanco generoso
darkNegro verdadero #0a0a0a, acentos violeta, anillos de enfoque visibles
docsBarra lateral fija con navegación de desplazamiento automático, estilo GitHub
brutalistFondo crema, bordes negros gruesos, sombras duras, acentos amarillos
bentoTarjetas 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:

CampoEjemplo
Nombre del comandobuild
Versión de seite0.12.2
SO / arquitecturamacos / aarch64
Éxito (salida 0?)true
Rango de duración aproximado1-5s
Fuente de instalaciónshell / 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

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.toml mí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.

Licencia

MIT