Sayerlack is M.L. Campbell’s sister brand. Same parent company (Sherwin-Williams Industrial Wood Coatings), same distributor-channel job, same finishers and shop owners trying to find a technical data sheet at 7am before the spray booth fires up. Different brand though — European heritage, waterborne-forward chemistry, a product taxonomy that organises around finishing systems rather than a North American stain-and-topcoat habit. The brief was straightforward to say out loud and harder to actually ship: build Sayerlack so it feels like itself, not like MLC wearing a different jacket.
The decision I made early was to run both brands off one platform instead of two separate codebases. Two codebases would have doubled the maintenance surface for a team that did not want to maintain anything twice. One platform with brand-isolated theming gave me a single place to fix bugs, ship template improvements, and update the distributor locator — and gave each brand the room to look and read like itself.
What’s shared, what’s brand-isolated
Shared: the template skeleton, the distributor locator, the PDS/SDS/EDS download matrix, the search and category architecture, the deploy pipeline. Brand-isolated: palette, typography, the product taxonomy itself, the way categories are named and ordered, the tone of the supporting copy. Sayerlack’s left-sidebar category list reads as a finishing system — Stains, Primers, Sealers, Topcoats, Catalysts, Thinners, Adhesives — because that is how a Sayerlack-trained finisher reaches for a product. MLC’s IA reaches the same destinations by a different path because MLC’s customers think differently. Same engine underneath; different mental model on top.

The product detail template earns its keep
The product detail template is the load-bearing pattern across both brands. Can shot on the left, performance bullets, the PDS/SDS/EDS download matrix, distributor CTA. Render it with MLC’s brand tokens and you get the Arroyo page. Render it with Sayerlack’s tokens and product data and you get the Waterborne Clear Basecoat page below. A distributor rep moving between the two sites in a single afternoon does not have to learn two interfaces; the muscle memory transfers. Each brand still gets its own visual identity because the tokens — colour, type, spacing scale, button shape, image treatment — are isolated cleanly from the markup.

The interesting savings showed up months later. When the parent group asked for a change to how downloads were tracked, I shipped it once and both brands got it. When a security update hit the distributor locator, same story. The cost of running brand number two stops being “a whole second site” and starts being “a theme, a taxonomy, and the product data.”
Where this pattern transfers
Any organisation running more than one brand on shared infrastructure has a version of this problem. Franchises with regional identities. Hospitality groups with a portfolio of property brands. Multi-tenant SaaS that wants each tenant to feel bespoke. Parent companies with sub-brands that need their own voice without their own engineering team. The work is figuring out which layer of the stack each brand owns and which layer the platform owns — and then holding that line as the product roadmap pulls at it.