Alternativas a WordPress: Generadores estáticos
En artículos anteriores, ya hemos hablado de numerosas y excelentes alternativas a WordPress, donde encontramos desde populares CMS como Joomla y Drupal hasta otros más desconocidos como Koken (orientado a fotógrafos) o ForkCMS (multidioma).
De la misma forma, también repasamos un listado de CMS más específicos, como los gestores de contenidos sin bases de datos, una categoría especial de CMS más simples que reemplazan el uso de un servidor de base de datos por archivos de texto, ahorrando así recursos y simplificando su utilización.
Parte I: Alternativas a Wordpress: CMS sin bases de datos
Parte II: Alternativas a Wordpress: CMS con soporte SQLite
Parte III: Alternativas a Wordpress: Los mejores CMS dinámicos
Parte IV: Alternativas a Wordpress: Generadores estáticos
Parte V: Alternativas a Wordpress: CMS con soporte NoSQL
También repasamos una categoría intermedia de CMS con SQLite, o lo que es lo mismo, gestores de contenido que permiten utilizar un servidor de base de datos más compacto, sencillo y rápido que puede ser muy útil en diversos casos. El emergente gestor de contenidos Ghost, que tanta popularidad está alcanzando ultimamente, entra dentro de esta categoría.
En esta ocasión, vamos a hablar de los generadores de contenido estático, un sistema muy específico, orientado a un público mayormente avanzado. Este sistema elimina la necesidad de un CMS (o panel de gestión) en el servidor y lo traslada al equipo desde el que publica el usuario. Pero antes de explicarlo en profundidad, necesitaremos tener claros algunos conceptos:
- Server-side: Se le denomina lado del servidor a la parte donde se efectúan tareas relacionadas con la programación. Así pues, los lenguajes de programación PHP, Ruby o Python, por ejemplo, son los que se encargan de construir los sitios webs, solicitando antes información a la base de datos, y generando un archivo HTML que es el que se enviará a través de Internet a los visitantes.
- Client-side: Ciertas tecnologías, como HTML, CSS o JavaScript, por ejemplo, se llevan a cabo en el navegador del usuario, en lo que llamamos el lado del cliente.
En este artículo hablaremos de varios generadores estáticos de contenido, o lo que es lo mismo: unos CMS especiales que, en lugar de actuar en el lado del servidor, lo hacen en el propio equipo del usuario.
De esta forma, se genera automáticamente el contenido final con tecnología exclusiva del lado del cliente, pudiendo prescindir de la tecnología del servidor. Esto ofrece varias ventajas y desventajas:
- El alojamiento no requiere tecnologías del lado del servidor (PHP, Python, Ruby...).
- Requiere tener instalado el CMS en tu propio equipo personal.
- La carga nula del servidor permite reducir costes, incluso con alto tráfico.
- Por lo general, está orientado a usuarios informáticos avanzados o programadores.
- No requiere servidores de bases de datos.
- Reduce ciertos vectores de ataque, ya que no usa tecnología del lado del servidor.
Si todo esto ha despertado tu curiosidad, vamos a empezar hablando de este tipo de gestores de contenido, dependiendo del lenguaje o entorno que necesites:
1. Jekyll (Ruby)
Probablemente, el generador de contenido estático más conocido es Jekyll, que utiliza el nombre de la famosa obra de Robert L. S., El extraño caso del Dr. Jekyll y el Sr. Hyde. Es de los sistemas más completos e interesantes de este género, puesto que tiene multitud de herramientas y funcionalidades para los que queramos empezar en estos entornos.
Jekyll posee una excelente documentación donde nos explican como instalar, utilizar y configurar Jekyll, así como conocer su estructura de archivos. Además, tienen una interesantísima sección de importers, donde podrás migrar el contenido desde plataformas como WordPress, Joomla, Drupal, Tumblr u otros a este sistema de una forma fácil y rápida.
Otro detalle interesante es que, al no necesitar tecnología del lado del servidor, se pueden utilizar las GitHub pages para tener tu propio blog totalmente personalizado de forma gratuita, sin coste. Además, ¡hasta puedes usar Git para actualizar tus publicaciones!
URL | Jekyllrb
2. OctoPress (Ruby)
Bueno, aunque OctoPress no es estrictamente un generador de contenido estático, sino un framework para añadir a Jekyll, merece la pena mencionarlo por la amplia relevancia que está consiguiendo. Si Jekyll te ha gustado, pero te asusta un poco porque crees que no tienes los conocimientos necesarios para hacerlo funcionar, quizás puedas utilizar OctoPress, quien te ofrece una serie de recursos para hacer más cómoda tu vivencia con ambos.
La documentación de OctoPress también es bastante extensa, y podrás encontrar desde configuración básica y creación de botones o herramientas sociales hasta la creación de temas y plugins, junto a despliegue de contenidos.
URL | OctoPress
3. nanoc (Ruby)
Nanoc es otra de las alternativas disponibles que existen para crear tu propio sitio mediante un generador de sitios estáticos. Al igual que los anteriores, necesitarás Ruby para hacerlo funcionar. Dispone de un extenso tutorial de documentación para aprender a crear las páginas y secciones del sitio a generar.
Es ideal para programadores que buscan un sistema para crear su propio sitio estático que se encuentre a medio camino entre un lenguaje de programación y un framework práctico para el objetivo de generación rápida de sitios.
URL | nanoc
4. Serve (Ruby)
Serve es un excelente generador de contenido estático que, entre muchas de sus características, soporta HAML (abstracción de HTML) y SASS o LESS (preprocesadores CSS). En su documentación tienes más información de como funciona y lo sencillo y cómodo que es generar sitios estáticos mediante este sistema.
URL | GetServe
También existen otros generadores de contenido estático que funcionan bajo Ruby y no han sido citados anteriormente, como por ejemplo: MiddleMan, WebGen, Stasis, Static-CMS, Serif o el ultraminimalista TinyTree. StaticMatic2 además, te permite desplegar automáticamente en Amazon S3 tu sitio.
5. Phrozn (PHP)
Phrozn es un cómodo y elegante generador de contenido estático al que no le falta de nada. Soporta plantillas PHP Twig, formatos de documentos como Textile o Markdown y preprocesadores como LESS o SASS, permitiendo la creación de documentos desde cualquier editor de textos. Dispone de una potente herramienta CLI para realizar las tareas más importantes.
Aquí tienes información sobre como empezar con Phrozn. En su documentación encontrarás, incluso, información para crear tu propio procesador de etiquetas.
URL | Phrozn
6. Sculpin (PHP)
De la misma forma que Phrozn, Sculpin es un generador de sitios estáticos que se basa en PHP. Utiliza templates Twig y utiliza Composer para hacer sencillas las instalaciones. En cómo empezar con Sculpin podrás encontrar más información sobre como descargarlo, instalarlo, utilizarlo y publicar, todo mediante unas pocas líneas desde una terminal.
URL | Sculpin
Existen otros generadores estáticos de contenido basados en PHP dignos de mención, como Spress, PieCrust o Leeflets.
7. DocPad (NodeJS)
DocPad es un excelente generador de contenido que destaca por la flexibilidad que brinda a sus usuarios. Se podría decir que intenta ubicarse en un sistema intermedio entre los generadores de contenido estáticos y los CMS dinámicos tradicionales. Es un sistema ideal para todos aquellos programadores que se dedican al front-end.
Posee una tabla comparativa para hacernos una idea de las necesidades y habilidades que se recomiendan para utilizar DocPad, comparándolos con sistemas como WordPress y sus alternativas más directas y con generadores estáticos como el mencionado Jekyll. Tiene un completísimo catálogo de plugins y ejemplos de sitios que utilizan DocPad.
URL | DocPad
Existen muchos generadores de contenido estático que también utilizan NodeJS, como el popular WinterSmith, pero además, también puedes probar Poet o Cabin, muy simples y llamativos, o sistemas como Hexo, Punch, Roots, HarpJS o Gabby.
Otros generadores como MarkX, Nico, NodeBread, Codex, PopJS y BlackSmith tampoco deberían quedarse fuera de la lista.
8. Pelican (Python)
Otro de los generadores estáticos de contenido más populares es Pelican, el cuál funciona bajo Python. Al igual que otros generadores de este artículo, permite formatos como Markdown o ASCIIDoc, utiliza Jinja para la creación de temas y dispone de plugins para extender su funcionamiento.
En cómo empezar encontrarás una guía de introducción, para aprender, mediante una interfaz de línea de comandos y ciertos consejos sobre la estructura que utiliza Pelican, la forma mediante la cuál es posible generar o regenerar el sitio completo del sitio, creando contenido estático al 100%.
URL | GetPelican
9. Nikola (Python)
Una alternativa muy similar a Pelican es Nikola, la cuál también se basa en Python, además del gran Nikola Tesla. Permite utilizar themes compatibles con Bootstrap, formatos Markdown, Textile, ASCIIDoc u otros para su contenido, generar automáticamente galerías de imágenes y está traducido al español, entre otros 17 idiomas disponibles.
URL | GetNikola
10. Buster (Python)
Buster es un generador de contenido estático que utiliza un juego de palabras con la película GhostBusters (cazafantasmas) para su nombre, ya que buster es un generador de contenido estático para Ghost, uno de los CMS mencionados en Alternativas a WordPress con SQLite.
Buster permite, de una forma rápida y simple, generar contenido estático a partir de un blog con Ghost y desplegarlo en un repositorio Git, por ejemplo.
URL | (Ghost)Buster
11. Hyde (Python)
Y si empezamos esta lista con Jekyll, no puede faltar su lado oscuro: Hyde. Según su autor, mientras que Jekyll funciona bajo Ruby, Hyde sucumbe al lado oscuro y trabaja mediante Python, por lo que es una excelente alternativa para aquellos a los que le gusta Jekyll pero se sienten más cómodos con Python.
Entre sus funcionalidades, soporta templates Jinja y dispone de una estructura sencilla pero flexible para la generación de las páginas estáticas.
URL | Hyde
Python posee multitud de sistemas de generación de contenido estático, Lilac es un ejemplo, el cuál es minimalista, soporta etiquetas, es muy fácil de configurar y tiene soporte TOML (JSON + INI). Sin embargo, no es el único, también están Stado, Embellish, Voldemort o Acrylamid. No olvidar tampoco Frozen-Flask, Wok, Strange Case (muy sencillo), Engineer, Mynt o Socrates, este último que utiliza Django.
Por último, mencionar a Calepin y BlogMark, dos plataformas que permiten utilizar DropBox para actualizar el contenido, mientras que Chili es el generador de contenido estático equivalente que no es plataforma.
12. Hakyll (Haskell)
Para terminar, mencionar algunos generadores de contenido estático con otros lenguajes, como por ejemplo Hakyll, otro juego de palabras, esta vez con Jekyll y Haskell, el lenguaje con el que está desarrollado.
URL | Hakyll
Además de Hakyll, también tenemos Misaki y Nakkaya (Clojure), Coleslaw (LISP), Zas y Hugo (Go) y JBake y Grain (Java y Groovy), sin olvidar M4 Bakery, que utiliza el macro procesador GNU m4.