BBVA Open4u - Node.js: gestores de contenidos desarrollados con el entorno JavaScript

Node.js: gestores de contenidos desarrollados con el entorno JavaScript

Wordpress, Drupal o Joomla son tres de las opciones más conocidas dentro del mercado de los sistemas de gestión de contenidos. Pero el impulso del JavaScript como lenguaje multifuncional descubre otras opciones: KeystoneJS, Hatch.js, Apostrophe o Pencilblue.
BBVAOpen4U
|
17 Dic. 2015

Cualquier proyecto digital en el sector editorial exige un sistema de gestión de contenidos. Algunas empresas optan por utilizar CMS gratuitos como Wordpress, Drupal o Joomla. Otras, en cambio, prefieren el desarrollo de sus propios gestores, normalmente medios de comunicación, en busca de una mayor personalización, robustez y tal vez su comercialización externa. Hoy existen varios CMS desarrollados en Node.js, el entorno de desarrollo JavaScript por la capa del servidor, que son una opción más del mercado.

Entre los gestores basados en Node.js y tecnología JavaScript, destacan esencialmente cuatro ejemplos: KeystoneJS, Hatch.js, Apostrophe y Pencilblue. Todos ellos pueden ser una alternativa interesante gracias, en gran medida, al aumento de la influencia de esta sintaxis en el desarrollo global de proyectos digitales, no solo en la incorporación de interactividad a la interfaz de usuario, sino también en otros campos como back-end, servidores o bases de datos. 

1. KeystoneJS

KeystoneJS se podría definir como un marco en Node.js para el desarrollo de página webs de contenidos. Está construido no solo con Node.js, sino también con Express, el framework para desarrollo de back-end específico para Node.js y MongoDB, el servicio de gestión de bases de datos en JavaScript. Es por tanto un CMS desarrollado enteramente en este lenguaje de programación en auge.  

Es evidente, pero siempre es bueno tenerlo en cuenta, que la instalación de KeystoneJS tiene dos dependencias obvias, una es Node.js y la otra es MongoDB. Por tanto la instalación del entorno y la base de datos son requisitos imprescindibles para usar este editor de webs y aplicaciones. La descarga y configuración de ambas es sencilla, hay tutoriales disponibles en sus páginas.

También son necesarias algunas otras condiciones: el desarrollador o diseñador debe dominar la programación en JavaScript y es recomendable conocer Jade, el sistema de plantillas usado en Node.js y basado también en esta sintaxis, y LESS, la extensión de las hojas de estilo CSS. Casi cualquier profesional JavaScript está al corriente de la existencia de ambos proyectos.

Los pasos para instalar KeystoneJS son los siguientes:

- Instalar el generador de KeystoneJS (este es su código en GitHub), desarrollado por el equipo de Yeoman. Para hacerlo, usar este comando:
$ npm install -g generator-keystone

- Crear una carpeta para el proyecto. Es necesario crear el directorio donde el desarrollador quiera tener el proyecto web o su aplicación.
$ mkdir my-test-project

- Confirmar que uno está dentro de su proyecto: $ cd my-test-project

- Ejecutar el generador de KeystoneJS: comando $ yo keystone.

- Paso final. Ejecución del comando $ node keystone y apertura del servidor local de prueba http://localhost:3000/ en el navegador. 

Las principales características de KeystoneJS:

- Es gratuito y está bajo licencia MIT.

- Está basado en una arquitectura MVC (Modelo-Vista-Controlador).

- Sistema propio de gestión de usuarios registrados.

- Rutas dinámicas.

- Se puede usar Jade como sistema de plantillas, pero también otras opciones que puedan ser más del gusto del desarrollador. Estas plantillas son totalmente personalizables, con Jade o sin él.

- PaaS (Plataforma como Servicio) para soluciones de hosting.

- Integración con el correo electrónico y servicios como MailChimp.

2. Hatch.js

Hatch.js sería una de las alternativas del mercado a KeystoneJS, el CMS en Node.js más utilizado por la comunidad de desarrolladores. Es una herramienta de código abierto, flexible y escalable. Hatch.js es un marco de creación de páginas web que combina la gestión de contenidos con el uso de redes sociales para su distribución, personalizable a partir de widgets. Además de Node.js, Hatch.js está construido sobre Redis, una solución de código abierto para el almacenamiento de datos NoSQL en memoria.

Algunas de las características que lo definen:

- Es un CMS rápido y escalable, algo apreciado entre los desarrolladores. El sistema de base de datos NoSQL basado en un modelo clave-valor permite que el contenido, incluso en aquellas páginas con una gran cantidad de información dinámica, cargue rápido. Según los desarrolladores de Hatch,js, ese tiempo de respuesta es inferior a 0,05 segundos, incluso sin necesidad de usar ninguna caché.

- Solución basada en plugins. Las características de Hatch.js están escritas con plugins en la parte superior de la plataforma. Si un desarrollador quiere implementar nuevas funcionalidades, solo necesita codificar su propio plugin. Para ello se utiliza CompoundJS, el marco de desarrollo Modelo-Vista-Controlador para Node.js.

- Todas las posibilidades con respecto a las plantillas. Hatch.js integra los temas de Bootstrap, el marco de desarrollo de Twitter para el diseño de sitios web responsive. Otras opciones serían la de crear una plantilla propia o bien programar el proyecto desde cero con HTML y CSS.

- Dispone de todas las fuentes de Google Webfonts

- Se puede usar LESS para las hojas de estilos CSS.

- La licencia comercial tiene un coste de casi 730 euros al mes

3. Apostrophe

Apostrophe es un CMS que apuesta por la sencillez en la creación de contenido. Al igual que los dos gestores anteriores, está basado en Node.js para el back-end y MongoDB para la base de datos.

Como motor de plantillas en JavaScript, en vez de usar Jade, Apostrophe apuesta por Nunjucks. Inspirado en jinja2, el motor de plantillas más poderoso para Python, Nunjucks hace el precompilado de plantillas directamente en cualquier navegador moderno y es totalmente escalable con el uso de extensiones.  

A parte de Node.js y MongoDB, otras de las dependencias de Apostrophe es ImageMagick, una herramienta de creación, edición y conversión de imágenes en todos los formatos (jpeg, png, gif, tiff, svg…). Es una especie de Photoshop incorporado en el CMS: permite retocar colores, curvas de luz, cambiar el tamaño, retocar el encuadre, voltear las imágenes, aplicar efectos especiales… ImageMagick es un software de código abierto con licencia Apache 2.0.

4. Pencilblue

Pencilblue es un CMS basado en Node.js, MongoDB y Redis para la creación de proyectos editoriales responsive. Para ese diseño adaptado a dispositivos móviles como teléfonos y relojes inteligentes y tabletas, los desarrolladores que utilicen Pencilblue contarán con la integración de Bootstrap; AngularJS, el marco de desarrollo para front-end basado en el paradigma Modelo-Vista-Controlador (MVC); y jQueryUI, el conjunto de plantillas y widgets pensado para el diseño de la interfaz de usuario de sitios web. 

Al igual que el resto de CMS, Pencilblue es totalmente escalable y personalizable a través de la instalación de plugins, un sistema muy similar al que tienen otros gestores más conocidos como Wordpress. El listado de módulos se encuentra en la propia web del gestor. De todas formas, del mismo modo que con Wordpress, en Pencilblue los desarrolladores tienen la posibilidad de programar sus propios plugins. Este es un vídeo práctico:

Síguenos en @BBVAAPIMarket