#47 - Nick Casi Decapitado

Hacer poco, pensar mucho y montar otro blog. Sí. Otro más.

Mira, voy a ir directo al grano. La plataforma que uso para la newsletters, Beehiiv, acaba de sacar una actualización.

La más importante. Una que lo cambia todo.

Un buscador de GIFs integrado.

season 8 GIF

Esto puede ser una bendición o la peor desgracia que caiga a esta newsletter.

Dios, qué maravilla. Me ha cambiado la vida. El resto del editor sigue siendo una mierda. Pero bueno.

Una mierda con GIFs.

Y bueno. Pues eso.

Vamos al lío.

👷‍♂️#BuildInPublic

Mira, son las 23:26. Del martes. Y lo que es build no ha habido mucho. Y in public menos. Ya no me da tiempo a inventármelo.

Por suerte build in private ha habido un poquito. He estado trabajando en mi web, que ahora es adlpz.com. Voy cambiado el dominio de vez en cuando. Total, no entra nadie. Así que mira.

He añadido un blog. Cuando entres no lo verás, porque el blog está añadido, pero posts no hay. Básicamente lo he hecho por dos motivos:

  • Por tener un sitio donde escribir cosas el estilo de aquellos desvaríos de seguridad informática de hace unas semanas. En inglés, y tal.

  • Porque he decidido dedicar 9 horas que no tengo a implementar un headless CMS que no me hacía ninguna falta.

Sobre el headless CMS os hablo más luego, que me apetece. Pero primero inciso para comentar cómo va el tema courses.so.

En resumen, seguimos con el objetivo de delegar el desarrollo. O al menos una parte, porque se está haciendo evidente que hay ciertas marcianadas que son básicamente inexplicables. En el sentido literal de que son tan rocambolescas que no hay forma de explicarlas a un tercero. Hay que ser yo y haberlas parido en primera persona para aceptar tal nivel de sidacódigo y bridas superpuestas.

Hoy hemos estado trabajando en qué vamos a delegar exactamente. Al final lo importante es no sólo que el proyecto avance, sino también validar que la gente en la que vamos a delegar es solvente y de que gasta el dinero a un ritmo que nos resulte asumible.

Detalle de la mesa de trabajo durante la sesión de esta mañana. Mmmmm.

Así que nos hemos centrado en varios quick wins que nos ayudarán al que será el primer objetivo: conseguir que algunos de los ~500 usuarios que hay en la aplicación la usen. Porque la mayoría no lo hacen. Crearon la cuenta, trastearon entre cinco y cero minutos y chaparon para buscar una alternativa menos penosa.

Vamos a intentar repescarlos con algunos goodies, entre otros:

  • Que el sistema de sincronizado con Notion no sea un mojón que se rompe cada dos por tres. Esto por lo visto es importante 🤷‍♂️.

  • Crear una página de curso. Vamos, que cuando le das click a un curso o le pasas el enlace a un curso a alguien no te salga directo el Stripe, desvergonzadamente. Que te diga de qué va el curso. Otra que parece que es importante, quién lo iba a decir 🙀.

  • Emails cuando pasan cosas. Porque resulta que no hay ninguno. El nivel de abandono y dejadez de la mano de Dios es significativo ahora mismo.

Ah, y antes de todo esto, vamos a hacer un 180º respecto a nuestra política de ser modernos y no trackear a nuestros usuarios metiendo todo tipo de basura ultra-intrusiva con heatmaps, session replays, client-side error reporting y cientos de eventos. El banner de cookies va a tener que ser un A3 en apaisado.

Mañana, que es hoy para vosotros, de hecho a la misma hora que sale la newsletter, estaremos negociando detalles con los potenciales desarrolladores. En plural, son un equipo. [Nota a cierre de edición: han pillado covid. Han fallecido anulado la reunión. 🦠]

Y yo sin un duro. Fortuna audaces iuvat y tal, ¿no?. Eso dicen los ludópatas. Veremos como sale la jugada.

Cerramos la sección #BuildInPublic comentando que de sync.banco.surf todavía no he hecho nada, pero viene pronto. Porque me apetece, básicamente. Y porque necesito rentabilizarlo ya que el proveedor me va a subir en breves el precio a 100€/mes + uso, y me va a venir francamente mal tener que mantener el servicio para cuatro o cinco personas pagando ~1€/mes 😭.

Y ahora, como sé que aquello del headless CMS te ha interesado que flipas y llevas desde hace doce párrafos esperando que me calle la boca y te lo cuente en detalle, voy a ser amable y cambio de tema. A ese.

Intensifies Starship Troopers GIF

Está en Disney+. Si tienes, cierra la newsletter ahora mismo y ponte a verla.

🛠️ Herramienta — tina.io

Vamos a ir por partes. Headless CMS. ¿Ein?

  • CMS — Content management system. Sistema de gestión de contenido. Un sitio donde guardar contenido. Artículos, posts de blog, cosas así. Ejemplo: el Wordpress.

  • HeadlessDecapitao. ¿Y a nivel técnico? Sin front-end. En otras palabras, así como Wordpress es un monolito conectado a una base de datos, y en el mismo “sitio” escribes y lees, en un CMS headless la salida del asunto es sólo una API.

¿Para qué sirve esto? Pues para desacoplar cosas. En otras palabras: un CMS tradicional, como puede ser el archiconocido Wordpress, es un sólo paquete de software que se encarga de todo: el editor de posts, convertir los posts a HTML que entienda el navegador, recibir comentarios, hacer anti-spam, enviar emails, gestionar usuarios. La superficie de movidas es enorme y esto implica que hay un montón de sitios donde la cosa puede fallar. O ser insegura.

