Back to Projects
✝️Live

Grace, OnGoing

Next.js 16React 19TypeScriptTailwind CSS 4ShopifyGraphQLZustandReact QueryAWS S3Vercel

Grace, Ongoing

A headless e-commerce storefront for a Christian apparel brand, built with Next.js 16 and Shopify's Storefront API.

Live Site: graceongoing.com

Tech Stack

  • Frontend: Next.js 16 (App Router), React 19, TypeScript
  • Styling: Tailwind CSS 4 with dark mode support
  • State: Zustand (cart) + React Query (API caching)
  • Backend: Shopify Storefront API (GraphQL), Resend (email)
  • Infrastructure: Vercel, AWS S3

Key Features

E-Commerce

  • Full product catalog with variant selection, real-time inventory, and persistent cart
  • Fuzzy search powered by Fuse.js
  • Shopify-hosted checkout with automatic redirect

Performance

  • React Server Components for fast initial loads and SEO
  • ISR with 60-second revalidation for product data
  • Native CSS animations (removed Framer Motion, reduced INP by 84%)
  • Optimized images via Next.js with AVIF/WebP formats

Developer Experience

  • Strict TypeScript throughout
  • Structured data (JSON-LD) for product SEO
  • Dynamic sitemap generation
  • Content Security Policy headers

Performance Results

MetricImprovement
INP (Shop page)2552ms → 400ms (84% reduction)
Bundle sizeRemoved 3.3MB from critical path
Lighthouse Performance95+

System Design

Hosting & Deployment

  • Vercel for hosting with automatic CI/CD from GitHub pushes
  • Vercel Analytics and Speed Insights for Web Vitals monitoring
  • Squarespace domain with DNS pointed to Vercel

Media Storage

  • AWS S3 bucket for product images and videos
  • Next.js Image component optimizes S3 assets on-the-fly (AVIF/WebP conversion, responsive sizing)
  • Cloudflare in front of S3 for CDN caching and reduced latency

Email Infrastructure

  • Resend handles transactional emails from the contact form
  • Email forwarding configured so support@graceongoing.com routes to business inbox
  • Server-side API route keeps credentials secure

Shopify Integration

  • Headless setup: Shopify manages inventory, payments, and fulfillment—Next.js handles the storefront
  • GraphQL queries fetch products, variants, pricing, and real-time stock levels
  • Cart state lives client-side (Zustand + localStorage); checkout redirects to Shopify's hosted checkout
  • No Shopify theme code—full control over UI/UX while Shopify handles the hard parts

Technical Highlights

Performance Optimization

Achieved an 84% reduction in INP (Interaction to Next Paint) by replacing Framer Motion with native CSS animations. This removed 3.3MB from the critical rendering path and improved the Shop page INP from 2552ms to 400ms, resulting in a significantly more responsive user experience.

Headless Architecture

Implemented a fully headless e-commerce solution that separates the frontend from Shopify's backend. This architecture provides complete control over the user interface while leveraging Shopify's robust e-commerce infrastructure for inventory management, payments, and order fulfillment.

Intelligent Caching Strategy

Utilized ISR (Incremental Static Regeneration) with 60-second revalidation intervals to balance fresh product data with optimal performance. Combined with React Query for client-side API caching, ensuring users see up-to-date information without sacrificing speed.

Modern Image Optimization

Leveraged Next.js Image component to automatically convert and serve images in modern formats (AVIF/WebP) with responsive sizing. S3-hosted assets are optimized on-the-fly and cached via Cloudflare CDN for minimal latency globally.

Impact

Built a production e-commerce platform that combines faith-based messaging with modern web performance. The site handles real-world traffic while maintaining 95+ Lighthouse scores, demonstrating that excellent UX and fast load times are achievable even with complex e-commerce functionality.


View Live Site | GitHub Repository