Integration
Four paths, one atom library. Pick the one that fits your setup.
WordPress plugin
All plans, no code
Script tag widget
All plans, any platform
Next.js SSR
Pro+, zero-flicker delivery
Drop one script tag into your page head. Mark your content areas with data-spectare-slot attributes. Spectare handles intent detection, assembly, and slot filling automatically.
Works on Webflow, Shopify, Squarespace, Next.js, or any site that runs JavaScript. No build step, no backend changes.
<!-- Add to <head> on every page -->
<script
src="https://spectare.ai/spectare.js"
data-org="YOUR_WORKSPACE_SLUG"
></script>
<!-- Place slots where personalised content should appear -->
<div data-spectare-slot="primary"></div>
<div data-spectare-slot="supporting"></div>
<!-- Set conversion URL in Settings. Fires automatically. -->
<!-- Or call manually on any event: -->
<script>spectare('conversion');</script>Install the plugin, add your workspace slug and API key, and place Spectare Zone blocks in Gutenberg. Zones render personalised content into the HTML at first paint: no shimmer, and SEO-ready. Prefer no API key, or personalising a heavily cached page? Spectare Slot blocks fill client-side instead. The plugin can also publish an llms.txt on your domain from your content, so AI assistants can discover you and send visitors a personalised page.
Call /api/assemble/ssr from a Next.js server component. Spectare classifies intent from your UTM params and referrer, assembles content, and returns a component list before HTML is sent to the browser. No shimmer. No layout shift. Personalised from first paint.
The client pipeline still runs in the background. Returning visitors with browsing history get a more specific assembly; the DOM updates silently in ~150ms if audience or stage differs from the server result.
import { headers } from 'next/headers';
import PersonalisedSection from '@/components/PersonalisedSection';
export default async function Page({ searchParams }) {
const h = await headers();
const sp = await searchParams;
const res = await fetch(
'https://spectare.ai/api/assemble/ssr',
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${process.env.SPECTARE_API_KEY}`,
},
body: JSON.stringify({
orgSlug: 'your-workspace-slug',
referrer: h.get('referer') ?? undefined,
utmSource: sp.utm_source,
utmMedium: sp.utm_medium,
}),
next: { revalidate: 0 },
}
);
const { assembly, intent } = res.ok
? await res.json()
: {};
return (
<PersonalisedSection
orgSlug="your-workspace-slug"
initialAssembly={assembly}
initialIntent={intent}
/>
);
}Call /api/qualify first to get a signed token, then choose your assemble path. /api/assemble/components returns structured JSON with a named component and slots for each section, making it straightforward to render in React or any custom UI. /api/assemble streams SSE events for slot-based or server-rendered output.
All three endpoints are public. No API key required. Rate limited by IP.
// 1. Qualify the visitor
POST /api/qualify/{orgSlug}
{ "summary": "developer evaluating personalisation",
"direct": true }
→ { token, intent, ... }
// 2a. Assemble: slot/SSE rendering (widget path)
POST /api/assemble
{ "token": "<token>", "orgSlug": "your-slug" }
→ streams sections as server-sent events
// 2b. Assemble: component JSON (React / custom)
POST /api/assemble/components
{ "token": "<token>", "orgSlug": "your-slug" }
→ { assembly: [{ component, slots, size }, ...] }Once your content is in Spectare it is legible to the assistants your buyers research with, with no setup. Your site serves an llms.txt describing what you offer, and every published atom is available as clean JSON at /api/content and /api/content/{slug}, each with a stable slug.
An assistant can also call the public qualify endpoint with what its user is after and share the returned link, so an agent-driven referral lands on a page personalised for that person. Through the WordPress plugin and SSR helper the same JSON is served on your own domain, not just spectare.ai.
Content API reference →Start with the script tag or the WordPress plugin. Add Next.js SSR or the REST API later without changing your atom library.