Este blog empezó hace 23 años, en diciembre de 2003. Pero visto desde hoy, 2003 era otro mundo.
Nació como nacieron tantos blogs por aquellos días, con una pequeña ventaja: dominio y hosting propios. Y, además, un buen dominio .com de cuatro letras, nada mal.
Era —y ha sido— un lugar de desahogo, de registro de hallazgos, intentos y fracasos. Con el tiempo se convirtió también en un punto de encuentro entre viejos y nuevos amigos. Ha documentado mi crecimiento como persona, como profesional y, de forma particularmente visible, como fotógrafo.
Incluso hubo una época en la que dejó lana: pagó una parte de la carrera y otra parte del coche.
Hoy el formato de blog, así, a secas, se siente hasta cierto punto anticuado. Hace tres o cuatro años la conversación estaba en Twitter, las fotografías en Instagram, los logros profesionales en LinkedIn y cada cosa encontraba su respectivo jardín amurallado. Hoy todo gira alrededor de servicios todavía más especializados: la gente de Medium terminó en Substack, los posts se convirtieron en media y el contenido encontró formas cada vez más sencillas de convertirse en negocio.
Pero nel, a mí me gusta mi espacio, mi (a veces imaginaria) autocensura. Mis fierros y mis bits. Y eso mismo me llevó a intentar varias veces regresar a los orígenes y desarrollar mi propio CMS.
Tres veces, para ser exactos.
Los codenames fueron b4co, b5co y b6co. El último incluso alcanzó a ver la luz del día en beta.
Pero nel.
Ni a mí me gusta(ba).
El problema principal era ridículamente importante: no encontraba una forma chida de escribir. Y si escribir en tu propio blog termina siendo dolor, la enfermedad es más ruda de lo que aparentaba. Terminaba escribiendo casi todo en Notion y medio exportándolo después a lo que tuviera enfrente.
Y en algún momento, diez años después de el primer post, en 2013 tomé una mala decisión que provocó que durante varios años me sintiera, literalmente, secuestrado por WordPress.
WordPress quiso convertirse en todo y, en el proceso, para usuarios como yo consiguió principalmente dos cosas: no terminar de ser nada en particular y sobrecomplejizar absolutamente TODO.
Decían que era expandible. Y sí, más o menos lo es. Pero escribir dos líneas funcionales puede convertirse en dos días de trabajo. the_post(). WTF.
El viaje de un request es más complejo que salir de Mordor.
¿Quieres algo? Plugin.
¿Quieres algo bien hecho? Plugin pagado.
¿Quieres cambiar el look & feel? Theme.
¿Quieres que verdaderamente se vea chingón? Págle a un cabrón.
Nel.
Así que me tardé varias semanas investigando alternativas. Incluso consideré migrar mi stack a... otras cosas.
Pero, otra vez: nel.
Al final me decidí por Kirby, que es lo que estás viendo ahora. Codename b7ko.
¿Por qué Kirby?
-
No es WordPress. Tampoco un fork, un clon ni un intento de arreglar WordPress agregándole otras quince capas.
-
Es software, no servicio. Está en mi server, mi CPU, mi disco duro. Un ssh y puedo arreglar el 90% de los problemas.
-
Está escrito y funciona 100% en PHP. Independientemente del cariño que le tengo al lenguaje, sigue siendo una de las formas con las que más cómodo me siento sirviendo cosas desde mi servidor. Y, al final, todo esto empezó como una búsqueda por deshacerme de WordPress de la manera menos dolorosa posible.
-
Cubre todas las necesidades reales que tengo para este blog. Y conforme fui probando opciones me di cuenta de que esas necesidades, aunque individualmente parecen pequeñas, juntas son un chingo.
-
El contenido puede vivir completamente en archivos y carpetas. Eso fue importantísimo para consolidar más de veinte años de posts, fotografías, metadatos y experimentos sin seguir cargando con una base de datos heredada por décadas.
-
Escribir se siente como quería que se sintiera. Básicamente tienes un texto en Markdown dentro de un ambiente bastante zen y poco más. Cero clics innecesarios. Aunque técnicamente es Kirby-flavored Markdown, para efectos prácticos es increíblemente cómodo.
-
No usa una base de datos. Ni relacional ni documental.
Sí.
Ya sé.
Yo también: 😱
Todo funciona mediante un scan optimizado de directorios y archivos en disco:
txt,yaml,jsony compañía.En este punto todavía no tengo del todo claro hasta dónde puede escalar machín, pero para este proyecto la idea tiene muchísimo sentido.
-
La arquitectura no necesariamente es sencilla, pero sí tiene lógica. El viaje de un
requestes fácilmente trazable —e interceptable—, tiene un sistema de eventos un poco arcaico pero funcional y, sobre todo, es verdaderamente expandible.No “instala este plugin de 80 MB para cambiar tres cosas” expandible.
Expandible de “escribe unas cuantas líneas y consigue exactamente lo que quieres”.
-
El pipeline para expandirlo por APIs no es sencillo, pero es claro y funcional. Conectarle un modelo para, respetando que el contenido escrito y fotos sean 100% humanas, me ayude con metadata, SEO, monitoreo, anti-SPAM y pendejadas varias.
-
API REST out of the box.
-
Hay una nota importante: Kirby no es open source. No lo veo necesariamente como algo bueno o malo, simplemente es parte de la decisión. Puedes descargarlo y probarlo prácticamente sin restricciones y, cuando todo esté listo para producción, la licencia cuesta alrededor de mil baros por instalación e incluye hasta tres años de soporte.

Y sea lo que sea, jala al pedo.

Pendientes
ConsolidaciónMigraciónPanel de controlSEO básico- Comentarios (¿? 🤔)
RSS feed—no viene out of the box, pero generarlo es MUY fácil—- Mailing list
- Optimización de imágenes (optimized serving vs. resample, or both), ¿shall I create a plugin for Kirby + img.pro?)
Por ahora, después de años de mover cosas, probar CMS, escribir código que nunca, nadie me pidió y pelearme con WordPress más veces de las que me gusta admitir, este blog vuelve a sentirse mío.
Que, pensándolo bien, era exactamente el objetivo.
Date una vuelta por un post aleatorio, checa la lista de posts chidos y dime qué te parece.