Reconstruir una plataforma de formación sin perder un solo dato
EDxcellent es una plataforma de formación online homologada para docentes. Cuando su theme comercial desapareció del mercado y la infraestructura se quedó sin soporte, la reescribí desde cero migrando 5.600 usuarios sin perder un dato.
Datos clave del proyecto
~5.600
usuarios migrados
11.000+
matrículas preservadas
400.000+
respuestas de examen
0
datos perdidos
El reto
Una plataforma que se caía a pedazos, pieza a pieza
EDxcellent llevaba seis años funcionando sobre un theme comercial comprado en ThemeForest. En 2026 ese theme ya no existía: el desarrollador lo retiró del mercado sin explicaciones ni plan de migración. Y como una dependencia tira de la siguiente, todo lo construido encima se fue rompiendo:
- El theme base desapareció — sin actualizaciones, sin soporte, sin parches de seguridad.
- El framework PHP quedó obsoleto — exigía PHP 7.3, roto por completo en PHP 8.4.
- El plugin a medida quedó inservible — dependía del framework muerto, así que murió con él.
- El servidor llegó a fin de vida — CentOS 7 sin soporte desde junio de 2024.
Cada actualización de WordPress rompía algo. Cada cambio en WooCommerce rompía otra cosa. El código era un castillo de naipes: tocar una pieza amenazaba con derribar las demás. Los parches ya no arreglaban nada, solo posponían el colapso.
La decisión
Reescribir de cero, no seguir parcheando
Cuando los cimientos desaparecen, parchear no es una opción. Tres caminos sobre la mesa:
| Opción | Problema real |
|---|---|
| Seguir parcheando | Cada fix generaba dos bugs nuevos. Las dependencias rotas no se arreglan con parches, se reemplazan. |
| Child theme + page builder | Rápido, pero heredas nuevas dependencias frágiles. En tres años, vuelta a empezar. |
| Reescribir desde cero ✓ | Coste alto inicial, pero control total, cero dependencias rotas y un código que entendemos por completo. |
Para una web de cinco páginas, un child theme basta. Para 37 cursos con lógica de matrícula temporal, certificación universitaria y reportes a medida, era como poner una tirita en una hemorragia. Elegí reescribir.
Antes y después
Del theme comercial obsoleto al desarrollo a medida
Seis años de parches sobre un theme retirado del mercado, frente a un desarrollo propio optimizado hasta el último byte.
La solución
Tema custom + plugin standalone, sin frameworks frágiles
Mi regla: depender solo de tecnologías mantenidas por comunidades grandes. Nada de frameworks oscuros que pueden desaparecer mañana.
Frontend
- • Tema WordPress propio (sin page builders)
- • Tailwind CSS v4 CSS-first (~43 KB minificado)
- • Zero jQuery — solo JavaScript vanilla
- • 12 templates a medida
Lógica de negocio
- • Plugin
edxcellent-corestandalone - • Custom Post Types:
course,lesson - • Matrícula temporal con vigencia y re-matrícula
- • Reportes y exportación para universidades
Infraestructura
- • Docker: Caddy + WordPress + MySQL 8.0
- • VPS dedicado con red privada
- • SSL automático (Let's Encrypt vía Caddy)
- • Backups en tiempo real + fail2ban
Calidad
- • PHP 8.4 + WordPress 7.0 + MySQL 8.0
- • Sanitización, nonces y honeypot en formularios
- • 30 checks automáticos de QA
- • CI/CD con deploy automático
La parte delicada
Migrar 400.000 respuestas sin romper nada
Migrar no es copiar y pegar. Entre la base de datos antigua y la nueva había seis años de decisiones técnicas cuestionables: doble serialización en 2.230 registros, IDs de producto mezclados con IDs de curso, huso horario UTC frente a Madrid y un prefijo de tabla aleatorio. Un mysqldump directo habría corrompido todo.
Escribí scripts de transformación a medida, hice una migración delta (solo lo nuevo, sin pisar lo ya migrado) y verifiqué cada cuenta. Resultado:
2.230
registros reparados de doble serialización
0
datos inventados o perdidos
10-12
días de desarrollo intensivo
Resultados
Más rápido, más seguro, sin dependencias rotas
Antes (legacy)
- • ~200 KB de CSS de page builder + theme + plugins
- • jQuery cargado en cada página
- • Framework PHP roto en versiones modernas
- • Servidor sin soporte de seguridad
- • Cada actualización rompía algo
Después (v2)
- • 43 KB de Tailwind minificado (−78%)
- • Zero jQuery, solo JS vanilla
- • Plugin standalone, sin frameworks externos
- • VPS dedicado con soporte hasta 2029
- • Lighthouse: 99 rendimiento / 100 SEO / 100 accesibilidad
El modelo detrás
Anticiparse al desastre, no cruzar los dedos
No esperé a que la plataforma colapsara. Con el theme retirado del mercado, el servidor al final de su vida útil y el framework roto, la catástrofe era cuestión de tiempo: una caída que probablemente me habría costado el cliente. Reconstruí antes del desastre, no después, porque una relación de 14 años se protege antes de que se rompa.
También fue un reto personal: demostrarme que podía liderar una reescritura de esta escala con la IA como socia de desarrollo. Lo conseguí. Un proyecto de esta envergadura se cotiza en torno a 30.000€ en el mercado, y ahora sé que está dentro de mi capacidad de ejecución. Ese es el estándar que ofrezco a partir de ahora.
Hoy EDxcellent corre sobre código propio —sin themes comerciales que puedan retirarse del mercado ni dependencias frágiles— y el cliente siempre conserva sus datos: cursos, alumnos y pedidos. Sin cajas negras, sin código ofuscado. Esa transparencia es lo que sostiene relaciones que duran décadas.
Lecciones
Lo que este proyecto demuestra
El código propio es un seguro, no un gasto
El theme de 59€ que compras hoy puede desaparecer mañana y arrastrar tu negocio con él. El código que controlas es lo único que te queda cuando todo lo demás falla.
Migrar no es copiar y pegar
Mover cientos de miles de registros con IDs cambiados, encodings mezclados y husos horarios distintos requiere scripts de transformación, no un volcado de base de datos.
La relación gana al proyecto
Una web entregada y olvidada es un producto perecedero. Una iguala mensual con un responsable que conoce tu negocio es un activo que se revaloriza cada año.
Depende solo de lo que tiene futuro
WordPress, WooCommerce, Tailwind y Docker: comunidades enormes con actualizaciones garantizadas. Cero frameworks oscuros que un solo desarrollador pueda retirar.
¿Tu plataforma también necesita una reconstrucción?
Webs críticas, migraciones delicadas, plataformas a medida. Si me confías tu proyecto, lo trato como propio: lo cuido y lo actualizo antes de que algo falle. Cuéntame tu situación y te diré honestamente si puedo ayudarte.
Hablemos de tu proyecto