2024 · Retail · web
Kindling
Family retail with merchandising that is not a plugin.
- Year
- 2024
- Role
- Lead
- Surface
- Retail

i18n
Architecture, not a plugin
Catalog
One model, two languages
Retail
Quiet on purpose
The brief
What was actually broken
Localization was a plugin. Merchandising was another. The shop spoke two languages in the chrome and one in the catalog, which is how you end up rebuilding.
How it shipped
The work, in order
- 01
i18n as architecture
Copy, routes, and catalog fields are first-class. A plugin cannot be the source of truth.
- 02
Calmer retail
Family shopping is not a flash sale. Type, space, and the bag stay quiet on purpose.
- 03
Merchandising in the model
Collections, seasons, and gifts are data. The homepage reads them; it does not hardcode a campaign.
Localization is architecture. Treat it like a plugin and you will rebuild.
What changed
After it left the repo
- — A second language does not require a second catalog.
- — Seasonal merchandising is a record, not a deploy.
- — The shop stays calm enough for the actual customers.
Stills
Same product, other angles



