iKidz English — Portada de l'acadèmia d'anglès per a nens, migrada a un servidor propi
166 Articles del blog migrats
875 Redireccions 301, ni un enllaç trencat
23 Activitats de l'app rescatades
8.438 Correus migrats, 0 perduts

El repte: tres peces, tres llocs i un rellotge en marxa

iKidz English és una acadèmia d'anglès de Torrejón de Ardoz amb programes per a nens, adolescents i adults, model de franquícia i una dècada de contingut educatiu propi. La seva presència online havia crescut per capes, cadascuna per la seva banda:

  • La web corporativaVivia en un hosting antic que es renovava automàticament al cap de pocs dies. En entrar-hi amb «https» sortia un avís de perill i la web d'una altra empresa, els formularis de contacte i de franquícies no enviaven res i el botó del menú cap a la seva app portava a una pàgina morta.
  • El blog «Vamos Creciendo»Deu anys d'articles en un altre domini i un altre hosting, amb enllaços repartits per internet durant anys. El proveïdor no deixava ni exportar la base de dades.
  • iKidz Space, l'app dels alumnesEl seu servidor responia «aquesta aplicació no existeix», l'app d'Android ja no era a Google Play i del programa original només en quedava el codi, sense ni una sola dada.
  • El correuLes bústies de l'acadèmia vivien al mateix hosting que caducava.

I una condició clara des del primer correu: el disseny es queda. Estaven contents amb la seva web, així que la feina consistia a canviar-ho tot per sota sense que es notés per fora.

El que vaig construir

1. Un servidor propi i la mateixa web, nova per dins

  • Servidor al núvol a nom de l'acadèmianginx, PHP 8.3 i MariaDB, amb tallafocs, fail2ban i HTTPS de Let's Encrypt que es renova automàticament. L'allotjament el paga i el controla el client: no depèn de mi.
  • Les sis pàgines refetes en PHP, amb les mateixes URLsCapçalera, menú i peu comuns, comparades captura a captura amb les originals: mateix aspecte i mateixes adreces, per no perdre ni una posició a Google.
  • Portada de 4.001 KB a 1.902 KB i zero peticions a tercersLa tipografia i l'avís de galetes se serveixen des del mateix servidor, sense Google Fonts ni CDN externs. En una web per a nens, amb la seva pròpia política de privadesa, això importa.
  • Formularis reescrits des de zeroArriben al correu i, a més, es desen al panell i en un fitxer a part, per si un email es perd o acaba al correu brossa.
  • Accessibilitat i analítica28 fotos amb text alternatiu escrit mirant-les una per una, i Google Analytics 4 connectat: l'analítica antiga no mesurava res des del 2023.

