Usar Discourse MCP para crear rápidamente un tema

,

A menudo, el mayor obstáculo para iniciar una comunidad es «hacerla tuya».

Quieres que tu fuente, tu estilo y tu identidad coincidan con tu marca.

En esta publicación me gustaría cubrir lo que se puede lograr de manera bastante sencilla con:

Elegí Codex aquí, ya que el recién lanzado GPT-6 Astra es un artista visual increíblemente talentoso. Kimi K3 y Fable también son bastante fuertes en este departamento, pero para esta demostración estoy usando Astra.

Paso 1 - Generar clave de API

Dirígete a: your.site/admin/api/keys/new

Genera una clave de API global.

Nota de seguridad: guarda esta clave con cuidado, considera revocarla una vez que el trabajo esté hecho, ya que proporciona acceso ilimitado al sitio.

Paso 2 - Agregar Discourse MCP

En este tutorial estoy usando codex:

edita: ~/.codex/config.toml

[mcp_servers.discourse]
command = "npx"
args = [
  "-y",
  "@discourse/mcp@latest",
  "--toolsets",
  "all",
  "--allow-writes",
  "--site",
  "https://figment123.discourse.group",
  "--auth_pairs",
  '[{"site":"YOUR_SITE","api_key":"YOUR_API_KEY","api_username":"system"}]',
]

(nota: Codex no te permite elegir qué MCP están habilitados o deshabilitados, todo lo que esté en la configuración se habilitará. Puedes colocar enabled = false para deshabilitar temporalmente un MCP)

:writing_hand: Una nota sobre las herramientas: El Discourse MCP admite más de 140 herramientas, esta configuración las hace todas disponibles. Los entornos modernos como Claude y Codex pueden manejarlo sin problemas, sin embargo, muchos entornos pueden tener dificultades con una cantidad de herramientas tan alta; por ejemplo, Grok build requerirá filtrado)

Una vez que agregues Discourse MCP, asegúrate de confirmar que tu agente puede acceder a él:

Paso 3 - Dar a tu agente las herramientas que necesita para hacer el trabajo

Un agente rendirá significativamente mejor si tiene:

  1. Ojos, la capacidad de ver su trabajo. (playwright MCP, computer use, etc)
  2. Contexto, el Discourse MCP ayuda, pero también lo hace el código fuente de Discourse
  3. Generación de imágenes - por si necesitas activos, etc.

La aplicación de ChatGPT tiene un navegador integrado, asegúrate de que lo use. Asegúrate de clonar el código base de discourse/discourse y iniciar tu agente desde el directorio de Discourse.

Nada de esto es obligatorio, pero tenerlo resultará en resultados significativamente mejores.

Paso 4 - Dar a tu agente inteligencia y una instrucción clara

En este caso, dado que quiero ver resultados muy buenos, opté por GPT-6 Astra XHIGH.

A continuación, escribí una breve instrucción con mi IA sobre lo que quería (Un tema de comunidad estilo The New Yorker)

Brief creado por IA

