2025 to 2026 · in production
every garment gets a passport: where it was made, what it is made of, how to care for it, what happens at end of life. I built the engine that renders those passports for 35+ live brands, major Italian luxury and denim labels among them, during my year at Renoon.
1166 commits · 35+ brands live · 40+ reusable modules · 10× less code per brand · 1 master template
Widgets used to be hand-coded per brand: every launch was bespoke Pug and Sass, every fix was multiplied by the number of brands, roughly 1,000 lines of bespoke code each. I led the V2 migration to a single config-driven master template. A brand is now a config object of about 100 lines, onboarded in a day or two: which modules render, where they sit, which fonts load, and one source color the system derives the whole palette from.
The module library covers supply chain, composition, certifications with proof popups, life cycle assessment, care and end of life. Legacy brands keep working untouched; new brands are config, not code.
My commit subjects by area, aug 2025 to jul 2026: widget 443, qr 245, supply chain 181, certifications 65, microsite 53, dpp core 32. QRv2 alone was a ground-up rebuild of the microsite renderer. Fleet regeneration jobs rebuild a brand's entire widget set in one run; the largest is around 470 jobs.
A standalone config API with a live preview endpoint: it runs the same config loader and Sass pipeline the production regeneration uses, but inlines the CSS and returns the rendered widget as plain HTML on the fly. The dashboard iframes it, so a brand manager sees exactly what will ship before anything touches S3.
Stack: Node.js, Express, Pug, Sass, AWS ECS. https://renoon.com