Y por eso se os llena el blog de comentarios de gente vendiendo pastillitas azules. Eso si tenéis suerte y no se os llenan los propios posts porque el blog lo tenéis el pobre secuestrado perdido por juánqueres de distinto proceder.

Así, en un CMS headless tu vas a un sitio a escribir y luego tienes otra web, normalmente de las que son estáticas e inhackeables, y renderizas el contenido que te da el CMS a través de una API.

El caso es que este tipo de CMS están de moda. Mucho. Hay docenas de productos en el mercado y a mi me apetecía probar alguno. Pero tenía algunos requisitos especiales:

  • Que hablara, básicamente, Markdown. Necesito que el texto esté en algún lugar en un formato que tenga la mínima sensación de que será legible dentro de 10 años. Markdown en ficheros texto plano UTF-8 huele a duradero. Además, que me gusta escribir Markdown.

  • Que fuese gratis. Paso de pagar para cuatro desvaríos que pongo en un blog.

  • Que fuese Open Source, o casi. Algo que no me vayan a rugpullear en directo en cuanto lo compre cualquier pez gordo o se aburra el fulano de turno que lo montó.

Y me encontré Tina:

A parte de dar risa el nombre, los bullet points me cuadran. En resumen:

  • Open source. Ish. A ver, el 95% es Apache 2.0. Pero hay una parte, el cloud, que es Fair Source License. Esta no es Open Source ya que limita el uso y disfrute gratuito a unos límites. En concreto 5 usuarios, 2 roles y 500 documentos por web. No es ideal, pero es aceptable.

  • Gratis. Esta parte del cloud lo ofrecen hosteado. Y el free tier es muy generoso: 2 usuarios, 2 roles e infinitos posts por sitio.

  • Flexible infinitamente. Puedes definir todo tipo de post types y lo haces todo a base de modificar JSONs dentro de tu propio proyecto.

  • Markdown-first. Todo contenido rich-text es Markdown. E incluso soporta MDX con componentes personalizados. Una fantasía.

  • El contenido, en git. Esta me explota la cabeza. El cloud no guarda nada. Lo que hace es commits a tu propio repo. Configuras dónde van a parar los .mds y se encarga de guardar los cambios. Y tu pipeline habitual de despliegue se encarga de subirlo a producción.

  • Previews. Y editor visual, como en Wordpress. Porque esto es lo primero que piensas cuando te dicen que el contenido está en git. ¿Cómo hago previews? ¿Drafts? Pues se puede. Tu código no lee directamente los ficheros markdown, sino que habla con una API GraphQL. Así que cuando estás editando, con algo de magia, te renderiza el resultado final in-situ, sin tener que hacer el commit. Una virguería.

La verdad es que todavía no he rascado ni la mitad de lo que puede hacer este software. Pero me convence. Si vives en el mundo 100% React y estás acostumbrado a cómo se trabaja, te cuadrará. Tanto para un blog como para contenido textual más complicado (añadiendo widgets con MDX inline) e incluso para webs de contenido arbitrario. Iba a poneros un GIF pero me han salido cuarenta megas, así que mejor os pongo un enlace a una demo. Dadle un segundo para cargar. Mola mucho, en serio.

Como dicen los gurús, echadle un ojo, que está eeeestupendo.

Y para cerrar el tema, las cosas malas. Que es una: es muuuy developer-first. A ver, el editor no, una vez configurado es perfectamente usable para cualquier persona. Pero la configuración y la integración con tu blog es… durilla. Hay que tener los huevos pelaos y haberte pegado con abundante software a medio cocer y creativamente documentado. Como éste.

En especial porque tiene soporte first-party para Next.js, pero el router antiguo en /pages y no el nuevo y molongo en /app. Que no se parece en nada absolutamente.

Pero lo he hecho funcionar. Y me siento tan orgulloso que me dan ganas de hacer un mini-curso y todo. Igual es cuestión de aprovechar para hacer dogfooding de courses.so, ¿no?

👋 Y hasta aquí

Esto es todo por hoy. Para cerrar la edición un poco de chascarrillo del sector.

AWS, vamos, Amazon, ha comprado fig.io. Para los que no lo conozcáis, una herramienta que aumenta tu terminal con un automplete en plan flipante. Y de paso hace telemetría a granel y te roba los datos. ¿Por qué lo comento? Porque, ¿para qué querrá AWS comprar eso? ¿Es puro acqui-hire? Todo muy raro. Os dejo link a Hacker News donde la gente elucubra sobre el tema. El caso es que empezaron en 2021 y ahora están forrados. Mucha envidia. Ah, y mucho miedo de Amazon así que lo primero que he hecho ha sido borrar la app.

Si la usáis, planteároslo.

Espero que hayáis disfrutado de la lectura ligera. La semana que viene más #BuildInPublic (o tal vez #PlanningInPublic) y hablaremos también del mundillo este de crear contenido. Porque está la cosa poniéndose fea.

Y os hablaré también de mi impresora. Que todavía no me ha llegado. Llega mañana. Pero ya adelanto que me dará que hablar. Para empezar me ha costado más que el teléfono.

Más que otras impresoras que le sacan una dimensión a ésta.

¿Locura o compra magistral?

En siete días, el desenlace.

Nos leemos pronto.