1 puntos por GN⁺ 2025-08-08 | 1 comentarios | Compartir por WhatsApp
  • No se usan sistemas de comentarios tradicionales (Disqus, hosting propio, GitHub Issues, etc.) debido a problemas de velocidad, rastreo, carga de mantenimiento y límites de usuarios
  • Bluesky es adecuado para comentarios de blog porque no necesita mantenimiento de infraestructura, soporta contenido enriquecido, usa cuentas basadas en identidad real y permite conversaciones cross-platform
  • La implementación funciona así: publicar el post del blog → compartirlo en Bluesky → añadir el AT URI a los metadatos del post → cargar y mostrar el hilo de comentarios de ese post
  • El sistema se separa en tres componentes: listado completo de comentarios, renderizado de comentario individual + respuesta anidada, y manejo de embeds como imágenes o enlaces
  • Las respuestas se muestran de forma recursiva con un máximo de 5 niveles de profundidad; la cuadrícula de imágenes y el modal, tarjetas de enlaces y mensajes alternativos para embeds no soportados también están contemplados
  • Integración de Astro + React, carga en cliente con client:load, y activación al agregar DID y postCid en frontmatter
  • Para robustez de tipos se usan los tipos de TypeScript de @atcute/client, y el contenido principal se muestra correctamente incluso con JavaScript desactivado gracias a una arquitectura de mejora progresiva
  • Se logra rendimiento al usar la API de Bluesky y CDN, sin servidor ni base de datos propios
  • Este enfoque mejora la escalabilidad e independencia al conectar con la plataforma que ya usa la audiencia, en lugar de recrear funciones sociales para cada sitio

Por qué elegir Bluesky como sistema de comentarios

  • No se requiere mantenimiento de infraestructura
  • Soporta contenido rico como imágenes, enlaces y publicaciones citadas
  • Confianza y responsabilidad gracias a cuentas de Bluesky
  • Posible intercambio de tráfico entre el blog y redes sociales
  • Separación de propiedad de contenido (el post pertenece al autor, los comentarios al autor del comentario)

Entendiendo el protocolo AT

  • DID: identificador de usuario descentralizado
  • CID: identificador de contenido
  • AT URI: dirección con formato at://did:.../app.bsky.feed.post/...
  • Es posible obtener el hilo de comentarios con la llamada al API getPostThread, sin necesidad de autenticación

Estructura de componentes

  • Componente principal de comentarios
  • Componente de renderizado de comentario individual + respuestas
  • Componente para procesar embeds de imágenes, enlaces, etc.

Manejo de comentarios anidados

  • Renderizado recursivo con un límite máximo de 5 niveles de profundidad
  • Representación jerárquica mediante sangría visual

Manejo de contenido enriquecido

  • Imágenes: se sirven desde CDN, vista en cuadrícula y modal para múltiples imágenes
  • Enlaces externos: se renderizan como tarjetas con miniatura y descripción
  • Otros embeds: se muestra un texto alternativo

Integración con Astro

  • Uso de componentes de React + client:load
  • Se activa con comentarios al añadir Bluesky DID y postCid en frontmatter

Experiencia de desarrollo

  • Estabilidad gracias al tipado de TypeScript
  • Mejora progresiva: el contenido principal no se ve afectado si hay una falla del API
  • Sin sobrecarga de servidor o base de datos al aprovechar la infraestructura de Bluesky

Conclusión

  • Evita los problemas de los sistemas de comentarios tradicionales y se conecta con una plataforma que los usuarios ya usan
  • Puede crecer el número de participantes junto con el crecimiento de Bluesky
  • Al estar basado en ATProto, es fácil migrar a otro AppView o a una implementación propia

