Onze verhalen

Onze verhalen

Onze verhalen

Echte projecten. Echte keuzes. Echte lessen. We werken veel met B2B-platforms, complexe integraties en performance-optimalisatie. Hier delen we wat we onderweg hebben geleerd.

Geen marktingpraat – alleen wat we echt hebben gebouwd en waarom.

Alle verhalen

Configurator uit elkaar trekken

Een B2B-klant had een massieve product-configurator die alles in één PHP-file zat. We breidden uit, maar de bouwproces werd langzaam. Hoe splitsen we dit zonder het te breken?

Magento 2 Refactoring B2B
Lees verhaal →

Van Magento → Hyvä: 3 avonden

Klant draaide op een zwaar Magento-thema met veel custom JS. Deploy duurde lang. Hyvä was niet alleen sneller – het veranderde hoe we denken over checkout.

Hyvä Performance Upgrade
Lees verhaal →

Core Web Vitals: waar zit de tijd?

Een e-commerce site scoorde goed op GTmetrix maar de LCP was slecht. Profiling bracht verrassingen: het was niet wat we verwachtten.

Performance Debugging DevTools
Lees verhaal →

Onboarding nieuwe developers zonder docs

Junior dev start maandag. Project heeft 5 jaar geschiedenis. Hoe zorg je dat ze snel productief zijn zonder alles uit te hoeven leggen?

Team Onboarding Knowledge
Lees verhaal →

Total Care: patchdays zonder drama

Maandelijkse updates, security patches, dependency management. Hoe zorg je dat klanten niet bang zijn voor updates?

Total Care Maintenance CI/CD
Lees verhaal →

API-integratie met legacy systeem

Klant heeft 20 jaar oude ERP. Magento moet data halen/sturen via SOAP. API's zijn traag. We gingen queuing bouwen.

Integration ERP B2B
Lees verhaal →

Configurator uit elkaar trekken

Zoals veel B2B-projecten groeien. Je begint met één pagina. Dan voeg je een optie toe. Dan nog één. Na drie jaar zitten alle business-logica, validaties en calculaties in één grote file.

Context

Klant bouwt op maat gemaakte machines. Elk model heeft tientallen opties, elk met bijbehorende beperking of extra kosten. De configurator in Magento was gegroeid naar 1500+ regels PHP zonder duidelijke structuur.

Het probleem

Bouwproces was traag. Testen was handmatig. Als je één regel veranderde, kon je iets anders breken. Niemand durfde eraan te zitten.

Aanpak

We hebben de configurator in logische modules gesplitst. Elk component: validation, calculation, UI-rendering – los van elkaar.

  • Rule Engine: Business-logica buiten de view. Elke validatie is een testbare functie.
  • Caching op berekeningen: Configurator renderden licht sneller door Redis.
  • Unit-tests per module: Nu kunnen we refactoren zonder nerveus te worden.

Wat we leerden

Refactoring is niet gratis – het vraagt discipline. Maar wij zagen daling in bugs en makkelijker feature-adds. Maintainability wint op den duur.

"Na refactor durfde ik eindelijk een nieuwe optie toe te voegen zonder alles te breken. Dat voelt goed."
— Mark, Senior Magento Developer

Van Magento → Hyvä: 3 avonden

Een klant had een custom Magento-thema met honderden regels jQuery. Deploy duurde lang, browser-debug was lastig. We hebben over de vraag nagedacht: waarom laden we al dat? En: moet het echt in JavaScript?

Context

Het oude thema was niet slecht – het was gewoon zwaar. Checkout-flow verliep traag. Core Web Vitals waren niet goed.

Hyvä als optie

Hyvä biedt twee ding: een moderne Tailwind-gebaseerde basis, en Alpine.js in plaats van jQuery/RequireJS. Deploy naar hosten werd sneller.

Aanpak

We migreerden incrementeel. Thema's, Checkout, daarna custom modules.

  • Dégradé-activering: Oude en nieuwe versie tegelijk in production, traffic-split.
  • Test-omgeving: QA draaide met Hyvä avant deploy.
  • Rollback-plan: We wisten hoe terug te schakelen als het fout ging.

Resultaat

Checkout werd sneller. Deploy-time ging van 6 minuten naar 2. Developers schreven makkelijker front-end code. Niets dramatisch, maar alles voelde beter.

"Hyvä voelde eerst als zomaar een nieuwe stack. Maar je merkt al snel: het is slim gebouwd. Minder 'magic', meer transparantie."
— Sarah, Frontend Developer

Core Web Vitals: waar zit de tijd?

Klant zei: "Google zegt we scoren goed op GTmetrix, maar conversie is laag. Wat doen we fout?" Profiling bracht rare bevindingen.

De uitdaging

