Back to Case Studies
Dhaga.org2024

Crafting a Performance-First Fashion Brand Experience

Frontend Developer

Next.js 14TypeScriptTailwind CSSSSGPerformance

Dhaga is a fashion brand that needed their digital presence to match the elegance of their physical products. The challenge wasn't building features — it was exercising restraint. Every kilobyte matters when your audience is browsing on mobile networks in India. I built a site that loads instantly, looks stunning, and uses almost nothing.

Where Less Is More

Fashion websites typically suffer from performance bloat — heavy JavaScript frameworks, unoptimized high-resolution images, and complex animations that destroy mobile performance. Dhaga's audience primarily browses on mobile in bandwidth-constrained environments. The brand needed visual impact without the technical weight.

1

Target audience browses primarily on mobile with variable network speeds

2

Fashion photography demands high-quality images that typically bloat page weight

3

Previous site had poor mobile Lighthouse scores affecting organic discovery

4

Brand perception requires a premium feel — can't look like a template site

Minimal Dependencies, Maximum Impact

I adopted a constraint-driven design philosophy: what's the absolute minimum technical surface area needed to deliver a premium fashion brand experience? Every library had to justify its weight. The answer was 6 dependencies total.

Static Site Generation (SSG)

Pre-rendered every page at build time. Zero server compute, zero cold starts. Deployed to CDN edge nodes for instant global delivery.

Next.js Image Optimization Pipeline

Leveraged Next.js Image component for automatic WebP conversion, responsive srcset generation, and lazy loading with blur placeholders from fashion photography.

Route-Based Code Splitting

Automatic route splitting ensures visitors only download JavaScript for the page they're viewing. Gallery code doesn't load until the gallery is visited.

Lightbox with Preloading

yet-another-react-lightbox handles full-screen gallery viewing with adjacent image preloading — the next image loads while you're viewing the current one.

System Architecture

Interactive architecture map — click any node to trace its connections.

Data Flows (click a node to filter)

Next.js 14 (SSG)Build-time optimizationImage Optimization
Image OptimizationWebP + srcsetCDN Edge Nodes
CDN Edge NodesPreloaded deliveryGallery Lightbox
Next.js 14 (SSG)Static HTML deployCDN Edge Nodes
frontendbackenddatabaseserviceexternalai

Designing Under Constraints

Building a performance-first site isn't about adding things — it's about having the discipline to not add things. Every feature request was weighed against its performance cost.

Week 1: Design System

Established Tailwind utility patterns, responsive breakpoints, and typography scale. No component library — just Tailwind utilities and custom CSS where needed.

Week 2: Image Pipeline

Configured the Next.js Image optimization pipeline. Tested various quality/size tradeoffs until finding the sweet spot for fashion photography on mobile.

Week 3: Gallery & Interactions

Integrated the lightbox with preloading strategy. Added subtle CSS transitions for hover states — no JavaScript animation library needed.

Week 4: Performance Audit & Launch

Ran Lighthouse audits, fixed remaining CLS issues, optimized LCP with priority image loading, and deployed to CDN with perfect scores.

Elegance Through Simplicity

The final site proves that the best performance optimization is not needing the thing in the first place. Six dependencies, perfect scores, zero ongoing server costs.

Perfect Lighthouse performance on mobile — 100/100 across all metrics

Full-screen fashion photography gallery with seamless preloading between images

Responsive design that feels premium on every screen size (mobile-first)

Zero server costs — entire site served from CDN edge nodes globally

Only 6 runtime dependencies — minimal maintenance surface and zero security vulnerabilities

Performance as a Feature

When your site loads instantly on a 3G connection in rural India, that IS the feature. The brand's digital experience finally matches the quality of their physical products.

100
Lighthouse Performance Score
25%
Faster time-to-interactive
6
Total runtime dependencies
₹0
Monthly server costs (static CDN)

What I Took Away

The best dependency is no dependency

Every npm package is a maintenance burden, security surface, and bundle weight. For a content site, vanilla CSS transitions beat Framer Motion. Tailwind utilities beat component libraries.

SSG is underrated for brand sites

Fashion brands don't need real-time data. Static generation gives you perfect caching, zero server costs, and the fastest possible time-to-first-byte. It's the obvious choice once you stop defaulting to SSR.

Image optimization is the highest-ROI performance work

For an image-heavy fashion site, proper srcset, WebP conversion, and lazy loading with blur placeholders delivered more performance improvement than any code optimization could.

Tech Stack

Framework

Next.js 14.2React 18TypeScript 5

Styling

Tailwind CSS 3clsxtailwind-merge

Gallery

yet-another-react-lightbox

Deployment

Static CDNSSG Export
Next Case Study

Building an Animation-Rich Financial Services Platform on Next.js 15

Dhan Orbis Capital2024

Want to build something like this?

I'm available for high-impact product engineering work.

Let's Talk