RReTestimonial
Sign inStart free
Widget Builder · WYSIWYG7 TYPES · 50+ STYLES

Drag. Tweak.
Ship in 90 seconds.

A pixel-perfect WYSIWYG canvas, a publish-versioned runtime under 30kb, custom CSS for the picky, and Proof Gap Autopilot so the right cards show on the right pages — without you ever logging in.

Homepage Carousel
wgt_8x4kQp7 · v12
SAVED
Widget type
Columns3 per row
Card radius14px
Show avatar
Show rating
Auto-rotateevery 6s
UndoRedo
DesktopTabletMobile
preview · live</> EmbedPublish v13 →
SELECTED
★★★★★

The pricing page got a 2.4× lift after we dropped in real customer cards.

SS
Sara Sheikh
Head of Product · Northbeam
★★★★★

Our SDR open rate jumped 38% once we put real quotes in the email signature.

AL
Aisha Lal
Marketing Lead · Polaris
★★★★★

Onboarding completion shot up. The proof on the welcome screen does the heavy lifting.

TW
Tom Westin
Founder · Mailtrail
7
widget types
carousel · masonry · slider · badge · avatars · list · video
50+
ready-made styles
every type ships with curated layouts
<30kb
runtime, gzipped
lazy-loaded chunks · zero CLS · zero deps
1-click
publish
immutable releases · instant rollback
Seven widget types · Fifty-plus styles

Pick a shape. Tweak the rest.

Every type ships with a curated style library — battle-tested layouts you can land on, then bend to match your brand. Or start from blank and ride the controls all the way down.

Starter+

Carousel

Auto-rotating cards with pagination dots, arrow controls, or scroll snapping. The default for above-the-fold proof.

Best for
Landing pages
Product page hero
Pricing page top
8 styles bundledOpen library →
★★★★★
★★★★★
★★★★★
POPULAR
01 · Three-up cards
★★★★★
★★★★★
★★★★★
★★★★★
02 · Edge-bleed scroll
★★★★★
★★★★★
★★★★★
03 · Tall portrait
★★★★★
★★★★★
04 · Editorial dark
05 · Pull-quote
06 · Scroll-snap rail
★★★★★
★★★★★
★★★★★
07 · Stacked deck
08 · Magazine spread
Publish · Version · Rollback

Edit live. Ship safely.

Every save is a draft. Every publish is an immutable, versioned release. If something breaks, roll back in one click — no redeploy, no propagation lag, no dev required.

Immutable releases
Each version is content-hashed and cached forever at the edge.
One-click rollback
Pin any prior version live. The site updates within seconds.
Approver workflow
Pro+ teams can require sign-off before a draft goes public.
Edge-cached
Served from 280+ POPs. Sub-50ms TTFB everywhere.
Homepage Carousel
13 versions+ New version
v13
v13 · liveLIVE
Tightened card padding, swapped accent
You
now
preview
v12
v12
Added pricing-page filter
Mira P.
2d ago
rollback ↺
v11
v11
Three-up grid, dark theme
You
5d ago
rollback ↺
v10
v10
Initial publish
Mira P.
9d ago
rollback ↺
WGT_8X4KQP7 · IMMUTABLE · CONTENT-HASHEDview all 13 →
EmbedCustom CSSJS hooksWebhookstheme.css · 47 lines
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/* Override defaults — scoped to .rt-widget */
.rt-widget {
  --rt-accent: oklch(72% 0.18 30);
  --rt-radius: 14px;
  --rt-card-shadow: 0 14px 38px -22px rgba(0,0,0,.18);
  --rt-font-display: "Plus Jakarta Sans";
}

.rt-card:hover {
  transform: translateY(-2px);
  transition: 120ms ease;
}

/* Brand-tag the source pill */
.rt-source--g2 {
  background: #FF492C;
}
compiled · 0 errors · scopedSave & preview
Custom CSS · JS hooks · Webhooks

For when the controls aren’t enough.

The builder gets you 95% there. For the last 5%, you get a scoped CSS editor with our full token set, JS hooks for filtering and click events, and signed webhooks when reviews change.

  • 47 CSS variables
    Colors, radii, fonts, spacing, shadows — all overridable, all scoped.
  • JS hooks
    onCardClick · onMount · filterFn · sortFn — wire it into your analytics.
  • Scoped & sandboxed
    Custom CSS is scoped to .rt-widget. It can't leak out and your styles can't leak in.
  • Review-schema JSON-LD
    Auto-emitted for SEO. Showcase that 4.9 in Google search results.
Proof Gap Autopilot · Pro+

Set it once.
It tunes itself.

Autopilot watches every widget. When CTR drops or a page lacks proof for a given visitor segment, it swaps in better cards and runs a quiet A/B against the original. The winner ships. You get a weekly digest.

Detects under-performing widget slots automatically
Matches cards to visitor segment via Custom Fields
Runs sub-100-visitor micro-A/B tests in the background
Promotes winners after 95% statistical confidence
Weekly digest of what changed and why
Autopilot · this weekupdated 4m ago
+18.4%
avg CTR lift
from baseline
7
winners shipped
12 tested · 5 in progress
94
segment matches
covers 81% of traffic
WINNER
Pricing carousel · ROI segment
+24% CTR over baseline · shipped 2h ago
TESTING
Homepage hero · enterprise segment
Variant B leading +12% · 67% confidence
GAP
/integrations page · no segment match
Proposed: 4 cards from 'integrator' tag
SHIPPED
Onboarding wall · trial segment
+31% to step-2 conversion · shipped 1d ago
Analytics · Per-card · Per-page

Know which quote did the work.

Card-level impressions, CTR, and conversion — bucketed by widget, page, and visitor segment. Pipe events to GA4, Segment, Mixpanel, or our own dashboard.

Card impressions
1.2M
this month
Click-thru rate
5.4%
vs 3.1% baseline
Top performer
Sara Sheikh — Pricing CTA
+62% above mean
Card performance · 30d
HOMEPAGE7d30d90d
92%
Sara S.
Aisha L.
Tom W.
Mira P.
Yuki H.
Marco F.
Dana K.
Chen L.
Aria N.
Vish K.
GA4
Segment
Mixpanel
Webhooks
Eight more reasons

Everything else you'd ask for, already there.

The boring-but-essential features that separate a toy from a tool.

Templates
Start from a curated template — landing-page hero, pricing wall, sidebar rail. 24 to choose from.
Theme presets
Light, dark, brand-matched, and editorial. Or build your own and share it across widgets.
Multilingual
Switch widget language at the page level. Reviews in the visitor's locale, fallback to English.
WCAG AA
Keyboard-navigable, screen-reader friendly, prefers-reduced-motion respected. Audited quarterly.
<30kb runtime
Lazy-loaded chunks. Zero CLS. Zero dependencies. Async-loaded so it never blocks your page.
Duplicate & fork
Clone any widget to a new variant in one click. Test, then merge or replace.
Domain allowlist
Embed only on the domains you own. Stops scraping and wrong-environment leaks.
Auto-sync
New testimonials matching your filter slot in automatically. No re-publish needed.

Your first widget,
live in 90 seconds.

Pick a type, drop in your testimonials, paste the embed. We’ll handle the rest — versioning, edge caching, lazy-loading, and the constant tuning that makes proof actually convert.

7 widget types · 50+ styles · No credit card · <30kb runtime