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

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

Ficha de episodio que abre con la respuesta corta a la pregunta del título. 
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.