02Platform

YoungPWR

YoungPWR was already live when I joined. No documentation, a departing developer, and a broken registration flow. My job: modernise without taking it all down.

youngpwr.nl
YoungPWR homepage op desktop
Client
YoungPWR (non-profit)
Role
Solo Frontend Developer
Year
2023 – present
Duration
1+ year (ongoing)
The problem

The previous lead developer ran out of time. What he left behind was a running production app on an outdated React pages router setup, with no documentation, and a registration flow that was fundamentally broken — you could create an account, but the confirmation email never arrived, resetting your password was impossible, and half the data you filled in during registration was never saved. I took it over solo.

YoungPWR homepage op desktop
YoungPWR tips pagina op mobiel
Approach

The first priority was auth. Login partially worked, but account creation didn't: confirmation emails weren't sent, password reset was broken, and user data wasn't being saved correctly via the Strapi API. I debugged the entire flow, rewrote it to the correct Strapi implementation, and tested everything on staging before pushing to production — always late at night when usage was low.

Then came the incremental modernisation. Instead of replacing everything at once — too risky for a live platform — I chose a gradual approach: every new feature or component I built would replace the old CSS with Tailwind at the same time. The app router migration I did in one go, planned and executed outside production hours. The codebase got progressively more modern without users noticing anything.

Before I became less available, I took a student under my wing. I walked him through the codebase, am building documentation in Storybook and ZeroHeight, and am still available when he gets stuck. The handover is a process, not a moment.

Process
01
Debug & fix auth
Full registration and login flow rebuilt via the correct Strapi API. Confirmation emails, password reset, data storage — all fixed.
02
App router migration
Pages router to Next.js App Router in one planned migration, executed outside production hours via staging.
03
Incremental modernisation
Every new component replaces old CSS with Tailwind. New filters, categories and features added.
04
Knowledge transfer & documentation
Student onboarded, Storybook and ZeroHeight documentation built. Ongoing process.
Technical choices
🔧
Auth rebuilt from scratch

The registration flow used Strapi incorrectly — causing missing confirmation emails, broken password reset, and lost user data. Fully rewritten to the correct API implementation and tested on staging before every production deploy.

StrapiNext.js APIAuth
⚙️
Pages router → App router

A full Next.js router migration on a live platform. Carefully planned, tested on staging, and executed in one night outside production hours. Zero downtime, zero complaints.

Next.js App RouterStagingCI/CD
🌱
Incremental modernisation

Too risky to rewrite everything at once. Every component I touched got Tailwind replacing old CSS. The codebase gets progressively better over time.

Tailwind CSSReactRefactoring
Results
96
Lighthouse Best Practices
Measured on youngpwr.nl
100
Lighthouse SEO
Measured on youngpwr.nl
1+
Year in production
Live platform, continuously improved

Performance (78) and Accessibility (89) are actively being improved. The lower scores come from legacy images in old components that haven't been migrated yet — this is work in progress.

"Luuk picked up a codebase nobody understood anymore and turned it into something the whole team can build on."

— Team YoungPWR

The hardest code to understand is the code someone else wrote
without explaining it.

💡

Staging is not a luxury, it's a requirement. Every change on a live platform — no matter how small — went through staging first. That prevented multiple production incidents.

🔍

Incremental refactoring beats a big bang rewrite. Every component I touched was left better than I found it. Over time that adds up.

Knowledge transfer doesn't start on your last day. By starting documentation and mentoring early you make sure the project doesn't depend on one person — including yourself.

Next project
Buurbak