build69
build69  /  Components  /  Marketing Sections  /  Testimonials

Testimonials

v1.0.22Updated 19 Oct 2026

Social-proof section showing customer quotes, ratings and logos. Copy-paste block; baked-in demo content (edit the JSX to customise).

Preview

Live · 12 stories
▸Why this is recommendedtestimonialssocial-proofreviewsquotes+3

Testimonials — grid.

Recommended for+14
  • ✓Landing pages
  • ✓Marketing pages
  • ✓Product pages
Tags+6
testimonialssocial-proofreviewsquotesmarketingsectiongrid
Features+4
  • Grid, single-large, marquee, carousel and with-logos layouts
  • Quote + author + avatar
  • testimonials is the one prop that drives every layout, and it defaults to [] - a quote attributed to a named person at a named company is a claim about a third party, so we ship none rather than an endorsement nobody gave (condo69 fb_bc8045e2 / fb_f8fba1de)
  • logos defaults to [] too: the Stripe / Linear / Notion / Vercel wall implied they were the consumer customers, and those are marks the consumer has no licence for. No logos, no strip
  • Every block renders correctly for 0, 1, 2 and many quotes - the blocks that used to index TESTIMONIALS[1] positionally no longer produce an undefined card
  • With no quotes a block keeps its heading, eyebrow and subcopy and shows labels.emptyTestimonials
  • A logo with no href is a plain mark, never a dead link; linkComponent routes the ones that have one through the host router (fb_bf7dc63a)
Not recommended for−2
  • ✕In-app screens

Install

Ask your agent, or call the MCP tool directly. The resolved bundle is written into your project.

get_registry_item({ name: "Testimonials" })

Usage

import { TestimonialsGrid } from '@/components/sections/testimonials';

<TestimonialsGrid />

Tick variants in the left menu — each adds a tab with that variant’s real story source, the same code the preview above renders.

Props

PropTypeRequired
className

Optional wrapper class override

string—
labels

Override every built-in display string across the testimonials family (eyebrows, headings, subcopy, the social-proof stat and its caption, aria-labels) for i18n or white-labelling. Merged over DEFAULT_TESTIMONIALS_LABELS.

Partial<TestimonialsLabels>—
testimonials

The quotes to show: [{ quote, name, role?, company?, rating?, avatarUrl?, brand? }]. One prop drives every layout. Defaults to [] - an endorsement is a claim about a named third party, so a vendored copy shows labels.emptyTestimonials rather than praise nobody wrote. MCP feedback fb_bc8045e2 / fb_f8fba1de.

Testimonial[]—
logos

Customer marks for the TestimonialsWithLogos wall. Defaults to [] and the strip is omitted entirely, rather than showing other companies marks under a trusted-by framing. A logo with no href renders as a plain mark.

TestimonialLogo[]—
linkComponent

The host app link component for the logo-wall anchors, the only anchors this family renders. Defaults to a plain anchor, which in a routed app reloads the whole document (fb_bf7dc63a).

TestimonialsLinkComponent—

Related