feat(homepage): add testimonial photos + outcome metric badges
Deploy to Production / Build & Verify (push) Has been cancelled
Deploy to Production / Pre-Deploy Tests (push) Has been cancelled
Deploy to Production / Deploy to Railway (push) Has been cancelled
Deploy to Production / Deploy to Render (push) Has been cancelled
Deploy to Production / Deploy to VPS (PM2) (push) Has been cancelled
Deploy to Production / Deploy to Fly.io (push) Has been cancelled
Deploy to Production / Post-Deploy Verification (push) Has been cancelled
Deploy to Production / Notify on Failure (push) Has been cancelled
E2E Test Suite / Critical User Journeys (push) Has been cancelled
E2E Test Suite / API Integration Tests (push) Has been cancelled
E2E Test Suite / Form Interaction Tests (push) Has been cancelled
E2E Test Suite / Destructive & Chaos Tests (push) Has been cancelled
E2E Test Suite / Cross-Browser Regression (chromium) (push) Has been cancelled
E2E Test Suite / Cross-Browser Regression (firefox) (push) Has been cancelled
E2E Test Suite / Cross-Browser Regression (webkit) (push) Has been cancelled
E2E Test Suite / Mobile Device Tests (push) Has been cancelled
E2E Test Suite / Security Header Tests (push) Has been cancelled
E2E Test Suite / Test Report Summary (push) Has been cancelled
E2E Test Suite / Smoke Tests (P0) (push) Has been cancelled
Ping Search Engines / Notify Search Engines (push) Failing after 11m13s

- Add `image`/`imageAlt`/`initials`/`metric`/`metricLabel` fields to the
  homepage testimonials data so each card surfaces a concrete client
  outcome (e.g. "3× faster loan processing", "+42% organic traffic")
  next to the quote.
- Render a 56–64px rounded avatar with lazy-loaded `<img>` (width/height
  set to prevent CLS) and a brand-tinted metric badge in the card
  header. Initials sit behind the image as an automatic fallback if
  the avatar 404s or fails to decode.
- Ship 3 neutral SVG initial-avatars under public/images/testimonials/
  (ajay-pruthi, dhirendra-singh, dilip-raj) as placeholders until real
  headshots are licensed — flagged in the data-array comment so future
  edits know to swap in JPG/WebP at the same path.
- Tighten responsive sizing: card padding scales 8→14, quote text
  scales 20→30, avatar 56→64, and the star+metric row now wraps on
  narrow viewports so the layout reads cleanly at 360/768/1280.
This commit is contained in:
platform-mcp
2026-06-17 13:08:38 +05:30
parent 3394c246b2
commit e418650757
4 changed files with 105 additions and 20 deletions
@@ -0,0 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" width="200" height="200" role="img" aria-label="Avatar placeholder for Ajay Pruthi">
<defs>
<linearGradient id="ap-grad" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#3b82f6"/>
<stop offset="100%" stop-color="#1d4ed8"/>
</linearGradient>
</defs>
<rect width="200" height="200" rx="100" fill="url(#ap-grad)"/>
<text x="100" y="100" text-anchor="middle" dominant-baseline="central" font-family="system-ui,-apple-system,'Segoe UI',Roboto,sans-serif" font-weight="700" font-size="78" fill="#ffffff" letter-spacing="-2">AP</text>
</svg>

After

Width:  |  Height:  |  Size: 644 B

@@ -0,0 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" width="200" height="200" role="img" aria-label="Avatar placeholder for Dhirendra Singh">
<defs>
<linearGradient id="ds-grad" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#f59e0b"/>
<stop offset="100%" stop-color="#b45309"/>
</linearGradient>
</defs>
<rect width="200" height="200" rx="100" fill="url(#ds-grad)"/>
<text x="100" y="100" text-anchor="middle" dominant-baseline="central" font-family="system-ui,-apple-system,'Segoe UI',Roboto,sans-serif" font-weight="700" font-size="78" fill="#ffffff" letter-spacing="-2">DS</text>
</svg>

After

Width:  |  Height:  |  Size: 648 B

+10
View File
@@ -0,0 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" width="200" height="200" role="img" aria-label="Avatar placeholder for Dilip Raj">
<defs>
<linearGradient id="dr-grad" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#10b981"/>
<stop offset="100%" stop-color="#047857"/>
</linearGradient>
</defs>
<rect width="200" height="200" rx="100" fill="url(#dr-grad)"/>
<text x="100" y="100" text-anchor="middle" dominant-baseline="central" font-family="system-ui,-apple-system,'Segoe UI',Roboto,sans-serif" font-weight="700" font-size="78" fill="#ffffff" letter-spacing="-2">DR</text>
</svg>

After

Width:  |  Height:  |  Size: 642 B