Usar Discourse para crear un blog, un Reddit, un X o una plataforma de scroll estilo Facebook

Estoy iniciando este tema para documentar mi camino mientras intento convertir Discourse en una plataforma más visual y de desplazamiento continuo, algo más cercano a la experiencia de navegación que ofrecen Reddit, X y Facebook.

Usaré este tema para compartir lo que intento, lo que funciona, lo que no, los componentes que estoy utilizando y cualquier problema que encuentre. Espero que también ayude a cualquier otra persona interesada en usar Discourse para algo más allá de un diseño de foro tradicional.

El punto de partida para este proyecto fue la regla 90–9–1.

Sugiere que en la mayoría de las redes sociales, blogs, etc.:

  • El 90% de los usuarios principalmente navega y consume contenido.

  • El 9% ocasionalmente reacciona, da me gusta, comparte o comenta.

  • El 1% crea activamente la mayor parte del contenido.

Obviamente, los porcentajes exactos variarán entre comunidades, pero el principio sigue siendo relevante: la mayoría de los visitantes son lectores, no contribuyentes.

Discourse es excelente para atender al 9% y al 1%. Está construido en torno a discusiones, respuestas y participación activa. Sin embargo, quiero hacerlo igualmente atractivo para el grupo mucho más grande que simplemente quiere abrir el sitio y navegar por contenido fresco e interesante.

Lo que estoy intentando construir

Quiero usar Discourse para crear un feed más visual y continuo (desplazamiento infinito) similar a Reddit, X o Facebook.

La experiencia idealmente se vería algo así:

  • Abrir la página de inicio e inmediatamente ver un feed de temas relevantes.

  • Desplazarse continuamente de un tema al siguiente.

  • Previsualizar el contenido del tema sin abrir una página separada.

  • Ver imágenes, videos y extractos directamente en el feed.

  • Dar me gusta, marcar como favorito o responder cuando algo llama la atención.

  • Mover automáticamente el contenido previamente desplazado fuera de la vista.

  • Volver más tarde y ver temas frescos o no vistos, en lugar de la misma página de inicio cada vez.

  • Personalizar gradualmente el feed utilizando categorías, etiquetas y temas con los que el usuario interactúa.

Algunas personas podrían llamar a esto «doom scrolling», pero también es simplemente la forma en que una gran cantidad de personas consumen contenido en línea hoy en día. Pueden leer decenas de publicaciones sin comentar nunca, pero siguen siendo usuarios genuinos que generan vistas, comparten enlaces y potencialmente regresan cada día.

¿Por qué construirlo con Discourse?

Discourse ya proporciona la mayor parte de las piezas difíciles:

  • Cuentas y perfiles de usuario

  • Categorías y etiquetas

  • Me gusta, marcadores y notificaciones

  • Niveles de confianza y moderación

  • Creación de temas y respuestas

  • Seguimiento de leídos y no leídos

  • Temas sugeridos y relacionados

  • Un sistema maduro de plugins y componentes de tema

Lo que parece faltar es un feed diseñado principalmente en torno al descubrimiento y el consumo pasivo. (obviamente, Discourse no fue diseñado de esta manera)

Hasta dónde he llegado

  1. Comencé con la increíble tema Redditish de @awesomerobot, que tuve que hacer un fork para poder editar varios aspectos, como eliminar la barra lateral personalizada. También edité mucho el CSS para diseñarlo como lo queríamos.
  2. Habilitar Nested Views fue un requisito indispensable, ya que cubre el estilo necesario para este tipo de sitio.
  3. Creé y agregué un menú desplazable estilo YouTube que muestra todas las categorías y enlaces personalizados. Usé Custom Top Navigation Links para personalizar y agregar enlaces.
  4. Un modal de previsualización de temas era imprescindible y comencé a diseñarlo, pero la leyenda @Don construyó una versión mejor que puede encontrarse aquí
  5. Una barra lateral derecha en caché estática en todas partes era imprescindible, así que comencé con right sidebar blocks y luego creé un componente de tema para mostrarlo en temas, etc.
  6. Usando custom header links (icons), agregué un «Crear una publicación» en la cabecera para hacer el contenedor más limpio.
  7. Imágenes en las publicaciones centradas con un fondo difuminado para que se vea más ordenado (similar a Reddit)
  8. Establecer extractos de temas de 150 caracteres y mostrarlos entre el título y la imagen en las tarjetas de temas fue un requisito indispensable (similar a Facebook y X)

Los próximos pasos serían un feed dedicado que podría:

  1. Comenzar con contenido reciente de un período definido, como los últimos 14 días.

  2. Priorizar temas de categorías y etiquetas que el usuario sigue.

  3. Mezclar temas populares o en tendencia para el descubrimiento.

  4. Registrar cuándo un tema ha sido realmente visto o desplazado.

  5. Reducir la prioridad de los temas vistos sin ocultarlos permanentemente.

  6. Permitir reacciones y respuestas directas desde el feed.

Esto no reemplazaría las listas de temas tradicionales o las discusiones. Sería una forma adicional de descubrir y consumir el mismo contenido de Discourse.

Sigue el viaje

Seguiré actualizando este tema a medida que el proyecto se desarrolle, incluidos los componentes que pruebo, los cambios que hago y los obstáculos con los que me encuentro.

También me gustaría escuchar a cualquier persona que haya intentado algo similar, particularmente en cuanto a:

  • Si los datos existentes de seguimiento de lectura podrían apoyar esto.

  • Cómo podría funcionar un feed para usuarios anónimos y recién registrados.

  • Cuánta personalización podría lograrse sin introducir un algoritmo de recomendación complejo.

  • Si las previsualizaciones continuas de temas crearían problemas de rendimiento significativos.

El objetivo es reconocer que el silencioso 90% es una parte importante de una comunidad y darles una experiencia diseñada en torno a cómo realmente usan internet.

El sitio de prueba que estaré usando para este proyecto es

https://www.m8wtf.com/

2 Me gusta