02Platform

YoungPWR

YoungPWR was al live toen ik instapte. Geen documentatie, een vertrekkende developer, en een kapotte registratieflow. Mijn taak: moderniseren zonder de boel neer te halen.

youngpwr.nl
YoungPWR homepage op desktop
Klant
YoungPWR (non-profit)
Rol
Solo Frontend Developer
Jaar
2023 – heden
Duur
1+ jaar (doorlopend)
Het probleem

De vorige lead developer had geen tijd meer. Wat hij achterliet was een draaiende productie-app in een verouderde React pages router setup, zonder documentatie, en met een registratieflow die fundamenteel kapot was — je kon een account aanmaken, maar de bevestigingsmail werkte niet, wachtwoord resetten was onmogelijk, en de helft van de gegevens die je invulde bij registratie werd nooit opgeslagen. Ik nam het solo over.

YoungPWR homepage op desktop
YoungPWR tips pagina op mobiel
Aanpak

De eerste prioriteit was de auth. Login werkte deels, maar account aanmaken deed het niet goed: bevestigingsmails kwamen niet aan, wachtwoord resetten was stuk, en ingevoerde gegevens werden niet correct opgeslagen via de Strapi API. Ik debugde de volledige flow, zette het om naar de correcte Strapi-implementatie, en testte alles grondig op de stagingomgeving voordat het naar productie ging — altijd laat op de avond wanneer het gebruik laag was.

Daarna begon de incrementele modernisering. In plaats van alles in één keer te vervangen — te risicovol voor een live platform — koos ik voor een geleidelijke aanpak: elke nieuwe feature of component die ik bouwde verving gelijk de oude CSS door Tailwind. De app router migratie deed ik wel in één keer, gepland en uitgevoerd buiten productie-uren. Zo werd de codebase steeds moderner zonder dat gebruikers er iets van merkten.

Voordat ik minder beschikbaar zou worden, nam ik een student onder mijn hoede. Ik liep met hem door de codebase, bouw documentatie op in Storybook en ZeroHeight, en ben nog steeds beschikbaar als hij vastloopt. De overdracht is een proces, geen moment.

Proces
01
Auth debuggen & fixen
Volledige registratie- en loginflow opnieuw gebouwd via de correcte Strapi API. Bevestigingsmails, wachtwoord reset, data opslag — alles gerepareerd.
02
App router migratie
Pages router naar Next.js App Router in één geplande migratie, uitgevoerd buiten productie-uren via de stagingomgeving.
03
Incrementele modernisering
Elk nieuw component vervangt oude CSS door Tailwind. Nieuwe filters, categorieën en features toegevoegd.
04
Kennisoverdracht & documentatie
Student ingewerkt, Storybook en ZeroHeight documentatie opgebouwd. Doorlopend proces.
Technische keuzes
🔧
Auth van de grond af hersteld

De registratieflow gebruikte Strapi incorrect — waardoor bevestigingsmails uitbleven, wachtwoord resetten stuk was, en gebruikersdata verloren ging. Volledig herschreven naar de correcte Strapi API-implementatie en getest op staging voor elke productie-deploy.

StrapiNext.js APIAuth
⚙️
Pages router → App router

Een volledige Next.js router migratie op een live platform is risicovol. Ik plantte het zorgvuldig, testte alles op staging, en voerde de migratie uit in één nacht buiten productie-uren. Nul downtime, nul klachten.

Next.js App RouterStagingCI/CD
🌱
Incrementele modernisering

Te duur en te risicovol om alles in één keer te herschrijven. In plaats daarvan: elke nieuwe component of feature vervangt meteen de oude CSS door Tailwind. De codebase wordt stap voor stap moderner zonder grote risico's.

Tailwind CSSReactRefactoring
Resultaten
96
Lighthouse Best Practices
Gemeten op youngpwr.nl
100
Lighthouse SEO
Gemeten op youngpwr.nl
1+
Jaar in productie
Live platform, doorlopend verbeterd

Performance (78) en Accessibility (89) worden actief verbeterd. De lagere scores komen van legacy afbeeldingen in oude componenten die nog niet zijn gemigreerd — dit is werk in uitvoering.

"Luuk pakte een codebase op die niemand meer begreep en maakte er iets van waar we als team op kunnen voortbouwen."

— Team YoungPWR

De moeilijkste code om te begrijpen is de code die
iemand anders schreef zonder het uit te leggen.

💡

Staging is geen luxe, het is een vereiste. Elke wijziging op een live platform — hoe klein ook — ging eerst door staging. Dat heeft meerdere keren een productie-incident voorkomen.

🔍

Incrementeel refactoren werkt beter dan een big bang rewrite. Elk component dat ik aanraakte werd beter achtergelaten dan ik het vond. Over tijd telt dat op.

Kennisoverdracht begint niet op je laatste dag. Door vroeg te beginnen met documentatie en mentoring zorg je dat het project niet van één persoon afhankelijk is — ook niet van jezelf.

Volgend project
Buurbak