Blog

Rebuilding My Wife's Candle Shop Off Shopify, with a Bot Team Helping

Posted by Ray Thurman on 10/12/2026

Rebuilding My Wife's Candle Shop Off Shopify, with a Bot Team Helping

My wife makes candles and sells them as Sisters by the Moon. For roughly six years now the shop ran on Shopify. It worked, but it cost more than a small candle shop should be paying, and the platform as a whole made her anxious. It offered a ton she didn't actually need. So I'm rebuilding it, and this is a work-in-progress look at how that's going.

Where it stands

The domain already points at the new site, which is showing an under-construction page while she reviews the real store behind it. The products have been imported from Shopify, checkout works in test mode, and the shop owner has a guide for managing everything. It isn't fully launched yet, but the hard parts are mostly behind us.

[@portabletext/react] Unknown block type "image", specify a component for it in the `components.types` prop

Edge cases we actually hit

Getting off Shopify. I wrote the importer in two steps. First came a pure transform with a dry run that writes nothing. Only after that did I add the part that writes to Sanity and uploads product images. That way I could check the output before anything changed.

The header image saga. Her wide banner looked right one morning, then got cropped, then got "fixed" more than once. It took several tries (#11, #15) before it settled as full-width on desktop with no crop. A small thing, but it's the first thing anyone sees.

Shipping and policies. Shipping is a flat $10 and free at $50 or more, before discounts. We ship to the US only. All sales are final. Candles with tall wax pieces on top can break in shipping, so if one arrives broken she can offer a discount on the next order. The old policy pages still described Shopify, so they were rewritten to match the real stack.

Stock and oversells. When an order is paid, stock now drops exactly once, and any oversell gets flagged instead of silently going negative.

Not competing with ourselves. Preview and test URLs are set to noindex, so only sistersbythemoon.com shows up in search .

Email. Order emails now sign off as Sisters by the Moon instead of the template's brand, and they send over SMTP.

Using Grok Bot as my engineering team

I'm one person, so I've set up a handful of bots that act like a small team:

  • Loop handles the engineering loop. It reads the repo, writes up a plan, and does the work on my own machine. Nothing merges until I approve it.
  • Review reads every pull request for problems before I merge it.
  • Verification is the part I care about most. A green build isn't proof. "Done" means something actually drove the site like a user would. This repo now has a verification skill, a checklist the bots run against the live app (#26).

That habit came from working with agents for quite some time now and knowing their tendencies to just break something and move on. Proper verification and reviews in your software loop are paramount to not having a slop mountain of ai generated code.

What's next

  • Final aesthetic polish and product photos.
  • Her review of the live store, then going live on sistersbythemoon.com in place of the construction page.

I'll post again when it's live, or as my wife has made some tweaks to her Canva designs as we work on finishing up all of the polish and security.