Personal project · three Shopify Plus development stores · 2026
Shopify demo stores
Most of my Shopify work is for clients, so I can't show it in detail. Instead I built three brands from scratch, each answering a different question a growing brand has to get right.

Why I built them
Every product is data first and a web page second, and most of an e-commerce job happens after the theme is finished. I wanted to show that side of the work, not just a nice homepage. So I created three brands, each with its own identity, products and photography, and gave each one a different problem to solve. Products, photography and marketing figures are illustrative. The stores, theme code, automations and orders are real.
Fernlowe: product data and compliance
A natural-fibre clothing label, built around the Digital Product Passports that EU textiles rules are expected to require.
- A passport for every garment. Fibre composition and origin, a five-stage supply chain, CO₂e, water, durability and care, on the product page and on a public passport page with its own QR code for the care label.
- One record, many outputs. Passports, size guides, the materials library and search markup all read the same metaobjects, so a change of supplier is one edit.
- Fit and pre-loved. A fit scale and three shared size charts serve every product, and pre-loved items sit in the main catalogue with a graded condition.
- Clean data. One SKU pattern, a barcode per variant, Shopify's standard taxonomy, and structured data for returns and delivery.
Moonrake: campaigns and conversion
A bedding and sleepwear brand that sells in limited colour drops.
- Campaigns as data. Each campaign is one record with its dates. The homepage, announcement bar and countdown switch on time by themselves, and a small script keeps cached pages honest.
- A drop with a waitlist. Before launch, the product page hides Add to cart and collects sign-ups as tagged Shopify customers, ready for an email launch segment.
- Bigger baskets. A native bundle at 10% off, a curated "Complete the bed" cross-sell, and a free-delivery progress bar.
- Tested, not guessed. An A/B test in Shopify Rollouts moves the cross-sell higher up the page, measured on average order value with conversion as a guardrail.
- Selling abroad. UK, EU and US markets with the right tax and duty treatment.
Wrenfold: operations and data
Wool socks, hats and scarves, where a small range quickly becomes dozens of SKUs.
- One source of truth. A Google Sheet holds every style and checks itself for duplicates, missing customs data and thin margins. A Python loader generates the SKUs and barcodes and refuses to publish a style with a blocking problem.
- Warehouse reconciliation. A script compares the 3PL's stock export with Shopify and gives every mismatch a reason, an action and a priority.
- A weekly trading dashboard. Shopify orders joined with GA4, email and paid social, showing conversion, AOV, blended CAC and stock cover, with platform-reported ROAS beside Shopify's own figure and a short list of actions for the week.
- Shopify Flow. Three live workflows: low-stock alerts, first and repeat customer tags, and a flag for high-value orders.
- Honest product pages. Live stock for the chosen size and a same-day dispatch countdown in UK time.
How it's built
No paid apps: everything uses Shopify's own features. Each store runs a fork of Shopify Horizon with custom theme blocks and sections, deployed with Shopify CLI from a Git repository, one branch per store. Python scripts load catalogues, campaigns and orders through the Admin GraphQL API, and every write-up explains what each feature does, why it matters to the business, and how it was built.





