iKidz English — Startsidan för engelskaskolan för barn, migrerad till en egen server
166 Migrerade blogginlägg
875 301-omdirigeringar, inte en enda trasig länk
23 Räddade aktiviteter i appen
8 438 Migrerade mejl, 0 förlorade

Utmaningen: tre delar, tre ställen och en klocka som tickade

iKidz English är en engelskaskola i Torrejón de Ardoz med program för barn, tonåringar och vuxna, en franchisemodell och ett decennium av eget pedagogiskt innehåll. Skolans närvaro på nätet hade vuxit i lager, var och ett på sitt håll:

  • FöretagswebbplatsenDen låg på ett gammalt webbhotell som skulle förnyas automatiskt inom några dagar. Gick man in via ”https” visades en säkerhetsvarning och ett annat företags webbplats, kontakt- och franchiseformulären skickade ingenting och menyknappen till appen ledde till en död sida.
  • Bloggen ”Vamos Creciendo”Tio års inlägg på en annan domän och ett annat webbhotell, med länkar som under många år hade spridits över hela internet. Leverantören lät dem inte ens exportera databasen.
  • iKidz Space, elevernas appServern svarade ”den här applikationen finns inte”, Android-appen fanns inte längre på Google Play och av det ursprungliga programmet återstod bara koden, utan en enda datapost.
  • E-postenSkolans brevlådor låg på samma webbhotell som höll på att löpa ut.

Och ett tydligt villkor redan från första mejlet: designen ska vara kvar. De var nöjda med sin webbplats, så jobbet gick ut på att byta allt under ytan utan att det märktes utåt.

Vad jag byggde

1. En egen server och samma webbplats, ny på insidan

  • Molnserver i skolans namnnginx, PHP 8.3 och MariaDB, med brandvägg, fail2ban och HTTPS från Let's Encrypt som förnyas automatiskt. Kunden betalar för och kontrollerar servern själv: den är inte beroende av mig.
  • De sex sidorna omgjorda i PHP, med samma URL:erGemensamt sidhuvud, meny och sidfot, jämförda skärmbild för skärmbild med originalen: samma utseende och samma adresser, för att inte tappa en enda placering i Google.
  • Startsidan från 4 001 kB till 1 902 kB och noll anrop till tredje partTypsnitt och cookiebanner levereras från den egna servern, utan Google Fonts eller externa CDN:er. På en webbplats för barn, med en egen integritetspolicy, spelar det roll.
  • Formulär omskrivna från grundenMeddelandena når e-posten och sparas dessutom i panelen och i en separat fil, ifall ett mejl försvinner eller hamnar i skräpposten.
  • Tillgänglighet och analys28 foton med alt-text skriven efter att ha tittat på vart och ett, och Google Analytics 4 kopplat: den gamla analysen hade inte mätt någonting sedan 2023.

2. Bloggen: tio års innehåll utan att tappa en enda länk

  • Fullständig export via WordPress REST APIWebbhotellet tillät ingen export, så allt hämtades ut via API:et: 166 inlägg, 3 sidor, 706 kategorier och taggar, 737 kommentarer och 2 414 filer (812 MB), räknade och kontrollerade en och en.
  • Egen importör till redigerbara blockVarje inlägg omvandlas till block som teamet kan redigera. Verifierat att det blir exakt samma HTML när man sparar om vilket inlägg som helst: 166 av 166.
  • 875 301-omdirigeringar, i ett enda hoppVarje gammal länk leder direkt till sitt inlägg på den nya domänen, och det är det som bevarar placeringarna. De gamla bilderna och RSS-flödet svarar fortfarande på sina vanliga adresser.
  • En inläggslista som äntligen ser bra utFoto på 164 av 166 inlägg (nästan inga hade en utvald bild, så den första bilden i texten används), delningsknappar som inte laddar några spårare och YouTube-videor i cookiefritt läge.

3. iKidz Space: elevernas app, återuppväckt i webbläsaren

  • Omgjord i PHP, i samma panelDen delar databas med webbplatsen, ligger på en egen subdomän och hanteras från samma backoffice som bloggen.
  • Alla 23 ursprungliga aktiviteter, utan att kompilera om någotDet är HTML5-spel från 2017 gjorda för en Android-app. En brygga i JavaScript ger dem det som den nativa appen tidigare gav dem, och de fungerar i vilken webbläsare som helst. Alla 23 testade i en riktig Chrome, med noll fel.
  • Säker inloggning med sessionVarje barn ser och sparar bara sitt eget. Sessioner på tre timmar så att framstegen inte går förlorade mitt under lektionen, och en spärr mot upprepade inloggningsförsök som inte blockerar en hel klass som går ut på internet via samma uppkoppling.
  • Elever, inbjudningar och framstegRegistrering av elever med inbjudan via e-post till familjen (två adresser tillåts), uppföljning aktivitet för aktivitet och kontroll över vilka aktiviteter som syns och i vilken ordning.
  • Ingen analys i barnens områdeEtt medvetet designbeslut: deras surfande lämnar aldrig skolans server.

