BoilerPrompt
Cursor

Cursor prompt for a testimonial section

Use this in Cursor to add a testimonial wall to a repo's landing page while touching at most three files. The desktop layout is a dense-packed quote grid under a featured blockquote; mobile swaps the same markup into a scroll-snap row with no carousel library. Style, palette, typography, and motion come from the customizer dropdowns.

Last updated

Prompt
In this repo, add a testimonial wall section to the {{product}} landing page for {{audience}}. Treat "carousel" as the mobile fallback only — the desktop presentation is a static grid of attributed quotes. The change should touch three things at most: a new section component, a new data file, and one insertion in the page that composes sections.

Where things go:
- Component next to the existing section components, following their naming and export style.
- Testimonial entries in a typed data file — or the repo's CMS/content layer if one exists; check for a content/ or lib/data pattern first and follow it.
- Do not modify sibling sections, shared layout, or global styles. If the repo has a Card primitive, compose it instead of writing new card CSS.

Section structure: an h2 making one concrete claim about results with {{product}}; a featured blockquote at display size with cite-level attribution; then a 3-column grid of eight quote cards, using CSS columns or dense grid auto-flow so mixed-length quotes pack tightly instead of leaving equal-height gaps. Render a logos row only if the data file provides logos. End with a text link labeled "{{cta}}" that reuses the page's primary CTA target.

Quote copy: rewrite any placeholder testimonials as specific, outcome-bearing statements from plausible roles inside {{audience}} — each names a task {{product}} changed and how. Forbid superlatives without evidence. Every card needs name, role, and company.

Visual direction:
{{style}}

Palette: {{palette}}
Typography: {{type}}
Motion: {{motion}}

Spacing: adopt the vertical padding token neighboring sections use; 1.5rem grid gap; give the featured quote double that gap below it. Below the md breakpoint, swap the grid for an overflow-x scroll-snap row of the same cards — one viewport-wide card per snap stop, same markup, no carousel library.

Run the dev server after applying the diffs and check: the page composes with the new section in place and siblings unchanged; the packing shows no large vertical holes; mobile swipes through cards with snap stops; the "{{cta}}" link resolves to the hero's target; typecheck and lint pass.

Customize it

Runs in your browser. Nothing you type here is sent anywhere.

Your customized prompt
In this repo, add a testimonial wall section to the a project management SaaS landing page for engineering managers at startups. Treat "carousel" as the mobile fallback only — the desktop presentation is a static grid of attributed quotes. The change should touch three things at most: a new section component, a new data file, and one insertion in the page that composes sections.

Where things go:
- Component next to the existing section components, following their naming and export style.
- Testimonial entries in a typed data file — or the repo's CMS/content layer if one exists; check for a content/ or lib/data pattern first and follow it.
- Do not modify sibling sections, shared layout, or global styles. If the repo has a Card primitive, compose it instead of writing new card CSS.

Section structure: an h2 making one concrete claim about results with a project management SaaS; a featured blockquote at display size with cite-level attribution; then a 3-column grid of eight quote cards, using CSS columns or dense grid auto-flow so mixed-length quotes pack tightly instead of leaving equal-height gaps. Render a logos row only if the data file provides logos. End with a text link labeled "start a free trial" that reuses the page's primary CTA target.

Quote copy: rewrite any placeholder testimonials as specific, outcome-bearing statements from plausible roles inside engineering managers at startups — each names a task a project management SaaS changed and how. Forbid superlatives without evidence. Every card needs 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: adopt the vertical padding token neighboring sections use; 1.5rem grid gap; give the featured quote double that gap below it. Below the md breakpoint, swap the grid for an overflow-x scroll-snap row of the same cards — one viewport-wide card per snap stop, same markup, no carousel library.

Run the dev server after applying the diffs and check: the page composes with the new section in place and siblings unchanged; the packing shows no large vertical holes; mobile swipes through cards with snap stops; the "start a free trial" link resolves to the hero's target; typecheck and lint pass.

Same task in other tools

Questions about this prompt

My landing page pulls content from a CMS — where do the quotes go?

The prompt tells Cursor to check for a content layer first and follow it, so quotes should land in your CMS schema or content directory rather than a hardcoded array. If Cursor hardcodes them anyway, reply with the path to an existing content model as the pattern to copy.

What does "touching at most three files" guard against?

Scope creep — agents sometimes "improve" shared layout or global CSS while adding a section, which is how unrelated pages break. Component, data, and one page insertion make a reviewable diff; if the diff lists more files, inspect the extras before accepting.

Can this replace the plain logo-grid section I have now?

Yes — have Cursor remove the old section in the same diff and supply logos in the data file so this section's logos row keeps the brand signal. Attributed quotes with a logo strip beneath outperform logos alone, because they add the why to the who.

Part of the Cursor landing-page cluster — start from the main Cursor landing page prompt.

Related prompts