Case study · Bazaar Technologies

Web performance for the rest of the world.

How we took Bazaar's flagship app from failing Core Web Vitals to Passed — and grew organic search from zero to 156K total clicks — under Pakistani 3G/4G network conditions.

Senior Software Engineer · Bazaar Technologies

Core Web Vitals (CrUX)Passed
Lighthouse Performance92
LCP cut40%
Total organic clicks156K
Monthly impressions11.2M
CDN cost reduction$5,400/yr

Context

Bazaar is Pakistan's largest B2C grocery platform — 100k+ active web users, 1M+ Android downloads. Most of those users are not on US-fiber. They're on Pakistani 3G and entry-level 4G, on mid-range Android phones. The benchmark that mattered wasn't a synthetic Lighthouse run — it was field-measured Core Web Vitals from CrUX.

When we started, CWV was failing. Imagery was unoptimized, CDN caching ran on defaults, organic search was effectively zero. Two of us on the web side took ownership of fixing it.

The work

Image pipeline

The biggest LCP win. We moved customer-facing imagery through a Next.js Image pipeline backed by S3 + CloudFront — format-appropriate variants (WebP / JPEG) and width-appropriate sizes for the actual breakpoints we serve. Same CDN ended up serving the optimized variants to the Android app too.

Viewport-aware lazy loading

Below-the-fold imagery — category tiles, recommendation shelves — moved to lazy loading. On slow connections this isn't about eventual bytes; it's about not blocking LCP behind content the user won't see for another two seconds anyway.

CDN tuning

Default CloudFront caching wasn't cutting it. TTLs + cache-control per asset type, aggressive caching for hot imagery and shared bundles, origin shielding so an uncached request didn't cascade. CDN bill came down ~$450/month — close to $5,400/year.

SEO foundations

Once the site was actually fast, the SEO basics had something to work with: structured product data, metadata hygiene, canonical URLs, sitemap reflecting the real category tree. Google rewards this slowly — but the curve was unmistakable once it kicked in.

The receipts

Screenshots from the actual tools — Lighthouse, Search Console, and PageSpeed Insights' CrUX report — for bazaarapp.com:

Lighthouse report for bazaarapp.com — Performance 92, Accessibility 92, Best Practices 96, SEO 92
Lighthouse — Performance 92, Accessibility 92, Best Practices 96, SEO 92.
PageSpeed Insights / CrUX report for bazaarapp.com on mobile — Core Web Vitals: Passed
CrUX, mobile — Core Web Vitals: Passed. LCP 2.2s, INP 169ms, CLS 0.01. Field-measured on real users, not a synthetic test.
PageSpeed Insights / CrUX report for bazaarapp.com on desktop — Core Web Vitals: Passed
CrUX, desktop — same story. LCP 2.0s, INP 76ms, CLS 0.01.
Google Search Console for bazaarapp.com — 156K total clicks, 11.2M total impressions, 1.4% CTR, average position 7
Google Search Console — from ~0 clicks/day in early 2025 to ~1K clicks/day by Q1 2026. 156K total clicks, 11.2M impressions, average position 7.

Honest scope

I co-led this with one other engineer on the web side — the image-pipeline and CDN strategy were a shared call. I owned the Next.js Image integration end-to-end and drove the rollout to Android. I'm claiming the perf and CDN + SEO foundation work, not the whole product.

Stack

Next.js (App Router), TypeScript, NestJS BFF, AWS (S3, CloudFront, Lambda), Vercel. Web Vitals via CrUX + Lighthouse. Image pipeline: Next.js Image + sharp through CloudFront with custom cache behaviours.

Want to talk about performance work for emerging markets?

I'm open to senior frontend roles — remote, or Islamabad/Rawalpindi-based.