Lead engineer
Byron Bay Candles
Premium Australian candle brand moved from a slow WooCommerce theme to a headless Next.js storefront with sub-100ms search and a custom scent builder.

- Search latency
- <100ms
- Mobile Lighthouse
- 95+
- Time-to-checkout
- −38%
The problem
The legacy WooCommerce theme was carrying 1.2MB of render-blocking JS across every page. Mobile LCP sat above 4 seconds, and product search relied on the default WP query — which meant 600ms+ responses on a catalog of ~180 SKUs once attribute filters were layered on. Conversion analytics showed a 28% drop-off at the search step.
My role
Lead engineer. I owned the architecture decision (headless vs theme rebuild), the Typesense indexer integration, the Next.js storefront, and the WooCommerce-side hooks that keep the index in sync with stock and price changes.
Approach
Next.js App Router on the front, WooCommerce + Blocksy left intact on the back. A Typesense index mirrors the product catalog, rebuilt on every save_post / stock-change hook so the storefront search reflects the WP edit within seconds. A custom scent-builder flow ships as a client component that talks directly to the cart REST endpoint — no page reloads through the bundle-builder flow.
Critical CSS is inlined at build time. Hero images are pre-converted to WebP and preloaded. There is zero third-party JavaScript on the storefront.
Outcome
Search latency dropped from ~600ms to under 100ms at the 95th percentile. Mobile Lighthouse moved from a low-50s score to a steady 95+. Time-to-checkout — measured from landing to order confirmation — fell by 38%, with the scent builder accounting for most of the recovered drop-off.
Stack
