Presentamos Htmlpress, el generador de sitios estáticos HTML-firstVer el anuncio

Htmlpress, generador de sitios estáticos HTML-first

Htmlpress es un generador de sitios estáticos HTML-first para personas y agentes, disponible para Python, TypeScript y Rust: HTML o Markdown forman un sitio.

Evgeny Karev4 min de lectura

capturahtmlpress.dev
Un panel de energía hecho con htmlpress a partir de una sola página HTML: tarjetas de cifras, un gráfico de barras apiladas y un gráfico de anillo, con la barra lateral, la navegación y la tabla de contenidos de htmlpress

Introducción

Htmlpress es un generador de sitios estáticos HTML-first. Escribe páginas HTML, o Markdown, estén donde estén en tu proyecto, y htmlpress las convierte en un solo sitio. Cada página conserva su propio marcado, y htmlpress añade un layout, un tema, una navegación y un servidor de desarrollo con recarga en vivo. No hay framework ni lenguaje de plantillas: solo hay que escribir las páginas, tú o tu agente de programación. Y está disponible por igual para desarrolladores de Python, TypeScript y Rust: un único binario de Rust que se instala con pip, npm o cargo.

Por qué otro generador de sitios

La mayoría de las herramientas de documentación te piden aprender primero un stack: un framework de JavaScript, un dialecto de componentes como MDX, un lenguaje de plantillas, una configuración de build. Es mucha superficie que una persona tiene que aprender, y aún más en la que un agente puede equivocarse.

Htmlpress va en sentido contrario. Una página es HTML semántico o Markdown sencillo —los formatos que los agentes ya conocen mejor que cualquier lenguaje de plantillas— y el tema da estilo a los propios elementos: encabezados, tablas, bloques de código, <details> y <figure> se ven bien sin clases, en modo claro y oscuro. Cuantas menos decisiones ofrece una página, más parecen todas las páginas un mismo sitio.

Qué obtienes

  • Solo escribe HTML — una página es cualquier archivo .html, documento completo o simple fragmento, cuyas etiquetas <title> y <meta> son sus metadatos; un archivo .md con frontmatter también sirve
  • Páginas desde cualquier parte — por defecto, todas las páginas de la carpeta; los globs include y exclude las toman de cualquier parte de un repositorio, así la documentación vive junto al código, y un CHANGELOG.md o los archivos SKILL.md que ya mantienes se suman al sitio
  • Elementos enriquecidos — avisos, pestañas, pasos, tarjetas, insignias, árboles de archivos, tablas ordenables, terminales, pestañas de gestores de paquetes, diagramas Mermaid y contenidos incrustados, todos como elementos personalizados htmlpress-*
  • Navegación incluida — una barra lateral anidada por carpetas, migas de pan, una tabla de contenidos, enlaces anterior/siguiente y un enlace «Editar en GitHub»
  • Documentación, blog y registro de cambios — divide un sitio en secciones, cada una con su pestaña y su navegación: documentación agrupada por carpetas en la barra lateral, un blog de entradas fechadas, las más recientes primero, con páginas de etiquetas y un feed RSS, y un registro de cambios con una página por versión a partir de un changelog en Markdown
  • Multilingüe — traducciones junto a sus originales, un selector de idioma y la interfaz en siete idiomas incluidos
  • Personalizable — tokens --htmlpress-* para el tema, y el layout, los estilos y los componentes se pueden extraer a una carpeta .htmlpress/ y sustituir archivo a archivo
  • Hecho para agentes — cada build publica una copia en Markdown de cada página, llms.txt y tus agent skills, y todos los comandos hablan JSON
  • Web components y CSS — cada elemento enriquecido es un web component nativo y cada estilo CSS puro, acotado con @scope, sin runtime de framework en el navegador
  • Python, TypeScript y Rust — disponible por igual para desarrolladores de Python, TypeScript y Rust, desde PyPI, npm y crates.io, como un único binario de Rust; sin runtime ni dependencias, y el resultado es un sitio estático con sitemap.xml, robots.txt y una página 404, listo para cualquier hosting

