DiegoBarrionuevo
← Trabajo seleccionadoP/01Producción

Un medio técnico que publica solo.

Ghost como núcleo editorial, un theme a medida y un dashboard propio que alimenta series, hubs y portadas.

Arquitectura, desarrollo y soporte2026
GhostHandlebarsNext.jsPostgreSQLDockerCaddy
Núcleo editorial

Ghost escribe, el theme compone.

Portada: el slider de series y las últimas notas

257
posts publicados
268
tags
603
URLs en el sitemap

Ghost resuelve lo que un medio necesita todos los días: editor, autores, etiquetas, newsletters y una API de contenido estable. Sobre esa base construí un theme en Handlebars que entiende la estructura del sitio: series, hubs temáticos y portadas que se arman solas a partir de las etiquetas.

El equipo editorial publica desde el editor de Ghost sin tocar código. Cada nota llega a la portada, a su serie y a los hubs por sus etiquetas, no por un paso manual.

Sistema visual

Una trama que se dibuja sola.

El sitio tiene una identidad propia: azul sobre navy, una trama de hexágonos que acompaña portadas y destacados, y un slider de portada que presenta las series con un título grande y un botón. Acá está reproducido sin imágenes: la geometría se genera en código y el título se escribe letra por letra, como lo ve un lector que entra por primera vez.

Debajo de esa capa hay 13 plantillas a medida en Handlebars (portada, episodio, hubs, roadmap, kit de prensa, contacto) y 24 módulos de JavaScript vanilla: el slider, el reproductor de series, el índice de cada nota, el modal de video, los carruseles de portada y el buscador. Tailwind 4 compilado con Gulp, sin framework de frontend.

13
plantillas a medida
24
módulos de JavaScript
El slider de portada, sin imagen: trama generada en código y títulos reales
Modo cine

Cada episodio se ve como se ve una serie.

Episodio de una serie en modo cine

Las series tienen su propia página de episodio: el video ocupa la pantalla, el texto acompaña abajo y la navegación lleva al capítulo anterior y al siguiente sin volver al índice. Es un modo cine pensado para quedarse viendo, no para rebotar.

El theme arma esa navegación a partir del orden que define el dashboard. Si el equipo reordena una serie, la página del episodio lo refleja en el próximo render, sin tocar una sola nota.

Arquitectura

Dos fuentes, una página.

Ghost no tiene campos personalizados, cada nota vive en una sola colección y su buscador solo lee título y bajada. Alcanza para escribir, no para ordenar una serie, curar un hub o decidir qué va en la portada. Por eso al lado de Ghost hay un dashboard propio en Next.js con PostgreSQL: diez módulos (series, grupos de etiquetas, hubs, carruseles, roadmap, changelog) y trece endpoints públicos que el theme consulta.

El flujo es siempre el mismo: el equipo publica en Ghost, el theme renderiza por etiqueta y autor en el servidor, y su JavaScript le pide al dashboard lo que Ghost no sabe: el orden de la serie detrás del contador “Episodio 5 de 5”, las secciones de cada hub, los carruseles de portada y el roadmap. Reordenar una serie en el panel cambia la página del episodio en el próximo render, sin tocar una nota.

10
módulos del dashboard
13
endpoints públicos
Ghost publica, el dashboard ordena, el theme arma la página
Hubs

Píldoras y Academia: dos puertas al mismo contenido.

Píldoras reúne los videos cortos: una respuesta por video, para quien llega desde una búsqueda con una pregunta concreta. Academia ordena las series largas por nivel y tema, para quien quiere recorrer un camino completo.

Las dos portadas se arman solas a partir de etiquetas y del orden curado en el dashboard. Publicar una nota nueva la ubica en el hub correcto sin un paso manual.

Hub de Píldoras con la grilla de videos cortos
Píldoras: respuestas cortas en video
Hub de Academia con las series ordenadas por nivel
Academia: series ordenadas por nivel
Dashboard

Un panel propio alimenta el theme.

El panel es una app en Next.js con PostgreSQL y Drizzle: series, grupos de etiquetas, hubs, carruseles de portada, roadmap, changelog, contacto, galería, importar y exportar, y ajustes. El orden se define arrastrando, y los gráficos de analítica muestran qué se lee. El equipo cura ahí lo que Ghost no modela, y el theme lo lee al renderizar.

Se despliega con GitHub Actions a GHCR y de ahí por SSH al servidor; todo corre en contenedores con Docker Compose detrás de Caddy con TLS automático, en un servidor que también administro: despliegue, backups y el soporte diario del medio.

Hub de tutoriales, con las secciones y el orden que define el dashboard
Hub de tutoriales, curado desde el dashboard
Video

Etiquetas que se vuelven hubs.

Además del sitio, produzco el contenido en video del canal de DonWeb Cloud: tutoriales largos, series como el curso de n8n y píldoras cortas para quien llega con una pregunta puntual. Treinta y seis de esos videos viven embebidos en el medio.

Cada video entra a Ghost como una nota con una etiqueta interna: #short, #serie-item o #video. El theme las lee y arma las portadas solas: Píldoras junta los shorts, Academia ordena las series y cada hub muestra sus videos cruzando su etiqueta con #video. Publicar un video nuevo es publicar una nota; el resto se ordena solo.

36
videos embebidos
3
etiquetas internas
Las miniaturas del canal, ordenadas por la etiqueta interna que lee el theme
En números
257posts publicados
268tags en uso
603URLs en el sitemap, todas con respuesta 200
4autores publicando

Un sitemap sano es la prueba de que la estructura funciona: cada serie, hub y etiqueta tiene su URL, y ninguna devuelve un error.

Baseline SEO del 3 de octubre de 2026
Siguiente proyectoDonWeb Cloud — Talleres y certificaciónRegistro, acreditación y certificados de los talleres de DonWeb Cloud: cuatro servicios, migración sin downtime y más de 1.700 tests.