Construye The Salon, un tema de Discourse pulido que demuestre cómo un cliente puede transformar radicalmente la identidad de Discourse. La referencia creativa es The New Yorker: una institución editorial cuyos lectores participan en la conversación. Crea una identidad original, no una réplica: sin logotipos prestados ni tipografías propietarias sin licencia. Usa marfil cálido (#F7F4ED), tinta casi negra (#20201E), rojo editorial contenido (#B52B32), reglas finas, espacios en blanco generosos, titulares serif expresivos, texto de cuerpo serif legible y metadatos sans-serif compactos. Las ilustraciones monocromáticas deben añadir ingenio y carácter. Tienes libertad creativa para buscar, descargar o generar los activos que la demo necesite: fuentes, ilustraciones, fotografía, avatares e iconos, utilizando material con licencia adecuada y manteniendo la atribución donde sea necesario. Evita tarjetas SaaS genéricas, pergamino falso y desorden decorativo. Apunta a una revista literaria contemporánea con una comunidad viva dentro de ella, no a un foro estándar con colores diferentes.

Se te autoriza explícitamente para poblar la instancia de demostración con las categorías, temas, respuestas, perfiles de contribuyentes ficticios y contenido de apoyo necesarios para hacer la experiencia convincente. Preserva el contenido real existente y mantén la actividad ficticia claramente identificable como datos de demostración. Crea cinco departamentos editoriales—The Commons, Arts & Letters, City Life, Science & Ideas, Table Talk—con descripciones e ilustraciones distintivas. Construye un fuerte masthead de THE SALON, una discusión principal curada, titulares secundarios y una sección de conversaciones más recientes. Siembra discusiones variadas y reflexivas como «¿Cuándo se convirtió cada afición en un side hustle?» y «¿Qué cambiaría realmente tu opinión?», con publicaciones iniciales convincentes, desacuerdos sustanciales, respuestas cortas, citas e imágenes bien elegidas. Poblá suficiente contenido para demostrar densidad, desplazamiento y navegación; no uses relleno repetitivo ni dejes pantallas importantes vacías. Cada titular debe abrir un tema real, y la actividad, las cantidades de respuestas y los estados no leídos deben permanecer visibles. Lleva la identidad a través de las listas de categorías, las páginas de temas, la búsqueda y el compositor: las publicaciones iniciales deben sentirse como ensayos bellamente tipografiados, mientras que las respuestas permanecen como conversaciones compactas y usables. El móvil debe convertirse en una experiencia tranquila de una sola columna, y el modo oscuro debe sentirse igualmente deliberado.

Inspecciona la versión de Discourse objetivo y las APIs de tema soportadas antes de elegir detalles de implementación. Prefiere un tema mantenible y componentes de tema enfocados; evita parches al núcleo, plugins innecesarios, manipulación frágil del DOM y funcionalidad inventada. Haz que la curaduría editorial sea explícita y configurable. Trabaja de forma autónoma en decisiones de diseño, activos y puestas en escena reversibles, en lugar de pedir aprobación por cada detalle; establece el lenguaje visual con una página de inicio representativa y una página de tema poblada, luego termina las superficies de apoyo. Entrega un tema instalable, los componentes requeridos, una configuración reproducible del contenido de demostración, la procedencia de los activos e instrucciones de instalación concisas. Verifica el resultado en una instancia real de Discourse en escritorio y móvil, incluyendo navegación por teclado, contraste, estados no leídos, búsqueda, citación y composición. Captura la misma comunidad poblada antes y después de aplicar el tema para que la transformación sea innegable. El estándar es una demostración lista para el cliente: no un mockup, no solo una hermosa página de inicio, sino una comunidad coherente y funcional con una sensación de lugar completamente diferente.

  • consulta el código fuente de Discourse según sea necesario
  • https://figment123.discourse.group/ es un sitio de demostración, puedes hacer lo que quieras con él, mira los resultados a medida que avanzas, habilita el tema
  • crea temas según sea necesario

Paso 5 - ¡Se ve genial!

Una hora y diez minutos después, Astra Xhigh ha terminado.

Un hermoso tema inspirado en New Yorker.

El tema no es perfecto, tiene casos límite, recomendaría un Paso 6 de refinamiento, donde pegues las áreas donde el diseño está desviado y el agente lo corrija. Pero como punto de partida es absolutamente asombroso que podamos hacer esto hoy. No era posible hace un año.

Ejemplo de refinamiento en tiempo real:

24 Me gusta

A menos que me esté perdiendo algo, parece que creaste un andamiaje de agente de IA personalizado para hacer esto. :high_five: :+1:

Dado que un andamiaje de agente de IA es un concepto más amplio que un andamiaje de codificación de IA—como Claude Code, OpenAI Codex o OpenCode—busqué una buena referencia introductoria para cualquiera que sea nuevo en la terminología y desee disipar un poco la niebla:

Si solo recuerdas una línea:

Un modelo piensa. Un agente actúa. Un andamiaje evita que el agente actúe como un idiota.


Personalmente, creo que estamos llegando al punto en que los propios agentes se están volviendo menos novedosos, mientras que los andamiajes de IA diseñados a medida se convierten en la parte más interesante de la historia.

En lugar de simplemente preguntar «¿Qué agente estás usando?», la pregunta más útil podría ser cada vez más «¿Qué andamiaje has construido a su alrededor?»

2 Me gusta

No, sí construí un harness personalizado, pero esto es todo la aplicación de ChatGPT vanilla en Linux, Discourse MCP y una prueba de Discourse.

En Mac, ChatGPT es aún más completo, ya que puede controlar cualquier aplicación, por lo que, por ejemplo, podría probar en Firefox y Chrome durante el proceso de construcción, e incluso en el simulador de iPhone.

Mi harness personalizado podría lograr resultados similares; publicaré una muestra diferente. https://chatgpt.com/download/

6 Me gusta

Solo estoy añadiendo una nueva versión que me pareció interesante para cualquiera que quiera comparar y evaluar una alternativa a los modelos de EE. UU.:

1 me gusta

Definitivamente puedo hacer una demo rápida con eso más tarde, pero dudo que se le parezca en algo a Astra

3 Me gusta

¡Genial! Me identifico especialmente con el artículo principal. :sweat_smile:

En aquel entonces fui muy escéptico, y DeepSeek me demostró que valía la pena con su versión V4. GPT-6 Astra es un modelo de frontera, pero es muy probable que DS 4.1, para tareas como esta, pueda ser una alternativa realmente buena.

Sí, para hacer una prueba justa, necesito rehacer el trabajo de Astra en mi propio entorno y luego cambiar el LLM, así que va a llevar un poco.

esto también funciona para los que autoalojan


además, aquí va mi intento. Digo que no me encanta para el proyecto/comunidad exacta en la que estoy trabajando, pero aun así hizo un buen trabajo.


4 Me gusta

¡Esto es increíble! También me encanta el realismo en tu experiencia con la IA (“tío…” jaja) :laughing:

1 me gusta

Ejecuté una prueba con DeepSeek 4.1 flash max.

La transcripción completa está aquí: https://gisthost.github.io/?28dedf78da999ccca5b5b4feb1d58fc9/index.html

Esto estuvo un poco contaminado, ya que ejecuté la prueba en un contenedor de dv y en algún momento el agente decidió que sería más eficiente usar Docker para hacer los cambios en lugar de apoyarse en nuestro MCP.

Para la generación de imágenes usé Qwen 3 Image.

Para la inspección visual, le di al agente chrome-devtools-mcp. Esto se puede configurar fácilmente para usar Chromium en Linux, que suele ser mi elección:

   "chromium-devtools": {
      "command": "npx",
      "args": [
        "-y",
        "chrome-devtools-mcp@latest",
        "--headless=true",
        "--executable-path=/usr/bin/chromium",
        "--chrome-arg=--no-sandbox",
        "--chrome-arg=--disable-dev-shm-usage"
      ]
    },

Toda la ejecución se basó en DeepSeek 4.1 flash tanto para el agente principal como para los subagentes.

Usé term-llm.com para controlarlo en modo TUI:

Resultados:

Observaciones

El briefing es crítico: si tienes un buen briefing, los resultados serán excelentes; si tienes un briefing deficiente, quedas a merced del LLM. Un gran briefing habla sobre la estructura, los colores y da ejemplos, entre otras cosas.


DeepSeek 4.1 flash fue muy capaz en esta prueba y muy barato. Con un 99% de lectura de caché y solo 2,8 M de tokens leídos, esto habría costado alrededor de $1,52 fuera de hora punta o $3,04 en la tarifa de hora punta. Astra es significativamente más eficiente en tokens, por lo que esto no es justo, pero para ponerlo en contexto, el precio de Astra para un número similar de tokens sería de $325.

De manera conservadora, incluso teniendo en cuenta la eficiencia de tokens, estimaría que podrías lograr un diseño como este en Astra por 50-100 dólares; conseguirlo por 1,50 dólares es imposible con los costos actuales de la API.

Ejecuté esto en mi plan OpenCode go y ni siquiera sentí un pequeño golpe en mi plan de $10 al mes:

Algunas cosas me impresionaron de esta ejecución: fue capaz de funcionar de forma desatendida durante horas. Actuó sobre el MISMO briefing exacto de el OP diligentemente y con cuidado. Intentó abordar cada punto del briefing y probó meticulosamente todo.

Acertó en muchas cosas y el diseño es sólido.

Dicho esto, esto no es GPT 6 Astra; el diseño me parece más propio de un LLM. El espaciado, las fuentes y la atención al detalle no eran los mismos que en Astra. También es muy claro que no tiene la misma fidelidad visual que Astra; hubo muchos fallos visuales evidentes después de la iteración 1, aunque, a su favor, fue capaz de corregir la mayoría cuando se le solicitó.

Se negó a corregir este en particular por alguna razón:

Pero el resto de las peculiaridades fueron manejadas sin problema por él.

La parte más impresionante de la construcción fue lo ordenado que insistió en ser:

  • Creó una carpeta para la evidencia
  • Intentó ingenierizar el tema de manera limpia, dividiéndolo en muchos archivos e incluso probarlo

En general, no esperes Astra de un modelo 50/100 veces más barato, pero como herramienta, sin duda puede producir resultados muy interesantes por una fracción del costo.

En retrospectiva, recomendaría construir el tema directamente en un contenedor dv y luego subirlo, ya que puedes ejecutarlo de forma segura en modo YOLO y la configuración es muy fácil.


Intentaré hacer algunas experimentos más al respecto la próxima semana y publicaré algunos ejemplos más. Si tienes un briefing espectacular, avísame.

Generalmente uso múltiples LLMs de múltiples proveedores para construir cosas, así que un ejemplo más tipo “cómo trabajo generalmente” podría ser interesante.

8 Me gusta

Me encantaría ver algo así también :eyes:

2 Me gusta

Lo probé y parece que solo Astra logra captar el aspecto exactamente como se presenta, mientras que otros modelos no fueron tan visualmente consistentes. ¿Tienes alguna sugerencia adicional para crear elementos de interfaz personalizados?

Para los elementos de interfaz personalizados, recomiendo encarecidamente trabajar en un contenedor dv, ya que facilitará mucho la búsqueda de ejemplos en el código.

1 me gusta