Layout
Grid
Two balanced columns on desktop, one on mobile. The default, and the best fit for a landing-page proof section.
testimonial collection
A PraiseHarbor testimonial widget is one iframe. Paste it into any site — a static page, WordPress, Webflow, Framer, a React app — and it renders the approved stories for that space. Change the layout or the accent in the wall builder and every page carrying the widget updates, with no redeploy.
The wall builder shows the exact snippet for your space with a copy button. Replace the address below with your own space slug, or copy it from the product.
Every layout draws from the same approved stories. Switching is a click in the wall builder, not a new embed code.
Layout
Two balanced columns on desktop, one on mobile. The default, and the best fit for a landing-page proof section.
Layout
A single narrow column. Best when the stories are long or the widget sits in a sidebar.
Layout
A horizontally scrollable row of fixed-width cards. Best for a compact strip between page sections.
Copy the exact snippet for your space from the wall builder, or adapt this one.
<iframe
src="https://www.praiseharbor.com/embed/your-space"
title="Customer stories"
loading="lazy"
style="width:100%;min-height:680px;border:0"
></iframe>Useful search results start with an accurate promise. These limits apply today, in the shipped product.
No. It is a single iframe element. Nothing is added to your JavaScript bundle, and there is nothing to keep up to date.
The snippet uses native lazy loading, so the browser defers it until it is close to the viewport, and it loads in its own frame rather than blocking your page.
Only the approved public fields: name, role, company, the story, the rating, whether it is featured, and the submission date. Email addresses, the consent sentence, owner identifiers, and moderation history are never sent to the browser.
No. The snippet points at your space, and the space holds the settings. Change the layout, accent, headline, or toggles and every page carrying the widget reflects it on the next load.