iKidz English
Bij een Engelse taalschool voor kinderen in Torrejón de Ardoz (Madrid) stonden de website, het blog en de educatieve app op drie verschillende plekken, bij een hostingpakket dat op het punt stond zich automatisch te verlengen en met onderdelen die al jaren kapot waren. Ik heb alles samengebracht onder het eigen domein van de school, op een eigen server en met een beheerpaneel om het te besturen zonder van iemand afhankelijk te zijn. Website en blog stonden minder dan 48 uur na de opdracht live, met HTTPS.
De uitdaging: drie onderdelen, drie plekken en een tikkende klok
iKidz English is een Engelse taalschool in Torrejón de Ardoz met programma's voor kinderen, tieners en volwassenen, een franchisemodel en tien jaar eigen educatieve content. De online aanwezigheid was laag voor laag gegroeid, elk onderdeel op zijn eigen plek:
- De bedrijfswebsiteDraaide bij een oude hostingprovider die zich binnen enkele dagen automatisch zou verlengen. Wie de site via „https” opende, kreeg een beveiligingswaarschuwing en de website van een ander bedrijf te zien, de contact- en franchiseformulieren verstuurden niets en de menuknop naar de app leidde naar een dode pagina.
- Het blog „Vamos Creciendo”Tien jaar artikelen op een ander domein en bij een andere hostingprovider, met links die al jaren overal op internet verspreid stonden. De provider liet niet eens toe de database te exporteren.
- iKidz Space, de app van de leerlingenDe server antwoordde „deze applicatie bestaat niet”, de Android-app stond niet meer in Google Play en van het oorspronkelijke programma was alleen de code over, zonder één enkel gegeven.
- E-mailDe mailboxen van de school stonden bij dezelfde hostingprovider die op het punt stond te verlopen.
En één duidelijke voorwaarde vanaf de allereerste e-mail: het design blijft. Ze waren tevreden met hun website, dus de opdracht was om onder de motorkap alles te veranderen zonder dat er aan de buitenkant iets van te zien was.
Wat ik heb gebouwd
1. Een eigen server en dezelfde website, vanbinnen vernieuwd
- Cloudserver op naam van de schoolnginx, PHP 8.3 en MariaDB, met firewall, fail2ban en HTTPS van Let's Encrypt dat zich automatisch vernieuwt. De klant betaalt en beheert de hosting zelf: die is niet van mij afhankelijk.
- De zes pagina's herbouwd in PHP, met dezelfde URL'sGemeenschappelijke header, menu en footer, screenshot voor screenshot vergeleken met de originelen: dezelfde uitstraling en dezelfde adressen, om geen enkele positie in Google te verliezen.
- Homepage van 4.001 KB naar 1.902 KB en nul verzoeken aan derdenLettertype en cookiemelding komen van de eigen server, zonder Google Fonts of externe CDN's. Op een website voor kinderen, met een eigen privacybeleid, is dat belangrijk.
- Formulieren vanaf nul herschrevenBerichten komen binnen per e-mail en worden daarnaast opgeslagen in het paneel en in een apart bestand, voor het geval een e-mail verloren gaat of in de spam belandt.
- Toegankelijkheid en analytics28 foto's met alt-tekst, foto voor foto bekeken en beschreven, en Google Analytics 4 gekoppeld: de oude analytics had sinds 2023 niets meer gemeten.
2. Het blog: tien jaar content zonder één link te verliezen
- Volledige export via de REST API van WordPressDe hostingprovider stond geen export toe, dus is alles via de API binnengehaald: 166 artikelen, 3 pagina's, 706 categorieën en tags, 737 reacties en 2.414 bestanden (812 MB), één voor één geteld en gecontroleerd.
- Eigen importer naar bewerkbare blokkenElk artikel wordt omgezet in blokken die het team kan bewerken. Gecontroleerd dat het opnieuw opslaan van welk artikel ook exact dezelfde HTML oplevert: 166 van de 166.
- 875 301-redirects, zonder tussenstappenElke oude link leidt rechtstreeks naar het bijbehorende artikel op het nieuwe domein, en juist dat behoudt de posities in Google. De oude foto's en de RSS-feed reageren nog steeds op hun vertrouwde adressen.
- Een artikeloverzicht dat eindelijk goed oogtEen foto bij 164 van de 166 artikelen (bijna geen enkel artikel had een uitgelichte afbeelding: de eerste foto uit de tekst wordt gebruikt), deelknoppen die geen trackers laden en YouTube-video's in cookievrije modus.
3. iKidz Space: de app van de leerlingen, weer tot leven gewekt in de browser
- Herbouwd in PHP, in hetzelfde paneelDe app deelt de database met de website, draait op een eigen subdomein en wordt beheerd vanuit dezelfde backoffice als het blog.
- De 23 oorspronkelijke activiteiten, zonder iets opnieuw te compilerenHet zijn HTML5-games uit 2017, gemaakt voor een Android-app. Een brug in JavaScript geeft ze wat de native app ze vroeger gaf, en ze werken in elke browser. Alle 23 getest in een echte Chrome-browser, met nul fouten.
- Veilige toegang via sessiesElk kind ziet en bewaart alleen het eigen werk. Sessies van drie uur om de voortgang niet halverwege de les kwijt te raken, en een rem op inlogpogingen die geen hele klas blokkeert die via dezelfde verbinding online gaat.
- Leerlingen, uitnodigingen en voortgangAanmelding van leerlingen met een uitnodiging per e-mail aan het gezin (twee adressen mogelijk), voortgang activiteit voor activiteit en controle over welke activiteiten zichtbaar zijn en in welke volgorde.
- Geen analytics in het kindergedeelteEen bewuste ontwerpkeuze: hun surfgedrag verlaat de server van de school niet.
4. Children's Day Map, gered (en niet langer over de datum)
- Een verweesde app, weer thuisDe openbare app uit 2014 waarnaar het blog linkte, was dakloos geraakt: het oorspronkelijke domein stuurde door naar een advertentienetwerk en de app stond niet meer in de App Store of in Google Play. Nu draait hij vanaf het domein van de school, zonder van iemand afhankelijk te zijn.
- Verlopen sinds 2024, en gerepareerdHij accepteerde alleen de jaren 2014 tot en met 2023, dus sinds 1 januari 2024 was het onmogelijk om voorbij het eerste scherm te komen. Ik heb de code uit 2014 gepatcht om de kalender op 2021-2030 te zetten, met nieuwe illustraties en de gesproken jaartallen met AI gegenereerd op basis van de oorspronkelijke stem.
5. E-mail verhuisd, zonder één bericht te verliezen
- 4 mailboxen en 8.438 e-mailsInbox, verzonden items, concepten en mappen, met hun datums, plus 80 contactpersonen, overgezet naar een nieuwe e-mailhosting.
- Overstap zonder onderbrekingDe verhuizing van de ene mailserver naar de andere is zo gepland dat er tijdens de overgang niets verloren ging, en de antispamconfiguratie van het domein is gecorrigeerd: die bevatte een fout waardoor ze niet werkte.
6. Een paneel waarmee de school alles zelf beheert
- Maatwerk-backofficeHomepage per sectie te bewerken, pagina's, een blokeditor voor het blog, een beeldbibliotheek die foto's van de telefoon automatisch verkleint en de locatie eruit haalt, berichten uit de formulieren, leerlingen, activiteiten, gebruikers en instellingen.
- Standaard ingebouwde beveiligingWachtwoorden met Argon2id, CSRF-bescherming op alle formulieren en opschoning van de HTML die wordt gepubliceerd.
- VangnetAls de database niet reageert, blijven de pagina's gewoon bereikbaar. Dagelijkse back-ups op meerdere locaties, getest door ze daadwerkelijk terug te zetten.
- Overdrachtshandleiding in PDFZodat het team teksten, foto's, artikelen en toegangsrechten kan wijzigen zonder iemand te hoeven bellen.
Het resultaat
Website, blog en app draaien nu onder één domein, op een server van de school en beheerd vanuit één enkel paneel, met het vertrouwde design. Onderweg is niets verloren gegaan: geen artikel, geen foto, geen e-mail en geen link, en alles is één voor één geteld om dat te controleren.
De hosting ging van zo'n 650 dollar per jaar naar minder dan € 100 (ongeveer € 500 besparing per jaar), op een aanzienlijk krachtigere machine. Onderweg zijn ook een tiental geërfde fouten verholpen die niemand had opgemerkt, van formulieren die niets verstuurden tot een aanbieding uit 2016 die nog steeds op mobiel verscheen.
Enkele screenshots
De website en het blog, op elk apparaat
iKidz Space, Day Map en het paneel
Stack
Website van de klant: ikidzenglish.com — Engelse taalschool in Torrejón de Ardoz.
Staan uw website, blog of app verspreid en buiten uw controle? Ontdek mijn dienst voor websites op maat.
Andere projecten
Tu Póliza de Salud
Webrescue voor een verzekeringsmakelaar, 1.600+ posts en een eigen backoffice.
Cristina Tol-2
Van een niet-responsive website naar een goed scorende tweetalige WordPress-site.
Mi Cuadro Médico
Nationale directory van medische netwerken met duizenden programmatic pagina's.
Wilt u uw website op orde brengen en redden?
Migraties zonder verlies, maatwerk-PHP en panelen die uw team zelfstandig kan gebruiken. Vrijblijvend gesprek van 30 minuten.
Gratis offerte aanvragen

