Podcast · Debate

Las Cosas Por Su NombreCada episodio de debate convertido en una ficha que responde la pregunta de su título

Sitio del podcast de debate de Jorge Cassis: 34 episodios con respuesta corta, puntos clave enlazados al minuto exacto del video y preguntas frecuentes.

Tecnologías

  • Astro 7
  • React 19
  • TypeScript
  • MDX
  • Tailwind CSS v4
  • GSAP
  • Fontsource
  • YouTube (youtube-nocookie)
  • Node.js
  • Docker
  • Google Analytics 4
  • Microsoft Clarity
Portada del sitio de Las Cosas Por Su Nombre, podcast de debate conducido por Jorge Cassis, en negro y rojo
  • 34

    episodios

  • 403

    puntos clave enlazados al minuto

  • 139

    preguntas frecuentes

Mi rol

Diseño y desarrollo del sitio en Azirgo SAS: migración de Next.js a Astro, modelo de contenido de los episodios, rendimiento y SEO para buscadores y motores de respuesta.

El problema

El proyecto nació como una landing de presentación del programa, con secciones pensadas para vender el formato y sus auspicios. Pero los títulos del podcast son preguntas - «¿Por qué sigues cayendo en estafas piramidales?» - y quien las busca quiere la respuesta, no una presentación. Hacía falta un archivo donde cada episodio contestara su propia pregunta en texto, se pudiera recorrer por tema y llevara al minuto exacto del video en el que se discute cada punto.

Qué construí

  • Archivo de 34 episodios en /episodios, con índice de temas, contador de episodios e invitados y un mosaico con las miniaturas de todo el catálogo.
  • Ficha por episodio que abre con «En corto», una respuesta de 40 a 60 palabras a la pregunta del título, colocada justo debajo del H1 y antes del reproductor.
  • Puntos clave con marca de tiempo que enlazan al minuto exacto del video en YouTube, más un resumen y el desarrollo por capítulos; cinco episodios muestran además la primera parte de su transcripción.
  • Preguntas frecuentes en cada episodio, visibles al pie de la ficha y publicadas como FAQPage.
  • Página de autor para Jorge Cassis: qué hace distinto al programa, cómo discute, los temas que vuelven y lo que ha contado en primera persona.
  • Home editorial por bloques - la oportunidad, la solución, los valores, el conductor, cuatro pilares con un episodio de ejemplo cada uno - y dos selecciones curadas: «Lo que nadie quiere hablar» y «Cuando el sistema te deja solo».
  • Formulario de contacto y burbuja de auspicios que abren WhatsApp con los datos ya escritos.

Cómo está estructurado

Astro con salida en servidor y el adaptador de Node en modo standalone, empaquetado en Docker. Todo el contenido vive en una sola colección MDX: no hay base de datos ni llamadas a APIs externas para armar las páginas.

  • Rutas públicas: inicio, /episodios, 34 fichas en /episodios/<slug>, /autor/jorge-cassis, /contacto y una 404 propia, más sitemap.xml, robots.txt y llms.txt generados como endpoints.
  • Cada episodio declara número, título, ID de YouTube, fecha, duración, invitados, temas, respuesta corta, resumen, puntos clave y preguntas; el título y la descripción cortos para buscadores son opcionales y tienen tope de longitud.
  • Orden de la ficha: migas, título, «En corto», reproductor, resumen, puntos clave, desarrollo por capítulos, preguntas frecuentes, tres episodios recomendados y formulario de contacto.
  • Datos estructurados: Organization y WebSite desde el layout; PodcastEpisode con VideoObject, BreadcrumbList y FAQPage en cada ficha; ProfilePage, Person y FAQPage en la página del autor; ContactPage, LocalBusiness y FAQPage en contacto.
  • llms.txt lista cada episodio con su número, su bajada y sus invitados, y robots.txt da la bienvenida explícita a los buscadores con IA.
  • Middleware en dos pasos: primero el enrutado por subdominio, que sirve dos paneles internos de prototipo fuera del sitemap y con noindex, y después las cabeceras de seguridad con una CSP aplicada.

Identidad visual

Negro, blanco y un solo rojo. Anton en mayúsculas para los titulares, Inter para los rótulos y Barlow para el texto, con una capa de grano fotográfico sobre toda la página.

  • Las miniaturas de los episodios se usan como textura: desaturadas y oscurecidas detrás de los encabezados, con la intensidad justa para que el texto siempre gane.
  • Los bloques del home se encabezan con iconos en línea y no con numerales decorativos, porque son observaciones independientes y no una secuencia.
  • El hero usa una foto real del estudio como fondo, servida en cuatro tamaños y precargada con el mismo srcset que declara la imagen.

Por dentro del sitio

  • Las Cosas Por Su Nombre: Ficha de episodio que abre con la respuesta corta a la pregunta del título
    Ficha de episodio que abre con la respuesta corta a la pregunta del título.
  • Las Cosas Por Su Nombre: Página del conductor, Jorge Cassis
    Página del conductor, Jorge Cassis.

Decisiones técnicas

  • Sin API ni CMS: cada episodio es un archivo MDX con el frontmatter validado, y la miniatura no se sube al repositorio, se deriva del ID de YouTube. Publicar un episodio es sumar un archivo, y si falta un campo el build falla con el error exacto.
  • La respuesta corta va arriba de todo porque los motores de respuesta extraen de la parte alta de la página: la descripción cuenta de qué va el episodio, mientras que «En corto» contesta la pregunta y se sostiene solo, sin el resto de la ficha delante.
  • Los temas se escribieron con el vocabulario de cada episodio, así que la mayoría aparecía una sola vez y los recomendados terminaban ordenados solo por fecha. Un mapa de sinónimos los agrupa únicamente para calcular la afinidad; en pantalla se siguen mostrando tal como se escribieron.
  • Seis secciones del home pasaron de islas de React a componentes Astro con CSS y un IntersectionObserver compartido: según PageSpeed arrastraban 129 KB de JavaScript sin usar. Solo quedó como isla la de pilares, que sí tiene estado.
  • El reproductor es una fachada - miniatura y botón de play - y el iframe de youtube-nocookie se inserta recién al hacer clic. Las tipografías van auto-hospedadas, con fuentes de respaldo ajustadas a sus métricas para que el cambio de fuente no mueva el layout.

Retos

  • Migrar de Next.js a Astro sin romper el enrutado por subdominio que ya tenía el proyecto: en Astro la reescritura tuvo que hacerse sin volver a ejecutar el middleware, porque el host no cambia y la petición entraba en bucle.
  • Condensar conversaciones de hasta más de dos horas, con varios invitados en la mesa, en una respuesta corta, puntos clave con minuto y preguntas frecuentes por episodio.
  • Medir con GA4 y Clarity sin castigar la carga: las dos librerías se descargan después del evento load, del primer gesto del visitante o de tres segundos, lo que ocurra primero, y la CSP declara cada dominio que usan.

Resultado

El sitio está en producción con el archivo completo, la página del conductor y un episodio nuevo cada miércoles. Cada ficha funciona a la vez como página para buscadores y como material citable: respuesta corta, puntos con minuto y preguntas frecuentes, todo marcado con datos estructurados.

¿Necesitas algo parecido?

Cuéntame qué estás construyendo y te respondo con alcance, stack y una fecha realista.