A brand sold on craft and presentation, running storefronts in more than seventy countries, each with its own pricing, language and shipping rules.
E-commerce · Luxury retail
Bang & Olufsen
Immersive product storytelling across storefronts in 70+ countries.
- Product
- Bang & Olufsen — luxury audio commerce across 70+ countries
- Role
- Frontend engineer, contract
- Scope
- Next.js with ISR, Contentful headless CMS, multi-region storefronts

The tension
The presentation is the product, and marketing cannot wait on a deploy to change it.
Campaign pages were engineering work. Every seasonal change queued behind a release, which is the wrong constraint for a business whose storefront is a campaign surface.
Marketing publishing a product story in any market without an engineer, on pages that still load fast enough to sell on.
Rich, video-led presentation and fast global delivery pull in opposite directions, and the brand will not trade the first for the second.
Each with its own pricing, language and shipping rules.
The product story
Editorial freedom, without giving up the load time.
Presentation first
The product arrives as an image, not a spec.
A full-bleed motion hero carries the current product story, with the wordmark and a single action over it and nothing competing.

Narrow first
The same story, one column.
The presentation holds at phone width, with store finder and account reachable and the imagery still doing the selling.

Composed, not coded
Marketing owns the page.
Sections are Contentful entries composed at render time, so a new campaign is an editorial change rather than an engineering ticket.

Walkthrough
The storefront in motion
Recorded from the live site.
The trust test
The happy path is only half the product.
A market has no localised entry
Content resolution falls back by locale rather than rendering an empty section, so an untranslated campaign degrades to the default rather than to a gap.
The hero video does not load
The product name, its line and its action are markup over the video, not baked into it, so the page still sells with the motion missing.
Consent is declined
Personalisation and analytics sit behind the consent categories, so declining changes what is measured rather than whether the storefront works.
The decisions
Three moves carried the story.
Put the campaign surface in a CMS
Contentful owns the editorial composition, so a seasonal change ships without engineering — which is what removes the release queue from the marketing calendar.
ISR rather than SSR or static
Seventy markets rebuilt on every edit is untenable, and per-request rendering wastes work on pages that change weekly. Incremental regeneration behind edge caching fits both.
Resolve market before the first byte
Price, language and shipping are settled server-side, so a visitor never sees a price correct itself after the client has worked out where they are.
What I would test next
