Case study

Custom PDP for a personalized-jewelry brand. Four design iterations, three markets, one theme.

DTC custom-ring brand on Shopify. Bespoke PDP section stack iterated through d4, d5, d6 and d10. Shopify Markets wiring for US, Canadian and international contexts. Active multi-project ongoing.

By the numbers

The numbers speak for themselves

Vault-backed numbers. No presentation-grade estimates. Each one is reconcilable to the founder's own reporting.

PDP design iterations shipped
4x

Four full design rounds (d4, d5, d6, d10) of the product detail page for a high-consideration, personalized-jewelry purchase flow.

SRC: GitHub branch + PR history across muscled-clients/muscled-rings and muscled-clients/rings, 2026-05-21

Market contexts on one theme
3

US, Canadian, and international market contexts wired into a single Shopify theme via Shopify Markets context files (index.context.us/ca/international.json).

SRC: Confirmed in production theme templates, 2026-05-21

Active multi-project ongoing span
14+ mo

Engagement active from March 2025 through May 2026 and ongoing. develop-muscled-new branch received production commits on 2026-05-21.

SRC: GitHub commit history, 2026-05-21

Rings.com monthly revenue

Post-rebuild growth
Desktop & Mobile

The full homepage, shown two ways

Two side-by-side screenshots of the long homepage. Hover the desktop card to slowly scroll the screenshot top to bottom, so visitors see the entire page without leaving this one.

  • Desktop · full homepage after rebuild
    4x
    PDP design iterations shipped
    /mo at peak
  • Mobile-first after rebuild
    Mobile traffic share
    Engagement length
The work

How the engagement unfolded

  1. Initial PDP redesign and theme build

    Mar 2025

    Two repos spun up under muscled-clients (muscled-rings dev/design, rings production). Full Shopify theme structure assembled including custom PDP section stack: product__main, product__sidebar, product__description-split, product__images, product__breadcrumb. Design iteration d4 kicked off.

    • Theme build
    • Custom PDP sections
    • d4 design
    • Liquid + SCSS + JS
  2. d5 and d6 PDP iterations

    Mar 2025 — May 2025

    Bulk of the work concentrated in design version 5 (d5-main-product, d5-m15, d5-product-form, d5-select, d5-select-new, d5-shipping-info, d5-update) plus design version 6 (d6-12-march, d6-m15, d6-19-march). Custom d5 and d6 section libraries built: headers, image grids, FAQs, icon-text rows, newsletter and review sections. Production push to the Rings.com Shopify store during this window.

    • d5 + d6 iterations
    • Section library
    • PDP focus
    • Production deploy
  3. Multi-market architecture (US / CA / international)

    2025

    Wired the theme for Shopify Markets with US, Canadian, and international context files (index.context.us.json, index.context.ca.json, index.context.international.json) and footer-group variants per market. Market-specific product templates (product.product-canada.json, product.coupon.canada.json, product.coupon.usa.json) to handle promo and currency differences.

    • Shopify Markets
    • US + CA + international
    • Market-specific templates
  4. d10 PDP refresh and ongoing multi-project work

    Nov 2025 — present

    d10 PDP iteration (d-10-pdp branch) focused specifically on the product detail page. Engagement remains active: develop-muscled-new branch received commits on 2026-05-21, 14+ months into the multi-project ongoing engagement. Sustained PDP and theme work alongside the client's GemPages page builder.

    • d10 PDP
    • Active multi-project ongoing
    • GemPages alongside
    • Ongoing CRO
Project overview

What we built

Rings.com is a DTC jewelry brand selling custom and personalized rings on Shopify, with a Shopify-hosted ring creator app driving the configuration flow. The store serves US, Canadian, and international shoppers from one theme via Shopify Markets.

Muscled has been on a multi-project ongoing engagement with the brand since March 2025, building and iterating the product detail page across four design rounds (d4, d5, d6, d10), wiring multi-market context files, and maintaining the custom section library alongside the client's GemPages setup.

In their own words

(Testimonial TBD. Vault contact_name is open and brand_clarity_status is pending. Permission to publish is pending client confirmation.)

Rings.com is a DTC jewelry brand selling custom and personalized rings with a Shopify-hosted ring creator app. Serves US, Canadian, and international markets from one Shopify theme. Active multi-project ongoing relationship since March 2025.

Rings.com teamClient
The challenge

What was holding them back?

Custom rings are a high-consideration, configured purchase. The PDP carries the conversion, and it has to do it cleanly across three markets while handing off to a Shopify-hosted ring creator app and coexisting with a page builder used for other pages.

  1. 01

    High-consideration PDP needed a custom-designed flow

    Custom and personalized rings are high-consideration purchases. The default theme PDP couldn't carry the product story, variant complexity, and trust signals required to convert browsers on a multi-hundred-dollar configured purchase.

  2. 02

    Three markets, one theme

    The store serves US, Canadian, and international shoppers from a single Shopify theme. Pricing, copy, available promos, and footer content differ per market and had to be managed without forking the codebase three ways.

  3. 03

    Personalized ring configurator integrated into PDP

    A Shopify-hosted ring creator app (rings.com/apps/ring-creator/rb-get-started) is the client's primary product configuration surface. The PDP had to hand off cleanly to the creator and back, without breaking variant or pricing state.

  4. 04

    Page builder coexistence with custom theme code

    The client uses GemPages for certain marketing pages (100+ gp-section-* files present). Our custom d5 and d6 section library had to coexist with the page builder without stomping on its sections or breaking either side.

