---
title: "Shopify developer for D2C brands · Anirudh Goel"
description: "Shopify stores built, rebuilt and fixed for D2C brands, with a 17-point conversion check from real store fixes and a 21-point launch check."
canonical: https://anirudhgoel.xyz/shopify
updated: 2026-10-31
site: "Anirudh Goel"
language: en
---

Shopify · [Shopify Partner ↗](https://www.shopify.com/partners/directory/partner/anirudh-goel)

# Shopify stores that sell. Built, fixed and kept fast.

I build and fix Shopify stores for D2C brands: custom Liquid, the tools inside the store, and a check before every launch.

[Book a 30-minute call ↗](https://cal.com/anirudh.goel/consultation?utm_source=portfolio\&utm_medium=site\&utm_campaign=shopify\&utm_content=hero) [The conversion check](#check)

- Fraghill orders matched to a quiz buy click, month one · Sep 2026

  29

- Qurist consultation form, Typeform to Tally

  12.4 s to 3.8 s

- Unused apps taken off Qurist

  9

- Nara Livin, brief sign-off to first paying customers

  Within 6 weeks

## Stores I've built and run.

10 Shopify case studies, from eyewear to medical cannabis.

[Every case study →](https://anirudhgoel.xyz/projects)

[**Fraghill**Client · Fragrance2026 ](https://anirudhgoel.xyz/projects/fraghill)[**Qurist**Client · Medical Cannabis2026 ](https://anirudhgoel.xyz/projects/qurist)[**Dayal Opticals**Client · Luxury Retail2024 ](https://anirudhgoel.xyz/projects/dayal-opticals)[**Kala Curry**Client · Multi-Vendor Art Marketplace2025 ](https://anirudhgoel.xyz/projects/kala-curry)[**Nara Livin**Client · Home & Living2025 ](https://anirudhgoel.xyz/projects/nara-livin)[**Keer**Client · Fine Jewellery2026](https://anirudhgoel.xyz/projects/keer)

- Fragrance and wellness[Fraghill](https://anirudhgoel.xyz/projects/fraghill), [Qurist](https://anirudhgoel.xyz/projects/qurist)
- Eyewear and jewellery[Dayal Opticals](https://anirudhgoel.xyz/projects/dayal-opticals), [Keer](https://anirudhgoel.xyz/projects/keer)
- Art and publishing[Kala Curry](https://anirudhgoel.xyz/projects/kala-curry), [Desi Art Mag](https://anirudhgoel.xyz/projects/desi-art-mag)
- Home and living[Nara Livin](https://anirudhgoel.xyz/projects/nara-livin)
- Fashion[Islands of Loom](https://anirudhgoel.xyz/projects/islands-of-loom), [Bibal](https://anirudhgoel.xyz/projects/bibal)
- Food[Bombay Fromagerie](https://anirudhgoel.xyz/projects/bombay-fromagerie)

## What goes into a store.

[**Custom Liquid**Sections and templates a theme does not have: Kala Curry's section library and vendor directory, Nara Livin's gifting template, Dayal's brand names on product cards.Kala Curry case study →](https://anirudhgoel.xyz/projects/kala-curry)[**Live rebuilds**Fraghill was rebuilt on a parallel theme while the old store kept selling, then published over it with orders flowing.Fraghill case study →](https://anirudhgoel.xyz/projects/fraghill)[**Figma to Shopify**Nara Livin's design system built exactly, nine type sizes included, with no revision requests after the section-by-section review.Nara Livin case study →](https://anirudhgoel.xyz/projects/nara-livin)[**Product pages**Reviews on every Dayal product page, Keer's slide-in size guide, Islands of Loom's pincode delivery check.Islands of Loom case study →](https://anirudhgoel.xyz/projects/islands-of-loom)[**Catalogue structure**Nara Livin's swatches on metaobjects, Keer's SKUs built to fit a physical barcode tag, Fraghill's catalogue rebuilt around a ₹495 entry price.Keer case study →](https://anirudhgoel.xyz/projects/keer)[**SEO in the markup**Structured data on every Kala Curry page type and a written description on every collection; five city pages for Qurist.Qurist case study →](https://anirudhgoel.xyz/projects/qurist)

## Apps and tools inside the store.

[**Laurel, my Shopify app**Sale, new and best-seller badges at a fixed size inside the product card's image, so the grid never shifts as they load. Checked live on Horizon, Dawn and Impact, and on its way to the Shopify App Store.Laurel →](https://anirudhgoel.xyz/builds/laurel) [**A scent quiz that sells**Fraghill's Decoder: 2,344 runs opened and 29 orders matched to it in month one, counted by its own collector on a Cloudflare Worker, with emails hashed and never stored. The scoring engine and scene library are Arnav Amar's work; the integration and tuning are mine.Fraghill case study →](https://anirudhgoel.xyz/projects/fraghill) [**Leads that land in a sheet**Qurist's consultation form writes every lead into their own Google Sheet, timestamped in India time, and shows in 3.8 seconds instead of 12.4.Qurist case study →](https://anirudhgoel.xyz/projects/qurist) [**Changes made by script**On Qurist every change goes through the Admin API: staged, measured at render and logged before it ships.Qurist case study →](https://anirudhgoel.xyz/projects/qurist)

The conversion check

## 17 checks, each from a real fix.

Every point is something found and fixed on a store I run. None claims a sales lift: none has been measured yet.

### Collection pages

1. 01**The sort menu reorders the page.**&#x46;raghill · Oct 2026

   On Shop All the sort menu did nothing: its script built the address with the wrong URL object. One word changed, live 7 Oct.

2. 02**Every product you stock is on the page.**&#x46;raghill · Sep 2026

   The gifting page showed 12 of 14 sets, because its section had a limit of 12. Rebuilt and live 8 Sep.

### Product pages

3. 03**Every size shows, with its price.**&#x46;raghill · 2026

   Two of three sizes were invisible on all 35 products for weeks, because the size picker matched exact strings. Every card now reads "From ₹495".

   [The Fraghill case study →](https://anirudhgoel.xyz/projects/fraghill)

4. 04**Add to Cart sits on a phone's first screen.**&#x4F;ur phone check · Oct 2026Phone first-screen scan

   Measured at 390 by 664 pixels, Safari's visible area, on the heaviest products, not the neat ones: a long option list or a two-line instalment note can push the button below the fold.

5. 05**The sticky Add to Cart bar shows up.**&#x4B;ala Curry · Sep 2026

   A custom footer had lost the id the theme's script looks for, so the sticky bar never appeared on any product page. One attribute fixed it, on 8 Sep.

   [The Kala Curry case study →](https://anirudhgoel.xyz/projects/kala-curry)

6. 06**Offers are live text, never part of the banner image.**&#x46;raghill · Oct 2026

   The Diwali banner had its offer lines baked into the artwork, and the 2:1 hero cut them off. Rebuilt from the raw photo with the words as live text, served at 114 KB, live 13 Oct.

7. 07**Tables and stacked cards show no hairlines at browser zoom.**&#x51;urist · Oct 2026Zoom seam scan

   The comparison table showed light seams between its rows at 125, 150 and 175% zoom. Neighbouring cells now overlap.

   Measured 3 to 4 seams per table, now 0

### Cart and checkout

8. 08**One tap adds one item.**&#x46;raghill · Sep 2026

   Buy it now added a gift set twice, because its script was loaded twice. Fixed 19 Sep, then audited on 23 Sep.

   Measured One add per click on 13 paths, counted at the network, on desktop and phone

9. 09**A quantity typed in the cart reaches checkout.**&#x46;raghill · Sep 2026

   Typing 1 over 2 and tapping Checkout opened checkout with 2. The cart now saves the number first, live 23 Sep.

10. 10**Free shipping is judged the way checkout judges it.**&#x46;raghill · Aug 2026

    Checkout tested the free-shipping line after every discount, so a set bought with the welcome code fell under it and paid postage. Found on real orders on 5 Aug; the bag now reads the same rule as checkout.

11. 11**The price on the page is the price charged.**&#x51;urist · 2026

    Every bundle change is checked four ways: the admin, the storefront data, the rendered page and a real 28-line cart, because the shown and charged prices can split.

    [The Qurist case study →](https://anirudhgoel.xyz/projects/qurist)

12. 12**What the store attaches to a cart line survives checkout.**&#x46;raghill · Sep 2026

    Every pod the Decoder quiz adds carries a hidden line property through checkout. That is how its month-one orders were counted.

    Measured 29 orders matched to a quiz buy click, 4 Aug to 2 Sep 2026

    [The Fraghill case study →](https://anirudhgoel.xyz/projects/fraghill)

13. 13**The checkout button wears the brand's colours.**&#x46;raghill · Sep 2026Store UI audit

    The checkout app's button still wore the old brand's navy, and sat square beside rounded buttons on the cart page. Theme settings now drive both, live 1 Sep.

### Speed

14. 14**The hero image paints first.**&#x46;raghill · 2026

    The first slide paints before any script runs, and the quiz's 184 KB scene library loads after its first question is on screen.

    [The Fraghill case study →](https://anirudhgoel.xyz/projects/fraghill)

15. 15**Nothing above the fold animates.**&#x51;urist · Sep 2026

    A hero heading stuttered. A frame trace showed the animation was fine: app scripts held the main thread for nearly two seconds of every load.

16. 16**Apps nobody uses come off.**&#x51;urist · 2026

    An audit of every installed app took nine unused ones off the store and off the bill.

    Measured 9 unused apps removed

    [The Qurist case study →](https://anirudhgoel.xyz/projects/qurist)

17. 17**The lead form loads fast, and every lead is stored.**&#x51;urist · Aug 2026

    The consultation form took 12.4 seconds to appear. Its replacement shows in 3.8 and writes each lead into their own Google Sheet.

    Measured 12.4 s to 3.8 s, cold, on the same page

    [The Qurist case study →](https://anirudhgoel.xyz/projects/qurist)

The scans named here are mine, run against a live store from the outside.

The launch check

## 21 points before launch.

Every launch has had it since September 2026, with ten more checks in the first week.

**Speed**

Fast on a mid-range phone. Hero image loads first.

Check: LCP under 2.5 s, CLS under 0.1

**Search**

Unique titles and canonicals. Sitemap, and staging kept out of Google.

Check: Search Console and Bing verified

**Share previews**

A 1200 × 630 image on every page. Tested in WhatsApp, LinkedIn and X.

Check: Real test sends

**Structured data**

Organization and website markup. Product and offer markup on stores.

Check: Rich Results Test

**Accessibility**

Full keyboard path, visible focus. Alt text, contrast, 24 px tap targets.

Check: Manual pass plus Lighthouse

**Security**

HTTPS, HSTS and a strict CSP. security.txt with a real contact.

Check: Header scan

**Forms**

Spam protection, server-side checks. Every lead stored as well as emailed.

Check: Tested end to end

**Measurement**

Analytics with a conversion defined. Uptime monitor on key pages.

Check: Verified before handover

**Legal and handover**

Privacy, terms, India's disclosures. Every account and DNS record listed.

Check: Handover sheet

All 21 points

1. HTTPS on every host, HTTP redirects to HTTPS, HSTS set.
2. A unique title and meta description on every page, and the page language set.
3. A self-referencing canonical on every page that should be indexed.
4. robots.txt reachable and not blocking the site; staging and preview copies kept out of search.
5. An XML sitemap of canonical addresses, named in robots.txt.
6. The icon set: favicon, app icon, Apple touch icon.
7. Open Graph and X tags with a 1200 × 630 share image under 300 KB, with alt text.
8. Structured data for the business and the site; product and offer data on stores; the Rich Results Test passes.
9. Unknown addresses return a real 404, and every old address redirects to its new home after a move.
10. Core Web Vitals within target in the lab, and the hero image never lazy-loaded.
11. An accessibility pass: keyboard path, visible focus, alt text, contrast, 24 px targets, labelled fields.
12. Security headers: a content security policy, nosniff, referrer and permissions policies, framing control.
13. security.txt with a contact and an expiry date.
14. The domain's email set up: mail records, SPF, DKIM if it sends, DMARC; registrar lock and auto-renew on.
15. Privacy policy, terms and contact details live, with India's disclosures where they apply.
16. No tracker fires before consent where the law or the vendor needs it.
17. Analytics firing on the live site, with at least one conversion defined.
18. Search Console verified for the whole domain, the sitemap submitted, Bing imported.
19. Every form: spam protection, server-side checks, tested end to end, a confirmation shown, the lead stored as well as emailed.
20. An uptime monitor on the home page and the main flow.
21. A handover record: where the credentials live (never the values), the DNS records, the property ids, who has access.

## Questions.

How long does a Shopify build take?

A standard build takes 3 to 6 weeks, depending on scope. Complex builds like multi-vendor platforms take longer. You get a specific timeline after the first call.

My store isn't converting. Can you fix it?

Yes: full rebuilds, monthly retainers and one-off fixes. Many stores come in not converting, with broken SEO, or on a theme that holds them back. The conversion check on this page is where a fix usually starts.

What happens after the store goes live?

A monthly retainer, for stores that want ongoing development, SEO and growth. Qurist's store has run on one since June 2026.

## Planning a Shopify build?

[Book a 30-minute call ↗](https://cal.com/anirudh.goel/consultation?utm_source=portfolio\&utm_medium=site\&utm_campaign=shopify\&utm_content=closing) <hello@anirudhgoel.xyz> [WhatsApp me ↗](https://wa.me/917814769892?text=Hi%20Anirudh%2C%20I%27m%20on%20your%20Shopify%20page%20and%20want%20to%20talk%20about%20a%20project.)

I reply the same working day.

---

Site index for AI assistants: https://anirudhgoel.xyz/llms.txt
Every page as one file: https://anirudhgoel.xyz/llms-full.txt
