Testimonials with photo and video

A section of past-customer quotes, photos or videos, in one consistent card so mixed formats still read as a set.

What it is

Three layout variants sharing the same chrome: text-only, photo with quote, and a video embed supporting YouTube, Vimeo or a direct file. Photo aspect ratio is per-testimonial, with auto meaning no crop and named presets forcing a shape so a grid lines up.

Also called: customer reviews on my quote · video testimonial · social proof

See it
Testimonials with photo and video
🔒ridgelinepostframe.com/project/testim692
40×64 Shop
Framing · on schedule
A three-up row mixing a video card, a photo-quote card and a text card at equal height. src/components/client-portal/TestimonialCard.tsx. Sample data — no customer information appears here.
How it works
  1. 1Testimonials come from the shared pool via /api/client-portal/config
  2. 2Aspect values are validated against a known list before use
  3. 3YouTube and Vimeo urls are converted to embed urls by pattern
  4. 4A failed photo or video silently falls back to text-only rather than showing a broken image
Why we built it

Social proof lived on the builder's website, which the buyer had already left by the time they were looking at a price. Photo and video testimonials sit on the quote itself, in their own section rather than nested inside a why-us block nobody scrolled to. A missing or malformed video never puts a broken-image icon on the page — on a document being used to close a sale, that is worse than showing nothing at all.

The problem
  • Proof living somewhere other than the document that closes the deal
  • Mixed media formats making a section look untidy
  • Broken media surfacing to a buyer
Sound familiar?
What you get
Photo, video and text testimonials sit in one coherent row
A bad media url degrades quietly instead of embarrassing the builder

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →