§ 04.02 — Easy Grocer · Grocery · E-commerce · 2025

5.2s → 0.9s

LCP · MOBILE P75 · LIGHTHOUSE 58 → 95 · A11Y 69 → 100 · 34-DAY ENGAGEMENT

Easy Grocer runs a cycle-based grocery model — curated packages delivered on a schedule — but its WooCommerce site shipped a 5.2-second mobile LCP and a delivery-window picker that dropped carts. Over 34 days I rebuilt the ordering funnel, cut the plugin count by two thirds, and separated driver onboarding from the customer path.

Client
Easy Grocer
Vertical
Grocery · E-commerce
Year
Q3 2025
Role
Lead
Duration
34 days
Status
● Live
Verified
Live site
§ 04.02.A

Loom walkthrough

94 seconds · funnel & admin
Loom · 94 s · Pixy · 2025
▶ Walkthrough Cycle ordering · 00:00 — 00:40
Delivery-window picker · 00:40 — 01:14
Driver onboarding · 01:14 — 01:34
FIG. 02 — Loom embed (placeholder) Recorded 18.09.2025 · Remote
§ 04.02.A.2

Screen plates · Gallery

Click any plate to zoom

Placeholders shown — production screenshots replace these on the live build. Arrow keys navigate; Esc closes.

§ 04.02.B

Problem

What was broken

Easy Grocer’s cycle-ordering model is genuinely different — customers pick a recurring package and a delivery window rather than shopping ad hoc — but the site had been bolted onto a generic WooCommerce theme with 41 active plugins. The delivery-window picker reloaded the whole page, the cart lost items on mobile, and the homepage took 5.2 seconds to become usable. Driver sign-ups and customer checkout shared one tangled funnel.

The business needed the ordering rhythm to feel effortless on a phone, the cart to stop leaking, and drivers onboarded without wading through a grocery checkout.

Before
  • ▲ LCP 5.2 s mobile p75
  • ▲ 41 active plugins
  • ▲ Full-page reload on window pick
  • ▲ Cart loss on mobile
  • ▲ Lighthouse perf 58 · a11y 69
§ 04.02.C

Constraints

Boundaries · published
01 Timeline 34 days · before the autumn delivery push
02 Budget Fixed · 40 / 40 / 20
03 Stack lock-in WooCommerce kept · existing payment gateway kept
04 Model Cycle ordering · delivery windows · neighbourhood grouping
05 Two audiences Customers and delivery drivers in one site
06 Compliance WCAG 2.2 AA · PCI · GDPR
§ 04.02.D

Decisions

Three · defended
Decision · 01

Kept WooCommerce. Removed the builder.

Alternative considered: a headless commerce rebuild. Rejected because: the 34-day window and the existing product/order data made a Woo refactor the safe bet. Tradeoff: headless has a higher ceiling; Woo + custom blocks hit the deadline without a data migration.

Decision · 02

Delivery-window picker as a no-reload block.

Alternative: a third-party booking plugin. Rejected because: none modelled cutoff windows and neighbourhood grouping. Tradeoff: a custom picker is mine to maintain — but it updates in place, keeps the cart, and is keyboard-operable.

Decision · 03

Split driver onboarding from the customer funnel.

Alternative: one funnel with role detection. Rejected because: it confused both audiences. Tradeoff: two entry points to maintain, but each path is short and clear.

§ 04.02.E

Build

Stack · plugins · what was kept

Stack

  • ▸ WordPress 6.7 + WooCommerce
  • ▸ Gutenberg blocks · ACF Pro field definitions
  • ▸ Existing payment gateway kept
  • ▸ Cloudflare · cache + image resize
  • ▸ Custom delivery-window block · no reload
  • ▸ WCAG 2.2 AA tested via axe + NVDA + keyboard

Plugins · 41 → 14

  • ✓ kept WooCommerce · ACF Pro · Stripe · Yoast SEO · Wordfence · Cloudflare · WPForms
  • × removed (27) Page builder · 4 slider/UX plugins · third-party booking plugin · duplicate analytics · 19 orphaned add-ons
§ 04.02.F

Results · Measured

Every number · dated · sourced
LCP · Mobile p75
0.9 s
▼ 83% from 5.2 s
INP · Mobile p75
104 ms
▼ 71% from 358 ms
CLS · Mobile
0.02
▼ from 0.27
LCP · mobile p75
15.09.2025 · PSI mobile
Lighthouse Performance
15.09.2025 · PSI mobile
Lighthouse Accessibility
15.09.2025
Plugin count
41 → 14
Mobile cart completion
30-day cohort after launch

Every metric carries its tool, date, and page measured. The cart-completion figure is the client’s own analytics, 30 days pre vs post launch.

§ 04.02.G

Tradeoffs

What was not fixed

I did not rebuild the neighbourhood-grouping logistics back end — only the customer-facing ordering funnel and the driver onboarding. The routing engine still runs on the original service; it was out of scope and working. A logistics-dashboard phase is scoped for 2026.

§ 04.02.H

AI usage · This project

Per-engagement disclosure

Claude and Cursor scaffolded the WooCommerce block templates and the delivery-window state machine’s test cases. Every block and the payment path were hand-written and reviewed. Accessibility, the cutoff-window logic, and QA were entirely human. No site copy was AI-written.

Read the full AI policy ↗.

Scaffold
Claude · Cursor
Refactor
Human
A11y
Human · NVDA
Copy
Client + human
Architecture
Human
QA
Human
§ 04.02.I

Testimony · Verified

Client-verified · live site
"Our ordering rhythm is the whole product, and Pixy made it feel effortless on a phone. The cart stopped losing items, the site is three times faster, and our drivers sign up without ever touching a grocery checkout."
Name
Daniel Mensah
Role
Founder
Company
Easy Grocer
Project
2025 WooCommerce rebuild
Verified via
geteasygrocer.com

Same shape as your site? An Audit Sprint starts at $1,500.

Audit Sprint terms → Start a project