Year2024
RoleLead Frontend Engineer
Duration5 months
ClientDTC Fashion Brand
StackNext.js, Stripe, PostgreSQL, Tailwind CSS
E-commerce platform product listing page with modern grid layout

The challenge

A direct-to-consumer fashion brand was losing 35% of mobile shoppers at checkout due to a slow, monolithic Shopify theme. Page loads averaged 6.2 seconds on mobile, the cart experience was clunky, and the brand couldn't customize the shopping experience to match their premium positioning. They needed a performant, fully custom storefront without sacrificing Shopify's inventory and order management.

The approach

I built a headless architecture using Next.js App Router as the frontend, connected to Shopify's Storefront API for product data and Stripe for payments. The separation of concerns gave the brand full creative control while keeping inventory management familiar for their operations team.

Key architectural decisions:

  • Incremental Static Regeneration (ISR) — product pages revalidate every 60 seconds, delivering static-site speed with dynamic pricing accuracy
  • Edge-optimized cart — cart state managed via Vercel Edge Config and cookies, eliminating round trips to origin servers
  • Stripe Payment Element — PCI-compliant checkout with Apple Pay, Google Pay, and buy-now-pay-later support out of the box
  • Image pipeline — automatic WebP/AVIF conversion with responsive srcsets, reducing image payload by 62%
  • Predictive prefetching — viewport-based link prefetching loads the next likely page before the user clicks

The outcome

  • 2.1-second Largest Contentful Paint (down from 6.2s)
  • 3.2% conversion rate (up from 1.9%, a 68% improvement)
  • $320K monthly gross merchandise value
  • 62% reduction in image payload size
  • Cart abandonment rate dropped from 78% to 52%
  • 100/100 Lighthouse performance score on product pages

Technical highlights

The storefront serves 45,000+ monthly visitors with an average server response time of 43ms thanks to Vercel's Edge Network. Product search uses a custom Algolia integration with typo tolerance and faceted filtering. The entire JavaScript bundle is 89KB gzipped — achieved by avoiding client-side state management libraries in favor of React Server Components and URL-based state.

SEO was a first-class concern: every product page has structured data (Product + BreadcrumbList + AggregateRating schema), dynamic OG images generated at build time, and a programmatic sitemap that updates with inventory changes.

Like what you see?

Have a project I could help with? Let's talk.

Get in touch