Testimonials Section
Collect real customer quotes with attribution and show them on your public pages.
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
What your agent is told to do
5-
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
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
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
Design the card to look right with no photo and no company logo. The photo is the optional part, not the layout.
-
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
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
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
Newsletter Archive
Newsletter Archive
Turn sent email issues into browsable web pages that new readers can find and read.
What it does
A public archive of past newsletter issues, each with its own permanent page and a subscribe path.
How it works
- 1 Store the sent version of each issue rather than regenerating it. An archive built by re-rendering a template will drift the moment the template changes, and old issues will stop matching what subscribers actually received.
- 2 Convert the email markup to web markup on the way in: strip the table scaffolding, the fixed pixel widths, and the inline styles that only exist to survive an email client, and render the result in the app's normal article styles.
- 3 Reuse the app's existing publishing states rather than adding a second one. An issue should move from sent to archived through the same Draft and Publish States machinery the rest of the content uses.
Copy the prompt
No account needed
Add this feature to my app:
https://addthisfeature.com/x/newsletter-archive
Help Center
Help Center
Give customers a searchable help site they can read before they open a support ticket.
What it does
A public help site of articles grouped into collections, with search, browse, and a contact fallback.
How it works
- 1 Treat the article as the single source of help content. If the app already has Contextual Help, Knowledge Base Chat, or an AI knowledge base drafting flow, point them at these same records rather than keeping a second copy of the answers that will drift.
- 2 Index articles into the app's existing search rather than standing up a separate search box with its own ranking. Extend Global Search and reuse the existing match highlighting so a result looks the same wherever it appears.
- 3 Give every article a stable slug and every collection an ordered list of articles, and show breadcrumbs from the collection down to the article so a visitor who landed from search knows where they are.
Copy the prompt
No account needed
Add this feature to my app:
https://addthisfeature.com/x/help-center
Blog
Blog
Publish articles from inside the app to public pages with authors and categories.
What it does
A blog with authored posts, categories, scheduling, and public article and index pages.
How it works
- 1 Scope this honestly. The minimum coherent version is a post with a title, body, author, category, publish state, and a public page at a stable URL, plus an index and a feed. Defer multi-language content, per-post custom layouts, and a general page builder rather than half-building them.
- 2 Do not build a new editor. Extend the app's existing Rich Text Editor or Markdown Editor with whatever a post needs, and inherit its autosave, unsaved-change warning, and undo instead of reinventing them.
- 3 Reuse the app's existing Draft and Publish States and Scheduled Publishing rather than adding a second publish workflow for posts. Reuse SEO Setup for titles, descriptions, and social previews.
Copy the prompt
No account needed
Add this feature to my app:
https://addthisfeature.com/x/blog
How it works
-
1
Copy the link
Grab the Markdown instruction URL for this feature.
-
2
Give it to your AI
Paste it into Claude Code, Cursor, v0, Lovable — whatever you build with.
-
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.