Drop a single script tag into any site. Here's how for the most popular platforms.
Any site where you can edit the HTML directly — Squarespace code blocks, Carrd, hand-coded sites.
Add via Embed element or site-wide custom code. No Webflow apps needed.
Works with Classic Editor, Gutenberg blocks, and page builders like Elementor.
Load the widget with next/script or a useEffect hook. SSR-safe.
Go to your EndorseKit dashboard, open your project, and click the Embed tab. Pick your layout, theme, and options, then copy the code.
Add the script tag wherever you want testimonials to appear — in a section, below a heading, or at the bottom of your landing page.
<!-- Testimonials -->
<section id="testimonials">
<h2>What our customers say</h2>
<script src="https://endorsekit.com/widget.js"
data-project="your-project-slug"
data-layout="grid"
data-theme="light"
data-columns="3">
</script>
</section>
The widget loads asynchronously, renders inside a Shadow DOM (so it won't clash with your styles), and lazy-loads for zero performance impact until it scrolls into view.
In the Webflow Designer, drag an Embed element (under Components) to where you want testimonials.
Copy your code from the EndorseKit dashboard and paste it into the Embed's HTML field.
<script src="https://endorsekit.com/widget.js" data-project="your-project-slug" data-layout="carousel" data-theme="light" data-autoscroll="smooth" data-speed="slow"> </script>
Hit Publish. The widget won't render in the Designer preview (Webflow sandboxes scripts), but it will work perfectly on your published site.
Navigate to the page where you want testimonials.
In Gutenberg, add a Custom HTML block. In Classic Editor, switch to the Text tab. In Elementor, use an HTML widget.
<script src="https://endorsekit.com/widget.js" data-project="your-project-slug" data-layout="grid" data-theme="light" data-max="6"> </script>
Click Preview to verify it looks right, then Publish. The widget runs entirely client-side — no PHP plugins or database changes needed.
In your page or layout component, import Script from next/script and add it where you want testimonials.
import Script from 'next/script'
export default function TestimonialsSection() {
return (
<section>
<h2>What our customers say</h2>
<Script
src="https://endorsekit.com/widget.js"
data-project="your-project-slug"
data-layout="grid"
data-theme="light"
data-columns="3"
strategy="lazyOnload"
/>
</section>
)
}
For more control, or if you're using plain React (CRA, Vite, Remix), load the script manually.
import { useEffect, useRef } from 'react'
export function Testimonials({ project = 'your-project-slug' }) {
const ref = useRef(null)
useEffect(() => {
const script = document.createElement('script')
script.src = 'https://endorsekit.com/widget.js'
script.setAttribute('data-project', project)
script.setAttribute('data-layout', 'grid')
script.setAttribute('data-theme', 'light')
ref.current?.appendChild(script)
return () => script.remove()
}, [project])
return <div ref={ref} />
}
If your app toggles dark mode, just set data-theme="dark" dynamically to match.
500 Founder Licenses at $69 — one payment, Pro features forever.
Grab a Founder License → See layouts →