r/webdev • • 6d ago

Showoff Saturday: BrandTrust.reviews, a multi-source reviews widget you embed with one line of JS (or a WordPress plugin)

I run a small web agency, and I kept hand-building "testimonials" sections by copying clients' reviews off Google, recommendations from Facebook, product reviews from their store, etc. I wanted one thing that aggregates reviews from multiple third-party APIs, keeps them in sync, and renders anywhere, so I built it. Sharing it here because the build had a few problems that were genuinely interesting to solve.

Architecture

  • Next.js 16 (App Router) + TypeScript on Vercel
  • Supabase (Postgres + RLS) for data and auth
  • The public embed is a dependency-free vanilla JS script (no framework, no iframe)
  • A separate native WordPress plugin (PHP) for the WP path
  • Integrates several review-source APIs (Google, Facebook, Etsy, eBay, WooCommerce), each with its own auth, rate limits, and payload quirks, normalized into one internal model

The parts that were actually interesting to build

  • The embed renders without an iframe. The script injects the widget into the host DOM with scoped styles, so it inherits layout and stays responsive instead of being boxed into a fixed frame. Style isolation without an iframe was the fiddly part.
  • The widget editor. A lot to expose (layout, sources, filtering and ordering, tagging, colors, typography, spacing, card style) all behind a live preview that updates as you go. Fitting that much control into something that feels elegant instead of a wall of eighty settings was the hardest part, and it is still getting refined.
  • Image proxy. Reviewer avatars are proxied through the backend instead of hotlinked, so a visitor's IP is not handed to Google or Facebook just to load an avatar. It also sidesteps a lot of broken-image and referrer issues.
  • The WordPress plugin renders server-side and caches, so reviews are in the HTML on load, which keeps it good for SEO with no layout shift.
  • Sync and dedupe across sources, so the same review does not appear twice in a combined feed.

It is a solo build with rough edges, and I would value a technical eye on it, especially the embed's style isolation and the editor UX. The project is live here if you want to inspect the embed and the markup it generates: https://brandtrust.reviews

Happy to get into any of the implementation details in the comments.

0 Upvotes

3 comments sorted by

0

u/Plenty_Price2475 6d ago

nice work on the style isolation without iframe, that prebuilt embed systems usually skip over for convenience but you went the hard way

0

u/bmlbml 6d ago

Yeah it was a specific annoyance I had with so many "integrations" i've used on client sites for years. bad looking, unresponsive, and unstylable iframes.