AddThisFeature

Testimonials Section

Collect real customer quotes with attribution and show them on your public pages.

moderate Content & Publishing

What it adds

A store of customer quotes with name, role, photo, and rating, plus a section that renders them on public pages.

What your agent is told to do

5
  1. 1

    Record consent as a field on the testimonial, along with when and how it was given, and refuse to publish a quote that does not have it.

  2. 2

    Route submitted testimonials through the app's existing moderation queue rather than publishing them on arrival. Reuse the existing text moderation and image moderation checks if the app has them.

  3. 3

    Reuse the app's existing avatar and image upload path for the photo and logo, including its size and type limits and its stored variants. Do not add a second upload endpoint with different rules.

  4. 4

    Design the card to look right with no photo and no company logo. The photo is the optional part, not the layout.

  5. 5

    Do not build a general-purpose slider. If the quotes fit, render them as a static grid, and only add rotation when there are genuinely more testimonials than the page can show.

Edge cases it handles

8
  • A quote published without recorded consent from the named person is a legal problem, not a content problem. Publication must be blocked until consent is present and attributable.
  • A missing avatar or company logo leaves a ragged row. Fall back to a consistent placeholder at the same reserved dimensions so the layout does not shift or gap.
  • Very long quotes must truncate at a sensible length with an expand control that reveals the rest in place, not a modal and not a link to another page.
  • If the section rotates, it must pause on hover, on keyboard focus, and when reduced motion is requested, and every quote must be reachable without waiting for the rotation.
  • A withdrawn testimonial has to disappear everywhere. Removing the record must invalidate any cached page, static build, or feed that included it, and that must be verified rather than assumed.
  • Star ratings need an accessible text equivalent, because a row of icons tells a screen reader nothing.
  • Photos supplied by customers arrive at wildly different crops. Normalise them to one shape server-side rather than squashing them with CSS.
  • A public submission form invites spam. Rate limit it, and never render unmoderated content, including in a preview visible to anyone but the author.

Definition of done

9
  • A testimonial cannot be published without a recorded consent entry.
  • Submitted testimonials land in the existing moderation queue before they are visible.
  • Cards render correctly with a photo, without a photo, and with a very long quote.
  • Rotation pauses on hover, on focus, and under reduced-motion preferences.
  • Removing a testimonial clears it from every public page and cached rendering.
  • Ratings expose a text equivalent to assistive technology.
  • Photos are uploaded through the app's existing image pipeline and limits.
  • The feature matches the existing design system.
  • No existing functionality is broken.

Related features

How it works

  1. 1

    Copy the link

    Grab the Markdown instruction URL for this feature.

  2. 2

    Give it to your AI

    Paste it into Claude Code, Cursor, v0, Lovable — whatever you build with.

  3. 3

    It inspects, then implements

    Your agent reads your existing app first, then adds the feature to fit it.

Works with your stack

These instructions are written to adapt. They tell the agent to detect your framework, match your existing design system, and reuse what you already have — rather than assuming a particular stack.

Need it tighter than that? Customize the feature and tell it exactly what you're running.