Enterprise demand-generation platforms
Three platforms, one design language
For an enterprise technology client I built three demand-generation platforms: campaign sites whose job is to take marketing traffic and convert it into qualified leads. The constraint that shaped everything was brand governance. The client has a comprehensive enterprise design system with its own components, tokens and accessibility rules, and the platforms had to look and behave like the client built them in-house. There is no room for an approximation of the brand; it either matches the system or it fails review.
Laravel and Inertia, deliberately
The stack is Laravel with Inertia.js and Vue 3. Inertia was the deliberate choice here: it gives the front end full Vue components, which the design system's component library requires, while keeping routing, validation and form handling in Laravel where they are simplest to reason about. The alternative, a separate API and SPA, would have doubled the surface area for what is fundamentally a server-driven product. Working inside an enterprise design system is its own discipline: you build with the client's components and design tokens rather than around them, and the discipline pays off because every page you ship already speaks the brand's language. Lead capture forms are protected with reCAPTCHA.
Multi-language, tested end to end
The platforms run in multiple languages, which means internationalisation was built into the templates and form flows from the start rather than bolted on. Every user-facing string goes through the i18n layer, and layouts have to survive German-length words. The critical paths, form submission above all, are covered by Playwright end-to-end tests running in a real browser. On a lead generation platform the form is the product, so "the tests pass" has to mean "a browser filled in the form and the submission arrived".
Repeatability as the outcome
Delivering three of these consecutively turned the approach into a repeatable pattern: same stack, same design system integration, same testing discipline, adapted per campaign. Requirements arrived through account managers rather than a product owner sitting next to me, and as lead developer I owned that conversation directly: asking which markets, which fields the client's marketing platform actually needs, what the campaign dates allow. That repeatability is the honest outcome. Each platform shipped for its campaign, in multiple languages, looking indistinguishable from the client's own properties, and the third one was faster to build than the first because the architecture had already absorbed the hard lessons.