RolandBoss
Two brands, two domains, one checkout — the agency's first shared cart.
- Client
- Roland Brazil
- Role
- Squad tech lead · Front-end
- Year
- 2025
- Stack
- Shopify HydrogenRemixOxygenWeaverseTypeScript
- In production
- store.roland.com.br ↗store.bossmusic.com.br ↗
What I owned
- 01The shared-cart architecture: I researched the options and argued for one cart with one owner over two synced carts, before any code.
- 02Leading the squad through the build: direction, unblocking decisions, reviewing the work.
- 03Ongoing delivery on a store that can't go offline: header rebuild, campaign scheduling in Weaverse, performance work.

1280 × 800

390 × 844
Problem ·Roland and Boss are two stores on two websites. Normally, someone who wants a Roland keyboard and a Boss pedal would get two carts and pay twice.
FIG. 1Two storefronts on two domains, one cart.
Break the rejected version yourself
Both architectures, running in your browser. With one cart, order and latency don't matter. With two carts synced by snapshot, add from both stores before the sync lands and watch them disagree.
Simulation. Illustrative data, real mechanism.
Latency is simulated (350–1200 ms). The race is not.

- JUNO-D6
- FP-30X
- TD-07KV

- DS-1
- RC-505mkII
- KATANA-50
Cart · 14
empty
— network log —
Context
Roland and Boss are sibling music-equipment brands running separate stores in Brazil: store.roland.com.br and store.bossmusic.com.br. Two headless Shopify Hydrogen storefronts, served by a single Shopify store underneath. The project came to my squad as a retainer for ongoing maintenance and new work, which means shipping features without ever taking the store down to rewrite anything.
The core technical problem
Two brands, two domains, one catalog. Someone who lands on Roland for a synth and also wants a Boss pedal shouldn't have to check out twice. And it's the same Shopify store underneath, so the cart could be the same. It's the browser that says no: the session that identifies the cart on store.roland.com.br simply doesn't exist on store.bossmusic.com.br. The boundary isn't the platform; it's the domain.
It was the first shared cart the agency had ever delivered. There was no internal reference, no “we did it this way last time” — the architecture had to be researched and argued for before it became code.
What the squad built
- Shared cart with a single checkoutInstead of two carts trying to stay in sync, both storefronts talk to a shared connection point that builds and owns a single cart. Adding an item from either brand feeds the same checkout.
- Cross-brand search with canonical PDPsSearching on Roland returns the full catalog from both brands. Clicking a Boss result lands straight on the PDP on the Boss domain, and vice versa. One catalog, but each product still lives on its own brand's site.
- Configurable campaign schedulingBanners and sections with start and end windows, built by us and exposed as configuration inside Weaverse. The client's team decides when Black Friday goes up and when it comes down, with no deploy from us.
- The ongoing workA header rebuild, improvements to the banner system and continuous performance work, always on a store that can't go offline.
Why it's built this way
- One cart, not two in syncThe tempting path was to mirror state across both storefronts. Syncing replicas is where race conditions live: items vanish, quantities drift, and the bug only shows up in production, on two devices. Building the cart in one shared place trades a distributed problem for an integration problem, which is far easier to test and explain.
- One catalog, brand-aware navigationDuplicating products per brand would have solved search in five minutes and created duplicate content, cannibalized SEO and two places to update a price. Each product has one owner: search crosses the boundary, and the PDP is canonical on the right domain.
- Campaign dates are config, not deploysCampaign dates always change at the last minute. Every seasonal feature shipped with a window the client edits in Weaverse. That takes the agency off the critical path of running the store and removes a whole class of night-before-the-holiday emergencies.
- Leading was worth more than codingSince this was the agency's first project of its kind, my most valuable work was researching the options, validating the architecture and guiding the team to it, not writing the code. I spent more time unblocking decisions than typing, and the delivery was better for it.
Status
In production, with ongoing work. Both stores are live: open store.roland.com.br and store.bossmusic.com.br and inspect the cart yourself.