2. El blog: deu anys de contingut sense perdre ni un enllaç

  • Bolcat complet a través de l'API REST de WordPressEl hosting no deixava exportar, així que es va extreure tot a través de l'API: 166 articles, 3 pàgines, 706 categories i etiquetes, 737 comentaris i 2.414 fitxers (812 MB), comptats i comprovats un per un.
  • Importador propi a blocs editablesCada article es converteix en blocs que l'equip pot editar. Comprovat que tornar a desar-ne qualsevol dona exactament el mateix HTML: 166 de 166.
  • 875 redireccions 301, en un sol saltCada enllaç antic porta directament al seu article al domini nou, que és el que conserva el posicionament. Les fotos antigues i l'RSS continuen responent a les adreces de sempre.
  • Un llistat que per fi llueixFoto en 164 de 166 articles (gairebé cap no tenia imatge destacada: s'hi fa servir la primera foto del text), botons per compartir que no carreguen rastrejadors i vídeos de YouTube en mode sense galetes.

3. iKidz Space: l'app dels alumnes, ressuscitada al navegador

  • Refeta en PHP, al mateix panellComparteix base de dades amb la web, viu al seu propi subdomini i es gestiona des del mateix backoffice que el blog.
  • Les 23 activitats originals, sense recompilar resSón jocs HTML5 del 2017 pensats per a una app d'Android. Un pont en JavaScript els dona el que abans els donava l'app nativa, i funcionen en qualsevol navegador. Provades totes 23 en un Chrome real, amb zero errors.
  • Accés segur per sessióCada nen només veu i desa el que és seu. Sessions de tres hores per no perdre el progrés a mitja classe i un límit d'intents que no bloqueja una classe sencera que surt a internet per la mateixa connexió.
  • Alumnes, invitacions i progrésAlta d'alumnes amb invitació per correu a la família (admet dues adreces), seguiment activitat per activitat i control de quines activitats es veuen i en quin ordre.
  • Sense analítica a l'àrea dels nensPer decisió de disseny: la seva navegació no surt del servidor de l'acadèmia.

4. Children's Day Map, rescatada (i descaducada)

  • Una app òrfena, de tornada a casaL'app pública del 2014 que enllaçava el blog s'havia quedat sense llar: el seu domini original redirigia a una xarxa de publicitat i ja no era ni a l'App Store ni a Google Play. Ara se serveix des del domini de l'acadèmia, sense dependre de ningú.
  • Caducada des del 2024, i arregladaNomés acceptava els anys del 2014 al 2023, així que des de l'1 de gener de 2024 era impossible passar de la primera pantalla. Vaig apedaçar el codi del 2014 per portar el calendari al període 2021-2030, amb il·lustracions noves i els àudios dels anys generats amb IA a partir de la veu original.

5. El correu, traslladat sense perdre ni un missatge

  • 4 bústies i 8.438 correusRebuts, enviats, esborranys i carpetes, amb les seves dates, més 80 contactes, traslladats a un allotjament de correu nou.
  • Canvi sense buitsEl pas d'un servidor de correu a l'altre es va planificar perquè no es perdés res en la transició, i es va corregir la configuració antispam del domini, que tenia un error que l'anul·lava.

6. Un panell perquè l'acadèmia s'ho gestioni tota sola

  • Backoffice a midaPortada editable per seccions, pàgines, editor de blog per blocs, biblioteca d'imatges que alleugereix automàticament les fotos del mòbil i n'elimina la ubicació, missatges dels formularis, alumnes, activitats, usuaris i ajustos.
  • Seguretat de sèrieContrasenyes amb Argon2id, protecció CSRF a tots els formularis i neteja de l'HTML que es publica.
  • Xarxa de seguretatSi la base de dades no respon, les pàgines es continuen servint. Còpies de seguretat diàries en diversos llocs, provades restaurant-les de veritat.
  • Manual de lliurament en PDFPerquè l'equip canviï textos, fotos, articles i accessos sense trucar a ningú.

El resultat

Web, blog i app viuen ara sota un mateix domini, en un servidor de l'acadèmia i governats des d'un únic panell, amb el disseny de sempre. No es va perdre res pel camí: ni un article, ni una foto, ni un correu, ni un enllaç, i cada cosa es va comptar una per una per comprovar-ho.

L'allotjament va passar d'uns 650 dòlars l'any a menys de 100 € (uns 500 € d'estalvi anual) en una màquina força més potent. De passada, es van corregir una desena d'errors heretats que ningú no havia detectat, des de formularis que no enviaven fins a una oferta del 2016 que encara sortia al mòbil.

Algunes captures

La web i el blog, en tots els dispositius

iKidz Space, Day Map i el panell

Stack

PHP 8.3 (sense framework) MariaDB nginx Hetzner Cloud Let's Encrypt Backoffice a mida TinyMCE Migració WordPress (API REST) Redireccions 301 Phaser (jocs HTML5) Migració de correu IMAP Còpies de seguretat automàtiques ElevenLabs (veu amb IA) Google Analytics 4

Web del client: ikidzenglish.com — acadèmia d'anglès a Torrejón de Ardoz.

La teva web, el teu blog o la teva aplicació estan repartits i fora del teu control? Descobreix el meu servei de desenvolupament web a mida.

La teva web viu en un hosting que no controles o té peces mortes?

Et dic què hi ha, què es pot salvar i com portar-ho tot a un lloc teu sense perdre contingut ni posicionament. Primera revisió sense compromís i pressupost tancat per escrit.

Parlem de la teva web →

Necessites ordenar i rescatar la teva web?

Migracions sense pèrdues, PHP a mida i panells que el teu equip pot fer servir sol. Trucada de 30 minuts sense compromís.

Demanar pressupost gratuït