Before / After

Before and after

Before

After

Funnel collapse: we removed a full page from the path to purchase.

Solutions

What we built to fix it

Each fix maps to a specific lift in the funnel.

  • Custom PDP section stack

    Built dedicated PDP sections: product__main, product__sidebar, product__description-split, product__images, product__breadcrumb. Iterated through d4, d5, d6 and d10 design rounds, with the d-10-pdp branch focused specifically on the product page.

  • Shopify Markets multi-context wiring

    US, Canadian, and international markets share one theme via Shopify Markets context files (index.context.us/ca/international.json) with matching footer-group variants. Market-specific product templates (product.product-canada.json, product.coupon.usa.json, product.coupon.canada.json) handle promo and copy differences per region.

  • Ring creator app handoff on PDP

    PDP integrates with the Shopify-hosted ring creator app so the personalization flow starts on the product page and returns cleanly with variant and pricing state intact.

  • Custom section library alongside GemPages

    Built a d5/d6 section library (custom headers, image grids, FAQs, icon-text rows, newsletter and review sections) that coexists with the client's existing GemPages setup so page-builder pages keep working while the theme-driven pages get bespoke design.

The stack

What it was built on

Tools picked for the job, not for the resume.

  • Shopify
    Platform
  • Liquid
    Templating
  • Shopify Markets
    Multi-market
  • SCSS / CSS
    Styling
  • Vanilla JS
    Frontend
  • GemPages
    Page builder
  • Ring Creator app
    Product configurator
How we engineer performance

Speed is a revenue lever, not a vanity score

Every Muscled build is engineered to the same standard. The numbers below are the published industry benchmarks we design against, not stand-ins for any one client's figures.

conversions per 0.1s of load-time improvement on ecommerce sites.

+8.4%

SRC: DELOITTE / GOOGLE

conversion rate for stores loading under 2s, vs the ~1.4% Shopify average.

2.4%

SRC: SHOPIFY PERFORMANCE DATA

conversion lift per 1s of mobile load-time gained, where 90% of traffic lives.

+10-20%

SRC: SHOPIFY MOBILE BENCHMARKS

// OUR PERFORMANCE GATE we don't ship unless field Core Web Vitals hold: LCP ≤ 2.5s · INP ≤ 200ms · CLS < 0.1 (p75, mobile)

Capability surface

The techniques behind a build like this

PDP & jewelry CRO

  • Custom PDP section stack
  • d4 / d5 / d6 / d10 iterations
  • product__main
  • product__sidebar
  • product__description-split
  • product__images
  • product__breadcrumb
  • High-consideration product copy
  • Variant complexity handling
  • Trust signals
  • Review section (d6)

Multi-market architecture

  • Shopify Markets
  • US + CA + international contexts
  • index.context.us.json
  • index.context.ca.json
  • index.context.international.json
  • footer-group-classic context variants
  • product.product-canada.json
  • product.coupon.usa.json
  • product.coupon.canada.json

Personalized product configurator

  • Ring creator app integration
  • PDP handoff
  • Variant state preservation
  • Pricing state preservation
  • Custom / personalized purchase flow
  • Shopify-hosted app surface

Stack & coexistence

  • Liquid
  • SCSS / CSS
  • Vanilla JS
  • Shopify Markets
  • GemPages (alongside)
  • d5 / d6 custom section library
  • Git-based deploys
  • Two-repo workflow (dev + production)
Storefronts

One build. Multiple markets.

Same theme code across markets, with localized pricing, currency, and region-specific content routed automatically.

  • United States

    US storefront
    • Shopify
    • Custom PDP
    • Ring creator app
    • Shopify Markets (US context)
    • Multi-iteration design (d4-d10)
    United States screenshot
    Served from the same Shopify Markets build. Dedicated capture not included.
  • Canada

    Canadian market context
    • Shopify Markets (CA context)
    • Market-specific product templates
    • Localized promos (product.coupon.canada.json)
    • Shared theme base
    Canada screenshot
    Served from the same Shopify Markets build. Dedicated capture not included.
Full build · sections

Every section, built mobile-first

The full build is many numbered sections, each designed for the phone first. The rail below shows a sample. Scroll horizontally to step through.

The results

What the work delivered

Each number is reconcilable to the founder's own reporting.

PDP design iterations shipped
4x

Four full design rounds (d4, d5, d6, d10) of the product detail page for a high-consideration, personalized-jewelry purchase flow.

SRC: GitHub branch + PR history across muscled-clients/muscled-rings and muscled-clients/rings, 2026-05-21

Market contexts on one theme
3

US, Canadian, and international market contexts wired into a single Shopify theme via Shopify Markets context files (index.context.us/ca/international.json).

SRC: Confirmed in production theme templates, 2026-05-21

Active multi-project ongoing span
14+ mo

Engagement active from March 2025 through May 2026 and ongoing. develop-muscled-new branch received production commits on 2026-05-21.

SRC: GitHub commit history, 2026-05-21

Ready to ship yours?

Let's talk about what you want to ship.

Four PDP design rounds shipped on a single Shopify theme serving US, Canadian and international markets. Active multi-project ongoing engagement since March 2025, with production commits as recently as May 2026.

30 minutes. No deck.