CLS en LCP scoorden slecht in Real User Monitoring (RUM), maar lab tools zeiden dat het goed was. Wat staat er werkelijk in de weg?

Onderzoek

We keken naar Network tab, JavaScript-parsing, font-loading, third-party scripts. Het bleek: tracking-tags en advertentieprogramma's blockerden rendering.

Aanpak

We hebben strategisch ingelaagd. Niet alles moet synchroon laden.

  • Lazy-loading: Analytics-scripts: defer of async. Ad-tags: laden na interactie.
  • Font-delivery: Web-fonts: font-display: swap, voorkeurend lokaal of via CDN.
  • RUM-monitoring: Nu volgen we echt wat klanten ervaren, niet wat lab-tools zeggen.
"GTmetrix zei: prima. Chrome DevTools zei: prima. Echte gebruikers ervaarden: te traag. Dat verschil leert je veel."
— Jelle, Performance Engineer

Onboarding zonder documentatie

Junior dev begint. Codebase is 5 jaar oud, complex, geen README. "Ik weet niet waar ik moet beginnen." Hoe zorg je dat ze productief worden in één sprint?

Het probleem

We hebben veel knowledge in iemands hoofd. Documenten zijn snel out-of-date. Hoe delen we weten?

Aanpak

We hebben onboarding anders ingerichting: hands-on met mentoring, niet passief lezen.

  • Day 1 pair-programming: Samen een bug fixen. Niet uitleggen, maar juist samen denken.
  • Code review als leermoment: Niet alleen feedback geven, maar bespreken waarom we het zo doen.
  • Vragen stellen aanmoedigen: "Dumb question" bestaat niet. Elk vraag helpt ons beter uitleggen.

Resultaat

Langzamer at-the-start, maar sneller productief. Junior kan na 2 weken zelfstandig taken pakken. Senior voelt zich beter als mentor.

"Ik dacht dat ik veel moest bijleren voordat ik code kon aanpassen. Maar door direct mee te doen, begreep ik sneller. En vragen stellen zonder schaamte helpt echt."
— Tim, Junior Developer

Total Care: patchdays zonder drama

Klant belt: "Magento heeft een security update. Moeten wij iets doen?" Klassiek problem: klanten zijn bang voor updates. Ze kunnen breeken. Hoe zorg je dat security-patching routine wordt?

Total Care: wat het is

Maandelijks patches, security-updates, dependency-management, kleine performance-tuning. Klant betaalt vaste vergoeding, wij zorgen dat site stabiel blijft.

De uitdaging

Updates kunnen niet zomaar naar production. Testen nodig. Rollback-plan. Klant wil zekerheid, geen verrassingen.

Aanpak

Alles geautomatiseerd. Tests moet slagen. Staging voor final check. Git-workflow strak.

  • CI/CD-pipeline: Patch → test → staging → manual-check → production. Geen stap handmatig.
  • Monitoring na deployment: Error-logs, performance-metrics, 15 minuten na deploy.
  • Changelog & notificatie: Klant weet wat er update. Waarom. Wanneer. Geen verrassingen.

Resultaat

Security-updates voelen normaal. Klant hoeft niet nerveus te zijn. We hebben geen incident gehad door update-related issues in jaren.

"Updates voelen nu als routine, niet als risico. Dat geeft rust."
— Hans, Klant & E-commerce Manager

API-integratie met legacy ERP

Klant: "Magento moet productgegevens halen van ons ERP-systeem. Soms volgt 1 update 2 seconden. Soms hangt het vast." Dit gebeurt duizenden keer per dag. Hoe zorg je dat het schaalbaar is?

Context

Klant draait 20 jaar oude ERP (SOAP API, traag). Magento moet real-time productdata, prijzen, voorraden. Direct aanroepen = traag en onbetrouwbaar.

Het probleem

Als ERP traag is, hangt Magento product-page op. Timeout. Customer-experience stinks.

Aanpak: Queuing & Caching

We hebben async queuing gebouwd. Haalt data van ERP, cached het, Magento leest cache. Updates gebeuren op achtergrond.

  • Message Queue (RabbitMQ): ERP-aanroep staat in queue. Worker haalt data, cached in Redis.
  • TTL op cache: Data refresh automatisch. Stale-data is beter dan no-data.
  • Fallback: Als ERP echt down is, tonen we "vorige bekende staat". Niet 404.

Resultaat

Product-pages laden in 200ms, niet 5s. ERP traagheid valt niet meer op. Customer-experience verbeterd. Schaalbaar voor groei.

"Ik dacht dat we oude ERP nooit snel zouden krijgen. Maar met caching en queuing voelt het web-modern. Blij."
— Petra, IT-directeur

Leuk wat we doen?

Dit zijn de soort problemen die we graag oplossen. Hyvä-thema's, complex-integraties, performance-optimalisatie, onderhoud. Interesse?