4. Children's Day Map, räddad (och inte längre utgången)

  • En föräldralös app, hemma igenDen offentliga appen från 2014 som bloggen länkade till hade blivit hemlös: dess ursprungliga domän omdirigerade till ett annonsnätverk och den fanns inte längre kvar på vare sig App Store eller Google Play. Nu levereras den från skolans egen domän, utan att vara beroende av någon.
  • Utgången sedan 2024, och lagadDen accepterade bara åren 2014 till 2023, så sedan den 1 januari 2024 gick det inte att ta sig förbi första skärmen. Jag patchade koden från 2014 så att kalendern omfattar 2021–2030, med nya illustrationer och ljudklippen för årtalen genererade med AI utifrån originalrösten.

5. E-posten, flyttad utan att ett enda meddelande gick förlorat

  • 4 brevlådor och 8 438 mejlInkorg, skickat, utkast och mappar, med sina datum, plus 80 kontakter, flyttade till en ny e-postleverantör.
  • Byte utan luckorFlytten från en e-postserver till en annan planerades så att ingenting skulle gå förlorat under övergången, och domänens antispamkonfiguration rättades, eftersom den hade ett fel som gjorde den verkningslös.

6. En panel så att skolan kan sköta allt själv

  • Skräddarsytt backofficeStartsida som kan redigeras sektion för sektion, sidor, blockbaserad bloggeditor, ett bildbibliotek som automatiskt gör mobilfoton lättare och tar bort deras platsinformation, meddelanden från formulären, elever, aktiviteter, användare och inställningar.
  • Säkerhet som standardLösenord med Argon2id, CSRF-skydd i alla formulär och sanering av den HTML som publiceras.
  • SkyddsnätOm databasen inte svarar fortsätter sidorna att visas. Dagliga säkerhetskopior på flera ställen, testade genom att faktiskt återställa dem.
  • Överlämningsmanual i PDFSå att teamet kan ändra texter, foton, inlägg och inloggningar utan att behöva ringa någon.

Resultatet

Webbplats, blogg och app finns nu under samma domän, på en server som tillhör skolan och styrs från en enda panel, med samma design som alltid. Ingenting gick förlorat på vägen: inte ett inlägg, inte ett foto, inte ett mejl, inte en länk, och allt räknades ett och ett för att bekräfta det.

Kostnaden för hosting gick från cirka 650 dollar om året till under 100 € (en besparing på ungefär 500 € per år) på en betydligt kraftfullare maskin. På vägen rättades ett tiotal ärvda fel som ingen hade upptäckt, från formulär som inte skickade något till ett erbjudande från 2016 som fortfarande visades i mobilen.

Några skärmbilder

Webbplatsen och bloggen, på alla enheter

iKidz Space, Day Map och panelen

Stack

PHP 8.3 (utan ramverk) MariaDB nginx Hetzner Cloud Let's Encrypt Skräddarsytt backoffice TinyMCE WordPress-migrering (REST API) 301-omdirigeringar Phaser (HTML5-spel) IMAP-migrering av e-post Automatiska säkerhetskopior ElevenLabs (AI-röst) Google Analytics 4

Kundens webbplats: ikidzenglish.com — engelskaskola i Torrejón de Ardoz.

Är din webbplats, din blogg eller din app utspridda och utom din kontroll? Upptäck min tjänst för skräddarsydd webbutveckling.

Ligger din webbplats på ett webbhotell du inte kontrollerar, eller har den döda delar?

Jag berättar vad som finns, vad som går att rädda och hur allt kan flyttas till en plats som är din, utan att förlora innehåll eller placeringar. Första genomgång utan förpliktelser och en fast offert i skrift.

Låt oss prata om din webbplats →

Behöver du få ordning på din webbplats och rädda den?

Migreringar utan förluster, skräddarsydd PHP och paneler som ditt team kan använda på egen hand. 30 minuters samtal utan förpliktelser.

Begär gratis offert