Problem
Shoppers could not see or understand a fabric. The brand needed a content section about textiles that links to products both ways, with no prices or cart, which the team can fill without a developer. The store was live with real orders and had no staging, and the theme shipped compiled Tailwind with no source or build.
Solution
Two metaobject types, one for textile families and one for colourways, with public pages. I created and filled them with Admin API scripts. Three new theme sections and a few snippets in the style of the existing theme, with plain CSS and JavaScript as separate assets and no build step. The link to products uses the existing upholstery option value, so no product data changed.
Key decisions
Chose metaobjects over products or pages for fabrics
Why A fabric is content, not a product: no price, cart or variants. Metaobjects give structured fields, public pages and admin editing.
Chose to link fabrics to products through the existing option value
Why The data had one upholstery option, not two as the brief assumed, so matching by string left the catalogue untouched and needed no write access to products.
Chose global CSS and JavaScript assets over section-scoped tags
Why Section-scoped scripts load only for the first page, so after the theme's AJAX navigation the page's custom element was undefined.
Chose to work on a dev theme and a git-synced theme only
Why The live store had real orders and no staging, so nothing could touch it.
Results
- The client accepted the work as very considered and well executed.
- Three review rounds from the client's designer were closed in full.
- A fabric page scored 100 on mobile Lighthouse during development.
- The live store and its product data stayed untouched through every stage.
- The section is ready to publish, and the launch is up to the client.
Client review
Anton built a custom Upholstery and Textile section for our store from our Figma designs: an overview page plus individual pages for all our fabric families and colourways, linked from our product pages. He set up a clean data structure behind it and matched the designs closely. Anton is structured, precise and the communication has been easy and pleasant throughout. Highly recommended!