Una página

Una página fija su título, descripción y orden en unas pocas etiquetas y pasa directamente al contenido:

<title>Getting Started</title>
<meta name="description" content="Set up the project in five minutes." />
<meta name="order" content="1" />

<h1>Getting Started</h1>
<p>Welcome!</p>

La misma página en Markdown lleva esos valores en el frontmatter. La configuración es opcional. Un htmlpress.yaml en la raíz del proyecto define el título y la descripción del sitio, y sus globs include indican dónde están las páginas:

title: My docs
description: Documentation for my project
include: [docs/**/*.html, docs/**/*.md]

Pruébalo

Todos los canales distribuyen el mismo binario de Rust en la misma versión, así que elige el gestor de paquetes que ya usa tu proyecto:

curl -fsSL https://htmlpress.dev/install.sh | sh
npm install --global gethtmlpress
pip install htmlpress
cargo install htmlpress

Después, todo el ciclo son cuatro comandos:

htmlpress start    # dev server with live reload at http://localhost:8000
htmlpress build    # production build to .htmlpress/build/
htmlpress preview  # serve the production build locally
htmlpress clear    # remove .htmlpress/build/

Agent skills

Htmlpress incluye seis Agent Skills que enseñan a agentes de programación como Claude Code, Cursor y Codex cómo funciona un proyecto: el contrato de las páginas, los componentes, las claves de configuración, cómo personalizar el tema, cómo desplegar y cómo comprobar su propio trabajo. Una vez instaladas, no tienes que explicar nada de esto en el prompt.

Próximos pasos

Htmlpress es de código abierto bajo la licencia MIT, y su propia documentación en htmlpress.dev está hecha con él. Pruébalo, abre un issue con tus comentarios y dale una estrella en GitHub para ayudar a que el proyecto crezca — https://github.com/datisthq/htmlpress

Qué construimos

De la capa de datos hasta la interfaz: búsqueda, integraciones, tareas en segundo plano y la infraestructura para mantenerlo en marcha.

Aplicaciones web full-stack · APIs tipadas · Flujos de trabajo duraderos · Orquestación de contenedores

La herramienta interna que su sector necesita de verdad — leads, operaciones, inventario, facturación, permisos, un registro de auditoría. Construida en torno a cómo trabaja usted, y no en torno a una plantilla.

Bases de datos transaccionales · Identidad y acceso · APIs tipadas · Aplicaciones web full-stack

iOS y Android desde una sola base de código, compartiendo tipos con su backend para que los dos no se separen. Por las tiendas, o over-the-air.

Móvil y escritorio · APIs tipadas · Identidad y acceso

Sitios rápidos y prerenderizados que cargan al instante y cuestan casi nada de mantener. Contenido que puede editar usted mismo, en tantos idiomas como necesite.

Aplicaciones web full-stack · Sistemas de diseño · Internacionalización · Plataforma edge

Ejemplos de proyectos

capturamycarro.app
El buscador de coches de Mycarro tal como funciona hoy, buscando entre sus anuncios activos en Portugal.

Mycarro — buscador de coches y CRM para concesionarios

Un marketplace de coches usados en marcha en Portugal. Búsqueda para el consumidor sobre anuncios reunidos de todo el mercado, un back office para que los concesionarios gestionen leads, inventario y facturación, y una aplicación móvil — construido de principio a fin.

construimos

bajo NDA
Trabajo que no podemos mostrar
ND

NDA — MVP de plataforma fintech suiza

Un MVP multiplataforma para una plataforma de servicios financieros regulados, diseñado y construido de principio a fin: un backend contract-first, un panel de operaciones y aplicaciones iOS y Android generadas a partir del mismo contrato.

cliente · NDA

Ponerse en contacto

Cuéntenos qué necesita construir.

Somos un equipo pequeño en Portugal, en horario de Londres. Un sitio, una aplicación, una herramienta interna, o la plataforma que hay detrás — empiece por una frase sobre el problema y nosotros seguimos desde ahí.

Todos los artículos
Pedir presupuesto