Showing default content

Every visitor gets an experience built for them

Spectare reads intent and assembles personalised content at render time. No A/B tests, no segments, no training data required.

What you are looking at

This is a server component. The headline, subheading, and CTA above are not static strings or client-side injections. They were fetched from POST /api/assemble/ssr at render time, and the slot values were mapped directly to the existing HTML elements before the page was sent to the browser.

The pattern

const heroSlots = assembly.find(c => c.component === 'HeroStatement')?.slots ?? {};
const ctaSlots  = assembly.find(c => c.component === 'CtaStrip')?.slots   ?? {};

const headline = heroSlots.headline as string ?? 'Default headline';
const ctaLabel = (ctaSlots.primary as { label: string })?.label ?? 'Get started';

// These render as plain HTML: no script, no attribute, no DOM swap.
<h1>{headline}</h1>
<a href={...}>{ctaLabel}</a>

Ready to add server-side personalisation to your stack?

Spectare is live on this page

Live conversion data, updated every 8s