All Integrations
React
Embed a Laudica testimonial wall as a native component in your React or Next.js application.
1. Get your wall ID
Open the wall builder in your Laudica dashboard. Click the Embed Code tab — your wall ID is displayed at the top.
2. Create the embed component
Create a reusable component that wraps the Laudica iframe. It listens for laudica-resize events so the iframe automatically matches its content height:
import { useEffect, useRef } from "react";
interface LaudicaWallProps {
wallId: string;
className?: string;
}
export function LaudicaWall({ wallId, className }: LaudicaWallProps) {
const ref = useRef<HTMLIFrameElement>(null);
useEffect(() => {
function onMsg(e: MessageEvent) {
if (e.data?.type === "laudica-resize" && ref.current) {
ref.current.style.height = e.data.height + "px";
}
}
window.addEventListener("message", onMsg);
return () => window.removeEventListener("message", onMsg);
}, []);
return (
<iframe
ref={ref}
src={`https://app.laudica.com/embed/${wallId}`}
style={{ width: "100%", border: "none", minHeight: 100, margin: "2rem 0" }}
scrolling="no"
loading="lazy"
title="Laudica testimonials"
className={className}
/>
);
}3. Use it in your app
Import and render the component anywhere in your app:
import { LaudicaWall } from "./laudica-wall";
export default function TestimonialsPage() {
return (
<section>
<h2>What our customers say</h2>
<LaudicaWall wallId="YOUR_WALL_ID" />
</section>
);
}Tips
- Dynamic wall IDs — pass different wall IDs as props to show different walls on different pages.
- Next.js / SSR — the iframe renders on the server as an empty frame and hydrates on the client. No special SSR handling needed.
- Domain allowlisting — add
localhostto your allowed domains during development.