kaedax
← work

A direct-to-consumer storefront with a made-to-order configurator, replacing a Shopify build that had outgrown the platform.

BOUGH sells solid-oak furniture made-to-order. Their Shopify store buckled at the configurator step — too many options, too many SKUs, too much pricing logic. We rebuilt the storefront and the configurator end-to-end in thirty days.

stack → Next.js 15 Postgres Stripe + Shop Pay Sanity (CMS) Mux (video) Algolia Cloudflare R2
OAK · DINING TABLE BASE SKU WOOD ○ oak ● ash ○ walnut ○ elm SIZE ○ S ● M ○ L ○ XL FINISH ○ raw ● oil ○ matte ○ gloss LEGS ○ A ● B ○ trestle PRICE.CALC £2,840 1,800 SKU PERMUTATIONS · 23 PRICING EDGE CASES ▷ CASE · BOUGH · BLUEPRINT ECOMMERCE · DTC HOME
SCHEMATIC An abstract view of the BOUGH engagement — not a literal product screenshot. Built to communicate engineering shape, not surface design.

outcomes

01

+38%

Configurator → checkout

02

1.4s

LCP on product pages

03

100%

Order history preserved

04

T+708h

Production cutover

[ §01 ] the cycle

How 720 hours
actually ran.

  1. Day 01 — 04

    Brief, spec, catalogue audit

    Their catalogue had 1,800 SKU permutations across 47 base products. scope.agent inventoried the lot, mapped configurator dependencies, and surfaced 23 pricing-logic edge cases the Shopify build had silently mishandled.

    spec.md catalogue.csv pricing-edge-cases.md
  2. Day 05 — 20

    Storefront + configurator build

    build.agent shipped the product surface, the configurator engine, the cart, the checkout, and the order-handoff webhooks to their factory ops system. qa.agent ran the full pricing edge-case suite on every PR.

    68 PRs pricing tests × 134 lighthouse 99/100/100/100
  3. Day 21 — 26

    Imagery, motion, payment

    Sanity content model, Mux video pipeline, Algolia search, Stripe + Shop Pay integration, GA4 commerce events. The unsexy week that bootstrapped retailers tend to skip — and then bleed margin from.

    cms wired shop pay live ga4 events
  4. Day 27 — 30

    Migration + cutover

    Order history migration from Shopify, DNS cutover on a Sunday night, parallel monitoring for 72 hours. Their factory ops team trained on the new order webhook format the same week.

    history migrated dns cutover factory ops trained

[ §02 ] agent log · selected

What the loop
looked like.

cycle-log · bough
archived
T+120h [WARN] scope.agent shopify pricing logic disagrees with their stated rules in 23 cases · paged human
T+240h [ OK ] scope.agent rules clarified with founder · canonical pricing spec drafted
T+360h [ >> ] build.agent configurator engine shipped · 47 base × 1800 SKU permutations resolved
T+480h [ OK ] qa.agent 134/134 pricing tests pass · 0 silent rounding drift detected
T+600h [ OK ] deploy.agent cutover at 02:17 UTC · order count parity within 6h window
T+720h [ OK ] monitor.agent core web vitals green across 50 most-visited skus

[ §03 ] notes from the cycle

BOUGH had outgrown Shopify in the most expensive way possible — by adding apps until the checkout flow took twelve seconds and the configurator returned wrong prices for a quiet 2-3% of orders. They didn’t need a replatform pitch; they needed someone to ship the replatform.

The constraint that shaped the build

The factory operations team had a working order-handling system. We weren’t replacing it. The new storefront had to emit the exact webhook contract their factory ops expected, plus the new variants we’d surface in the configurator. That contract was the spec for half the build.

Where the agents earned their cycle

The configurator engine is the kind of thing that takes two months in a typical engagement because the pricing edge cases multiply. We let qa.agent generate the test matrix from the canonical spec, not from the code — so the moment a pricing rule was wrong in implementation, the test suite found it.

The most useful single hour was a scope.agent review on day 4 that surfaced 23 cases where Shopify’s actual behavior disagreed with the founder’s understanding of their pricing rules. That conversation alone justified the engagement.

What handoff looked like

BOUGH’s two-person tech team now owns the repo. They merge their own PRs, run their own deploys, and the kaedax agents continue to run in their CI on a read-only basis for the post-launch monitoring window. They’ve shipped four follow-on releases without us.

from the founder

"We'd spent two years patching a Shopify store we'd outgrown. Kaedax replaced the whole thing in a month and the conversion lift paid for the engagement in six weeks."

— Founder · BOUGH