Bolt prompt for a testimonial section
A Bolt prompt that scaffolds a testimonial wall from a twelve-entry data file, with a falsifiable headline claim and a no-autoplay mobile carousel. The ragged masonry edge is deliberate — equal-height cards are what make proof sections look fabricated. The customizer swaps the style, palette, typography, and motion lines for you.
Last updated
Add a social-proof section — a testimonial wall — to the {{product}} landing page in this Bolt project, positioned between how-it-works and pricing. Desktop gets a static wall {{audience}} can read without interacting; only mobile degrades to a carousel.
Project wiring: create src/components/TestimonialWall and src/data/testimonials.ts. The data module exports twelve entries ({quote, name, role, company, featured?}) plus a logos array; the component renders whatever the data contains, so the wall grows by editing one file. Keep an eye on the instant preview as you go.
Render order inside the section:
1. An h2 stating the aggregate proof — "[N] teams shipped faster with {{product}}" territory; derive the claim from the product and keep it falsifiable.
2. Featured pull-quote: the single entry flagged featured: true, set much larger than body text, attribution on its own line.
3. The wall: the remaining eleven entries in a masonry arrangement (CSS columns is fine) across three columns, cards at natural height. Do not equalize heights — the ragged edge is what makes it read as a wall.
4. Logos strip: one row of reduced-contrast marks with an aria-label naming the companies.
5. A right-aligned link reading "{{cta}}" as the section's exit action.
Copy rules for the twelve quotes: written for {{audience}}, at least five must contain a number or timeframe, none may exceed 45 words, and every attribution needs all three of name, role, and company.
Visual direction:
{{style}}
Palette: {{palette}}
Typography: {{type}}
Motion: {{motion}}
Spacing: 6rem section padding; 3rem between the featured quote and the wall; 1.5rem column gap. Under 768px, hide the multi-column wall and show a scroll-snap carousel of the same cards — one per screen, swipe-driven, never autoplaying.
Verify in the preview: cards show ragged masonry heights on desktop; exactly one featured quote renders; five or more quotes contain numbers; the mobile carousel snaps and never advances on its own; deleting an entry from testimonials.ts removes a card without breaking layout.Customize it
Runs in your browser. Nothing you type here is sent anywhere.
Add a social-proof section — a testimonial wall — to the a project management SaaS landing page in this Bolt project, positioned between how-it-works and pricing. Desktop gets a static wall engineering managers at startups can read without interacting; only mobile degrades to a carousel.
Project wiring: create src/components/TestimonialWall and src/data/testimonials.ts. The data module exports twelve entries ({quote, name, role, company, featured?}) plus a logos array; the component renders whatever the data contains, so the wall grows by editing one file. Keep an eye on the instant preview as you go.
Render order inside the section:
1. An h2 stating the aggregate proof — "[N] teams shipped faster with a project management SaaS" territory; derive the claim from the product and keep it falsifiable.
2. Featured pull-quote: the single entry flagged featured: true, set much larger than body text, attribution on its own line.
3. The wall: the remaining eleven entries in a masonry arrangement (CSS columns is fine) across three columns, cards at natural height. Do not equalize heights — the ragged edge is what makes it read as a wall.
4. Logos strip: one row of reduced-contrast marks with an aria-label naming the companies.
5. A right-aligned link reading "start a free trial" as the section's exit action.
Copy rules for the twelve quotes: written for engineering managers at startups, at least five must contain a number or timeframe, none may exceed 45 words, and every attribution needs all three of name, role, and company.
Visual direction:
Minimal dark style. Near-black canvas (#0A0A0B) with one elevated surface tone (#141416) for cards — never more than two surface steps. Hairline borders (1px, white at 8% opacity) instead of shadows; if a shadow is unavoidable use 0 1px 2px rgba(0,0,0,0.4) and nothing softer. Text in exactly three steps: white at 92% for headings, 60% for body, 40% for captions. Generous negative space — section padding at least 120px on desktop, 64px on mobile. The accent color appears only on interactive elements and one hero highlight, nowhere else.
Palette: a strict neutral ramp (white, #F5F5F5, #E5E5E5, #737373, #171717) carries the entire interface; pick one accent and use it only for primary CTAs, active states, and a single hero highlight. If the accent appears more than five times per viewport it stops being an accent. Keep semantic colors (success, error) desaturated so the accent stays in charge.
Typography: one geometric sans (a Futura/Poppins-class face) at three weights maximum (400/500/700). Scale: 64-88px hero, 32px section heads, 18px lede, 16px body, 13px caps labels with 0.08em tracking. Tight headline leading (1.05-1.1), relaxed body (1.6). Let the geometry carry the personality — no italics; weight and size do all hierarchy.
Motion: none. Zero scroll animations, zero entrance effects — the page is fully composed the instant it paints. Spend the motion budget on input feedback instead: 120-150ms ease-out color and transform transitions on hover and press states only. Hold this constraint absolutely; it is a statement, not an omission.
Spacing: 6rem section padding; 3rem between the featured quote and the wall; 1.5rem column gap. Under 768px, hide the multi-column wall and show a scroll-snap carousel of the same cards — one per screen, swipe-driven, never autoplaying.
Verify in the preview: cards show ragged masonry heights on desktop; exactly one featured quote renders; five or more quotes contain numbers; the mobile carousel snaps and never advances on its own; deleting an entry from testimonials.ts removes a card without breaking layout.Same task in other tools
Questions about this prompt
Why twelve entries when only eleven appear on the wall?
One entry is flagged featured and renders as the large pull-quote, leaving eleven for the wall. Because the split is data-driven, promoting a different quote is a one-word edit — move the featured flag and Bolt's preview updates instantly.
The masonry reads down each column instead of across — is that a bug?
No — CSS columns fill top to bottom per column, and that order is acceptable for testimonial scanning, where nobody reads sequentially. If you want row-major order, ask Bolt to switch to a grid with dense auto-flow and accept a slightly less ragged edge.
Why does the prompt ban autoplay on the mobile carousel?
Autoplaying testimonials move text while people are reading it, which is the fastest way to make proof feel like advertising. Swipe-driven snap scrolling lets the reader set the pace, and it's easier to test because nothing changes without input.
Don't have Bolt yet? This link may be an affiliate link; it never changes what you pay.
Try BoltPart of the Bolt landing-page cluster — start from the main Bolt landing page prompt.