Este es el primer episodio de una serie de cuatro que voy a dedicar a herramientas que he implementado y que uso en mi día a día. Las cuatro comparten stack: Rust en el backend y React con TypeScript en el frontend. Y la primera es, sin duda, una de las que más me facilitan la vida: Popuplatrs.
¿Te suena el ritual de publicar un artículo y tener que abrir Telegram, luego Mastodon, luego X, luego LinkedIn, luego Bluesky, y encima personalizar el texto para cada plataforma? Pues eso es exactamente lo que Popuplatrs elimina de tu día a día. Le das uno o varios feeds RSS, Atom o YouTube, y él se encarga de leer las novedades y publicarlas automáticamente en las redes que le configures. Con plantillas personalizables, programación de horarios, reintentos automáticos y un panel web desde el que controlarlo todo.
En este episodio te cuento por qué me decidí a crear esta herramienta, qué alternativas existen (Buffer, Hootsuite, IFTTT, Zapier) y por qué ninguna me convencía al ser SaaS o no estar pensadas para funcionar a partir de feeds. También te explico la arquitectura técnica: Rust con Axum, SQLite en modo WAL, autenticación OIDC con Pocket ID, y un sistema de plantillas con MiniJinja que te permite personalizar el mensaje para cada red social.
Popuplatrs soporta hasta nueve publicadores diferentes: Telegram, X (Twitter), Mastodon, Bluesky, LinkedIn, Threads, Discord, Matrix y OpenObserve para logging. Cada uno con su propia configuración de autenticación y límites de caracteres. Por ejemplo, en Bluesky publica respetando el límite de 300 caracteres, en X primero lanza el título y luego un reply con el enlace para aprovechar mejor el espacio, y en Discord usa webhooks que se configuran en segundos.
El sistema de plantillas es una de las partes que más me gustan. Usa MiniJinja, un motor compatible con Jinja2, y te permite definir plantillas distintas para cada plataforma. Puedes truncar el texto a un número de caracteres, limitar las palabras, eliminar HTML, y combinar el título con la descripción como más te convenga. Todo desde el panel web, sin tocar código.
Y por supuesto, te cuento cómo tenerlo corriendo en tu servidor en cinco minutos con Docker. Porque si algo me gusta es que las herramientas sean fáciles de desplegar.
Capítulos:
0:00 - Introducción: el problema de publicar en redes sociales
1:45 - Alternativas existentes y sus limitaciones
3:00 - Qué es Popuplatrs: origen, nombre y características principales
4:15 - Arquitectura técnica: Rust, Axum, SQLite y Pocket ID
5:45 - Fuentes soportadas: RSS, Atom y YouTube
7:00 - Publicadores: hasta nueve plataformas sociales
8:30 - Panel web: dashboard, logs y republicación de errores
10:30 - Programación, reintentos y control anti-spam
12:00 - Motor de plantillas y personalización por plataforma
13:30 - Despliegue con Docker Compose, Pocket ID y despedida
Más información y enlaces en las notas del episodio
- 🌐 Aquí lo puedes encontrar todo 👉 https://atareao.es
- ✈️ Telegram (el grupo) 👉 https://t.me/atareao_con_linux
- ✈️ Telegram (el canal) 👉 https://t.me/canal_atareao
- 🦣 Mastodon 👉 https://mastodon.social/@atareao
- 🐦 Twitter 👉 https://twitter.com/atareao
- 🐙 GitHub 👉 https://github.com/atareao