1 comentarios

 
GN⁺ 2025-08-08
Opinión de Hacker News
  • Me gustaría que Bluesky mostrara una idea general de cómo planea monetizar en el futuro; aunque esté envuelta en una arquitectura técnica muy complicada, me intriga de qué forma terminará monetizando algo.

  • Me pareció un texto interesante. A mí personalmente me gusta leer a la gente construir y operar un sitio por su cuenta. En el texto se mencionan cuatro alternativas para el problema de los comentarios, pero quiero contar que una quinta alternativa también funcionó para mí.
    Probé varios sistemas de comentarios de terceros y al final estoy usando un sistema de comentarios simple que hice yo mismo, form.lisp. Cada comentario se guarda como un archivo de texto, así que no tengo que preocuparme por spam, XSS o comentarios sin sentido, y los reviso manualmente los fines de semana para agregarlos al blog.
    Los comentarios se guardan como archivos HTML normales, y el generador de sitio estático (site.lisp) también genera una página de comentarios (ejemplo de comentarios) junto con el contenido, o sea, funciona esencialmente como un generador de comentarios estático.
    No se ajusta a las cinco propiedades mencionadas en el texto (sin infraestructura extra, contenido enriquecido, nombre real, etc.), pero me va muy bien y la llevo usando satisfactoriamente por al menos 4 años.

    • También me parece aceptable recibir comentarios por correo y luego, como administrador, añadirlos directamente al final de cada entrada.

    • Sigo pensando que mi método va muy bien para blogs de bajo tráfico. Pero personalmente me resulta raro que en mi sitio entren voces de otras personas; por eso, dejé de incluir comentarios y lo uso solo como espacio para expresar mi personalidad, y prefiero dejar feedback por correo a otros blogueros que me inspiran.

    • Me da una sensación parecida a recibir “cartas del lector” en un periódico.

  • Mi recomendación es cactus.chat, que está basado en Matrix y admite invitados, así que se puede comentar sin tener cuenta de Matrix. Si usas tu cuenta, terminas entrando a una sala de Matrix por cada publicación.

  • Bluesky es muy útil para almacenar información sobre cuentas de usuario existentes. Actualmente se está desarrollando en el mapa web open source cartes.app un sistema de reseñas basado en Bluesky.
    No es fácil, porque hay que crear un lexicon y mantener la base de datos alineada con el stream de Bluesky.

    • De hecho, se puede llegar bastante lejos incluso sin DB; en scrapboard.org fue posible consultar bastante de los datos del cliente solo con la API getRecord (documentación).

    • Sugirieron usar mangrove.reviews como alternativa; ese servicio aplica una licencia CC-BY-SA clara y MapComplete.org también lo usa, y con Bluesky siempre existe la posibilidad de que surjan problemas en algún momento.

  • Soy escéptico sobre la sostenibilidad del modelo de ingresos de Bluesky; incluso lo que hoy se puede usar gratis depende, en la práctica, de la inversión de VC (venture capital).
    Por eso soy cauteloso al adoptarlo, y tengo la sensación de que en un futuro cercano la API podría cerrarse o el sistema de comentarios romperse.

    • Bluesky funciona, por arquitectura, debajo del Personal Data Server (PDS) del usuario; cualquiera puede cambiar el PDS y el servidor oficial de app de Bluesky solo cumple un rol de agregación.
      También puedes acceder al mismo conjunto de datos mediante app servers y app views hechos por terceros, así que no hace falta depender de la API oficial, y la apertura es alta en muchos sentidos.

    • Creo bastante en el concepto de POSSE: el lado positivo del “enshittification cycle” es que puedes pasar un tiempo con una buena experiencia de comunidad en línea y luego mudarte a otro sitio. Como les pasó a clubs buenos que desaparecieron, no hay que aferrarse demasiado. También compartí en Mastodon lo que pienso: explicación teórica

    • Bluesky tendrá un momento en que pase a monetización, pero IA y otros servicios terminan operando con la misma estructura de dinero de VC; igual que con Twitter, Uber, DoorDash, etc., el ambiente termina degradándose igual. También es interesante, en cierto sentido, ver cómo los VC financian alegremente esa “abundancia” mientras siguen soñando con nueva riqueza.

  • El ecosistema de Bluesky es realmente genial, y hace un tiempo vi un caso de este enfoque (sistema de comentarios basado en Bluesky).
    Lo único que podría mejorar es que hay que hacer una publicación separada en Bluesky por cada página web para que el sistema de comentarios funcione; sería mejor si hubiera algo tipo webcomponent.

  • En tu post dices: “Llevo años sin tener un sistema de comentarios decente en mi blog”, pero en todo el blog solo aparecen dos entradas de 2025 (una de ellas es este post).

    • Ya revisé en archive.org y parece que antes hubo otro blog.
  • Es interesante porque permite interactuar con lo social sin exponerse directamente al feed de redes sociales.
    En mi blog, si incorporara esta función y la gente deja comentarios directamente, yo podría interactuar con Bluesky y otras redes solo por esta interfaz.
    Abrir el feed suele terminar en “doomscrolling” o en pérdida de tiempo; con este enfoque sentí una nueva forma de conectarme con redes sociales sin caer en ese ciclo.

    • Coincido con lo de “si abres el feed siempre terminas viendo solo información sin sentido”, aunque también me genera la duda de si esa no era precisamente la intención original del diseño.
  • Tengo la sensación de que Bluesky está creando otra vez en internet un entorno donde surgen ideas frescas libremente.

    • En la práctica quizá solo sea como sumar opciones de integración más abiertas que en Threads, y quizá “innovación abierta” le quede mejor a ATProto.

    • No quiero poner todo el foco en una empresa o en un solo grupo, pero por ahora la comunidad de Bluesky es divertida. Fui fan de Twitter en su época, y la base principal de usuarios de Bluesky parece estar hecha por muchos de esos tipos; habrá que ver qué pasa después.

    • Defiendo el eslogan de “protocolo, no plataforma”; también existe el término “build mode”, pero al final se trata de crear algo difícil de apropiarse o usar de forma abusiva.

    • Si molestas al equipo de Bluesky o a ciertos grupos de usuarios, o si eres reportado por un colectivo específico, tu cuenta puede ser baneada de inmediato; o, si caes en una blacklist compartida previamente, podrías desaparecer antes de que puedas decir algo.
      En el fondo parece un intento de recrear un entorno todavía más fuerte que el de Twitter, con un componente de luchas de poder infantiles, casi como en la cafetería de la secundaria.

  • Si no hospedo mi blog por mi cuenta y confío en Bluesky, al final son ellos quienes lo están gestionando.
    Aunque digan que no hay vendor lock-in, me pregunto qué haría si mañana bloquean mi cuenta o la compañía desaparece. Puedo migrar a productos compatibles con AT, pero me preocupa perder mucha información.

    • Si te interesa este tema, en https://whtwnd.com/bnewbold.net hay datos y herramientas concretas sobre cómo construir una red de relays y migración de datos basada en Bluesky y AT Proto; hay avances en migración de datos, portabilidad, soporte para relays alternativos, etc. También puede revisarse el enlace relacionado.
      (Por cierto, el autor de ese blog es un empleado de Bluesky; yo no lo soy.)

    • Se puede respaldar tus datos personales en un archivo CAR de IPFS (como un formato tarball). Luego, con el documento did:plc de tu cuenta o el registro DNS, puedes restaurarlos en cualquier PDS.
      Si el PDS actual falla o es bloqueado, puedes moverte inmediatamente a otro servidor.
      Existen implementaciones open source de relay (gossip node), PDS, cliente, app view (backend de la web app de Bluesky) y proveedores de hosting.
      Aun si Bluesky desaparece mañana, puedes pasarte fácil a self-hosting o seguir con el App existente usando otro proveedor (por ejemplo, zeppelin.social).
      El directorio PLC aún lo maneja Bluesky, pero está en proceso de pasar a una fundación independiente; además, si hace falta, clonarlo es fácil, y usando did:web dependes solo de DNS, por lo que la independencia es mayor.

    • Por otro lado, Bluesky está expulsando claramente a usuarios claramente libertarios o de derecha; para la izquierda y la gente políticamente indiferente, el clima es bastante bueno.