Menu

Testimonials on your site

Serve the posts you saved as testimonials as a public JSON feed and show them on your own site

The public feed

The Testimonials tab collects posts you saved from the feed. The public feed serves the same posts as JSON, so your site can show them without anyone copying quotes by hand.

The feed is off until you turn it on: saving a post never publishes it on its own. On the Testimonials tab, the Public feed card has Turn on. Once it is on, the card shows the feed's address:

https://overhear.dev/t/<KEY>.json

The key is unique to the project and is the only thing that grants access, so share the address only where you use it. Turn off makes the address answer 404 again, the same answer as an unknown key.

What the feed returns

json
{
  "project": "SeggWat",
  "testimonials": [
    {
      "text": "Switched last week and haven't looked back",
      "author": "topphamilia",
      "handle": "topphamilia",
      "source": "x",
      "url": "https://x.com/topphamilia/status/…",
      "posted_at": "2026-11-02T10:00:00Z"
    }
  ]
}
  • Saved posts only, newest first, at most 100.
  • text drops the @handles a reply opens with ("@you @yourproduct love it" reads "love it"), as X does when it shows a reply. Mentions later in the text stay.
  • source is one of x, reddit, linkedin, youtube, web, hackernews. posted_at is null when the source gave no date.

Caching and removals

Responses carry Cache-Control: public, max-age=3600 and an ETag, so fetch at most once an hour and send If-None-Match to get a 304 when nothing changed. Remove on the Testimonials tab takes a post out of the feed right away; sites that cached the feed show it until their copy is an hour old. Don't keep your own copy beyond that, or removed posts stay up.

Attribution

Always show the author's handle and link to the original post (url). X's display rules ask for it, and a quote with a name and a link reads as credible where an anonymous one reads as made up.

Prompt for your coding agent

Paste this into Claude Code, Cursor or any coding agent working on your site, with your feed address in place of the example:

text
Add a testimonials section to our site. Fetch https://overhear.dev/t/<KEY>.json
on the server at render or build time, cache it for an hour, and render each
entry in "testimonials" as a card with the text, the author's handle and a
link to "url". Removed entries disappear from the feed, so never store a copy.
No client-side JavaScript. Match the site's existing card style.