10/365 · Fase 2: Infraestructura y ética. Cuando el juego se pone serio
En los días anteriores hablamos de los primeros pasos: la mentalidad del principiante, las primeras soluciones funcionales, el nacimiento de Liga y Motion. Hoy entramos en territorio más denso. La Fase 2 es donde el proyecto deja de ser un experimento y empieza a ser algo real.
El problema del alojamiento
Cuando Liga y Motion empezaron a funcionar, surgió una pregunta incómoda: ¿dónde vive esto?
Las primeras versiones corrían en servicios gratuitos como OnRender. Era cómodo: subías el código, la plataforma se encargaba de todo, y tenías una URL para compartir. Perfecto para prototipos.
Pero los servicios gratuitos tienen limitaciones. Los servidores se apagan si no hay actividad. Los datos no persisten de forma fiable. El rendimiento es impredecible. Y lo más importante: no tienes control sobre lo que pasa con la información.
Para un experimento personal, esto es aceptable. Para una herramienta que usan menores en horario lectivo, no.
La migración: de inquilino a propietario
La Fase 2 marca el momento en que decides dejar de ser inquilino y convertirte en propietario de tu infraestructura.
En mi caso, el camino fue progresivo:
OnRender (enero 2025): Fase experimental. Útil para probar, pero sin garantías de estabilidad ni persistencia.
Clouding.io (marzo 2025): Primer VPS propio. Por primera vez tenía acceso a un servidor que podía configurar como quisiera. Aquí aprendí qué eran los puertos, los procesos, los servicios que corren en segundo plano.
Hetzner (mayo 2025): Servidor dedicado en Finlandia. Control total sobre el entorno. Aquí vive actualmente todo el ecosistema EDUmind.
Cada salto supuso semanas de conversaciones con la IA. Configurar Nginx, instalar Gunicorn, gestionar certificados HTTPS, implementar firewalls con UFW, proteger rutas con tokens... Nada de esto sabía hacerlo. Todo lo aprendí preguntando, probando, fallando y volviendo a preguntar.
La santísima trinidad del despliegue
En esta fase descubrí lo que llamo la santísima trinidad del despliegue para aplicaciones Flask:
Flask: El framework de Python donde vive tu aplicación. Es lo que ya conocías de la Fase 1.
Gunicorn: El servidor de aplicaciones que ejecuta Flask de forma robusta. Flask solo no está pensado para producción; Gunicorn le da la estabilidad necesaria.
Nginx: El servidor web que recibe las peticiones del exterior y las redirige a Gunicorn. También gestiona los certificados HTTPS y sirve archivos estáticos.
Entender cómo estas tres piezas encajan entre sí me llevó tiempo. La IA me explicó la arquitectura varias veces, con diferentes analogías, hasta que algo hizo clic. Hoy puedo configurar este stack desde cero, pero hace un año no sabía ni que existía.
La dimensión ética
La infraestructura no es solo una cuestión técnica. Es una cuestión ética.
Cuando controlas tu servidor, puedes tomar decisiones reales sobre los datos. Puedes decidir qué se recoge y qué no. Puedes implementar anonimización desde el diseño. Puedes garantizar que la información del alumnado no viaja a servidores de terceros en otros continentes.
En el ecosistema EDUmind, estas decisiones fueron fundamentales:
Sin datos personales. Las aplicaciones funcionan con códigos anónimos. No se piden nombres, ni emails, ni ningún dato que permita identificar a un menor.
Sin rastreo externo. Nada de Google Analytics, ni cookies de terceros, ni scripts que envíen información a otros servicios.
Almacenamiento local. Los datos que se generan se quedan en el servidor propio, bajo mi control directo.
Cumplimiento del RGPD. El servidor está en la Unión Europea, sujeto a la normativa de protección de datos europea.
Estas decisiones no son gratuitas. Implican más trabajo de configuración, más responsabilidad de mantenimiento, más cosas que pueden fallar. Pero para un proyecto educativo que trabaja con menores, son innegociables.
El coste real
Una pregunta que me hacen a menudo: ¿cuánto cuesta mantener esto?
El servidor en Hetzner cuesta alrededor de 30 euros al mes. Comparado con las licencias de cualquier plataforma EdTech comercial, es ridículamente barato. Y a cambio tienes control total.
Eso sí, el coste no es solo económico. Mantener un servidor requiere tiempo y atención. Hay que actualizar el sistema operativo, renovar certificados, vigilar que los servicios sigan funcionando. La IA ayuda mucho con esto, pero la responsabilidad es tuya.
Es un intercambio: cambias comodidad por autonomía. Para mí, merece la pena.
Coherencia visual: el nacimiento de una identidad
La Fase 2 no es solo infraestructura. También es el momento donde las aplicaciones empiezan a verse como parte de un todo.
Cuando tienes una sola app, el diseño da igual. Cuando tienes varias, la coherencia importa. ¿Usan los mismos colores? ¿Las mismas tipografías? ¿La misma lógica de navegación?
En esta fase empecé a definir una estética compartida: paleta de colores suave, pictogramas accesibles, interfaces limpias sin distracciones. Cada nueva aplicación heredaba estos elementos, creando una sensación de familia.
Esta coherencia no es solo estética. También es funcional. El alumnado que usa Liga reconoce inmediatamente Motion, aunque sean aplicaciones diferentes. Esa familiaridad reduce la curva de aprendizaje y genera confianza.
Lo que concentra esta fase
Mirando los datos de mis conversaciones con la IA, la Fase 2 concentró más del sesenta por ciento de todas las interacciones del proyecto. Es, con diferencia, la fase más intensa.
Tiene sentido. Aquí se toman las decisiones que determinan si el proyecto es sostenible o no. Aquí se construye la base sobre la que todo lo demás se apoya. Aquí se define quién controla los datos y bajo qué condiciones.
Es también la fase más técnica, la que más se aleja de la zona de confort de un docente. Pero es atravesable. Con paciencia, con la IA como guía, con la disposición a fallar muchas veces antes de acertar.
El final de la Fase 2
Sabes que has superado la Fase 2 cuando tu ecosistema tiene casa propia. Cuando las aplicaciones funcionan de forma estable, con certificados de seguridad, con políticas de datos claras. Cuando puedes irte a dormir sin preocuparte de que todo se caiga.
En ese momento, el proyecto está listo para el siguiente paso: la validación en el mundo real. Pero eso es tema para el día 11.
Nos vemos en el día 11/365