Everything Spectare does

Features

Built from the same 26 atoms Spectare uses to personalise pages — the source of truth for everything the product does.

Under the hood

How it works

One script tag. Two delivery paths. Always the fastest option available.

01

Add the script

One tag on every page. Place data-spectare-slot divs wherever you want personalised content to appear.

02

Spectare classifies intent

UTM parameters, referrer, and page context are read at the edge and mapped to an audience, stage, and intent type.

03

Content is assembled and delivered

For returning visitors, personalised content is inlined into the HTML — zero API calls. For new visitors, it streams in under 150 ms via SSE.

What Spectare does

Core capabilities

12 items

Conversion attribution closes the personalisation feedback loop

Most personalisation tools tell you which page variant won. Spectare tells you which atom, which image, and which combination drove the conversion — and immediately uses that signal to improve future assemblies.

When a visitor converts, Spectare records exactly which content atoms were visible on the page and which image was rendered alongside them. This data feeds directly back into the image selection algorithm: images that appear at conversion get a higher conversion rate score and are served more frequently to future visitors in the same audience and stage segment.

Because atoms and images are tracked independently, you can see granular patterns: Image B converts developers who arrive from Google Ads. Image D converts managers arriving from LinkedIn. The same text atom performs differently depending on which image sits next to it. Spectare discovers these combinations automatically — no rules, no test setup, no waiting period.

To trigger conversion tracking, add one line: spectare('conversion'). That is the only integration required.

1 line of JSIntegration required
Atom IDs + image IDData tracked
ImmediateLearning latency

Images, text, and CTAs assembled independently — then optimised together

Spectare treats images and text as separate, interchangeable modules. When a visitor arrives, the engine independently selects the best text atom for their intent and the best image for their audience and buying stage — then assembles them together. Because image selection is decoupled from text selection, Spectare can discover that Headline A converts better when paired with Image C rather than Image A, without a marketer setting up a single test.

Image selection uses a multi-armed bandit algorithm. 90% of the time it exploits the statistically proven best-performing image for the visitor's audience and stage. 10% of the time it explores a random alternative to gather conversion data on untested combinations. As your image library grows, the engine continuously learns which visuals resonate with each segment — developers, managers, executives — and at each stage of the buying journey.

When brand integrity requires a specific image to accompany specific content — a screenshot of the analytics dashboard next to the analytics feature description, for example — you can lock them together with a shared Group ID. Locked pairs always travel together. Everything else is optimised freely.

Probabilistic MABImage selection
90%Exploitation rate
10%Exploration rate

Personalised content arrives in the HTML, not after it

Every other personalisation tool — Adobe Target, Dynamic Yield, Optimizely — works the same way: they load a JavaScript snippet after your page renders, then swap content in. The result is a flash of the unpersonalised page, layout shift, and personalised content that misses the Largest Contentful Paint window. It is client-side patching, not delivery. Spectare takes a different approach. When Spectare middleware recognises a visitor's intent pattern from their UTM parameters or referrer, it checks Redis for a pre-assembled experience. If the cache is warm, the assembled content is serialised and inlined into the HTML response by the server before it leaves the edge. The browser parses personalised content as part of the page — the same way it parses static content. No flash. No layout shift. No client round-trip. Personalised headlines and features contribute to LCP rather than degrading it. For teams who care about Core Web Vitals, this is the only personalisation approach that doesn't trade off performance for relevance.

Inlined in HTMLDelivery method (cached)
ZeroLayout shift caused
No trade-offPersonalisation vs LCP

AI agents find Spectare without being told to look

Spectare publishes a machine-readable llms.txt file that tells AI assistants what Spectare does and how to use it. When an agent is helping a user who asks about website personalisation, dynamic landing pages, or content that adapts to different audiences, it can read the llms.txt, understand the qualify endpoint, and trigger personalised content without any developer prompting. This is a new distribution channel: your product becomes a capability that AI systems recommend and use on behalf of their users. Spectare tracks every agent discovery, every llms.txt read, and every MCP tool call so you can see which agents are finding you and how they are using your atom library. The discovery stats are public and displayed live on the Spectare homepage.

/llms.txtDiscovery file
Claude, ChatGPT, Gemini +Supported agents
ZeroSetup required

React hook for teams who want full rendering control

For React and Next.js teams who want complete control over how personalised content is rendered, /react provides a useSpectareAssemble hook. Pass your org slug and the hook handles intent classification, streaming assembly, and state management. You get back structured atom data — title, content HTML, key stats — and render it with your own components. There is no default UI to override. The hook is a thin data layer that plugs into whatever component tree you already have. Most teams reach for the widget first (one script tag, zero React code) and switch to the hook when they want to wire personalised content into a more complex UI like a tabbed layout or a dashboard. Both use the same atom library and assembly pipeline.

@spectare/reactPackage
18 and 19React versions
None — headlessDefault UI

Spectare works inside Claude, ChatGPT, and any MCP-compatible agent

Spectare ships a Model Context Protocol (MCP) server at /api/mcp. Any AI assistant that supports MCP can call the qualify_visitor tool directly — no API key needed from the agent side. The agent describes what a user is looking for in plain language and Spectare returns a ready-to-use personalised context token. This means Spectare personalisation can be triggered from a Claude conversation, a custom GPT, a Slack bot, or any agentic workflow without the developer building a separate integration layer. The MCP server exposes a system prompt that tells the agent when and how to use Spectare, so it behaves correctly without any manual configuration. Add the server URL to your Claude Desktop or agent config and Spectare becomes a native capability of your AI assistant.

/api/mcpMCP server URL
NoneAuth required from agent
0 linesIntegration code needed

One platform for every brand your team manages

Spectare is built for teams running more than one website. Each brand gets its own workspace with separate content atoms, users, and billing. A content editor on one brand cannot see or touch another. Editorial roles map to real workflows: editors draft, approvers review, publishers push live. New workspaces are ready in seconds with no infrastructure work. Agencies consolidate client brands onto a single Enterprise plan, cutting the overhead of managing separate tools for each. Every brand gets its own personalisation engine, its own atom library, and its own analytics — without extra cost or complexity.

UnlimitedBrands per Enterprise plan
4 (editor to admin)Editorial roles
Under a minuteSetup time per brand

Dynamic at the speed of static

Spectare has two delivery paths depending on whether your Redis edge cache is warm for this visitor's intent pattern. For recognised patterns — the same audience type, buying stage, and intent arriving again — the assembled experience is inlined directly into the HTML response before any JavaScript runs. The browser receives personalised content as part of the initial page, the same way it receives static content. Zero API calls. No flash of unloaded content. Personalised text contributes to Largest Contentful Paint rather than lagging behind it. For new intent patterns, Spectare streams content progressively into your slots, with the first section typically arriving within 150ms. The cache warms itself: every fresh assembly writes the result to Redis, so the first visitor with a given intent pattern pays the assembly cost, and every subsequent visitor with the same pattern gets instant delivery. Adobe Target, Dynamic Yield, and Bloomreach all deliver personalisation via client-side JavaScript that runs after page load — causing layout shift, CWV degradation, and a visible flash of the unpersonalised page. Spectare eliminates that entirely for cached patterns.

Inlined in HTMLCached delivery
<150ms first sectionFresh assembly
ZeroClient API calls (cached)

Add Spectare to any site in minutes — no code required on WordPress

Spectare drops into any website without touching your backend or build pipeline. On WordPress, install the plugin from the admin, paste your org slug, and start placing Spectare Slot blocks in the Gutenberg editor — no code at all. On any other platform — Webflow, Shopify, Squarespace, Next.js, or plain HTML — add one script tag and mark your content areas with data-spectare-slot attributes. Either way, Spectare reads the current session signals, classifies visitor intent, pulls the right atoms from your library, and streams personalised content into your slots. All before the visitor has scrolled. No API to wire up. No build step. No framework required. For teams that want deeper control, the same pipeline is available as a React hook or a direct REST API.

ZeroWordPress: lines of code
3Other platforms: lines to add
NoneFramework required

Content atoms: write once, personalise everywhere

An atom is a focused piece of content with a single job: explain one feature, answer one question, tell one story. Each atom carries metadata about who it speaks to and when in the buying journey it lands best. Spectare stores a semantic embedding alongside every atom so it can retrieve the most relevant ones for each visitor's intent. Because atoms are reusable, a single pricing atom appears on the homepage, the comparison page, and in any assembled response. Update it once and every personalised page reflects the change immediately — no republishing, no coordination across pages. Your content team works in the admin UI, not in code.

1,024Embedding dimensions
7 (feature, pricing, faq and more)Atom types
InstantUpdate propagation

Silent intent detection — classify, cache, serve

Spectare figures out who each visitor is the moment they arrive, without asking anything. The middleware reads the referrer URL and UTM parameters before the page even renders, classifies the visitor's likely role, buying stage, and intent type, then immediately checks a Redis edge cache for a pre-assembled experience matching that pattern. If the cache is warm — which it will be for any intent pattern that has appeared before — the assembled content is inlined directly into the HTML. The visitor gets a personalised page as part of the initial response, before any JavaScript runs. If the cache is cold, the middleware sets a signed context cookie so the widget can skip the qualify API call and go straight to assembly. No cookies required for tracking. No visitor profiles stored. Every classification is fresh, session-only, and used immediately then discarded.

Inlined in HTMLCache hit: delivery
<150msCache miss: first section
NoneVisitor data stored

Every visitor gets a different experience

Most websites show every visitor the same thing. A product marketer lands on your homepage and gets the same experience as a software engineer, an agency head, or a first-time buyer. Spectare changes that silently, without asking anyone anything. You write your content once, broken into focused building blocks. When a visitor arrives, Spectare reads their referrer URL, UTM parameters, page context, and browsing history from previous visits — classifies their intent, and assembles the experience most likely to resonate with them. A marketer sees outcomes, ROI, and ease of rollout. A developer sees architecture, integration time, and performance benchmarks. A visitor who spent time on your pricing page last week is automatically treated as consideration stage when they return, even with no UTM attached. The same content library, assembled into a different experience for every person. No rules to write. No variants to maintain. No A/B test periods to wait through.

1Content library to maintain
UnlimitedVisitor experiences
ZeroQuestions asked of visitor

How to integrate

Getting set up in an afternoon

3 items
01

Four ways to use Spectare, matched to your setup

WordPress plugin (all plans): Install the Spectare plugin from the WordPress admin. It auto-injects the widget and adds a native Gutenberg block so editors can place personalised content slots anywhere on the page — no code required. The fastest path for the 43% of the web running WordPress.

Widget — script tag (all plans): Drop one script tag onto any page. Mark content areas with data-spectare-slot attributes. Spectare handles intent detection, assembly, and slot filling silently in the background. Works on Webflow, Shopify, Squarespace, or anything that runs JavaScript.

React hook (Pro and above): Install @spectare/react and use the useSpectareAssemble hook for full rendering control. Ideal for teams building in React or Next.js who want to wire personalised content into a complex UI with their own components.

Direct API: Call the /api/qualify and /api/assemble endpoints from your own server or agent. Maximum flexibility for custom integrations, multi-step workflows, and non-JavaScript environments.

All four use the same atom library and produce the same assembled experience. Start with the plugin or widget and add the hook or API later if you need to.

All plans — no codeWordPress plugin
All plans — any platformWidget (script tag)
Pro+ — full controlReact hook
02

From signup to live in one afternoon

Create your workspace at spectare.ai in under a minute. Write your first content atoms in the admin UI — start with ten covering your key features, pricing, and common questions.

On WordPress: Install the Spectare plugin from the WordPress admin, paste your org slug into the settings, then drop Spectare Slot blocks into your pages using the Gutenberg editor. No code required.

On any other platform: Add the Spectare script tag to your site and mark the sections where you want personalised content to appear with data-spectare-slot attributes. One line of HTML per slot.

Either way, your site is personalising every visitor that same afternoon. Add more atoms over time — the more you write, the more precisely Spectare can match each visitor. There is no training period, no model to configure, and no rules to define.

One afternoonTime to first personalised experience
10Minimum atoms to start
ZeroWordPress: code required
03

How Spectare works

Every visitor gets a personalised experience. The signals used depend on how they arrived and whether they have visited before.

Edge cache hit: Spectare middleware reads the referrer URL and UTM parameters before the page renders, classifies the visitor's intent, and checks Redis for a pre-assembled experience matching that pattern. If found, the content is inlined into the HTML. The visitor gets personalisation in the initial page response, before any JavaScript runs.

Context cookie (cache miss, signals present): If the cache is cold but UTM or referrer signals are present, the middleware sets a signed context cookie. The Spectare widget reads the cookie when the page loads and calls the assemble API directly, skipping the qualify step. The assembled experience streams into your slots in under 200ms.

Returning visitor (visit history): The Spectare widget records a lightweight visit log in the browser's localStorage — up to 10 pages, expiring after 30 days. On every subsequent visit, this history is included in the qualify call. A visitor who browsed /pricing and /compare before returning to the homepage is automatically classified as consideration stage, even with no UTM attached. No data leaves the visitor's device; the history is read locally at qualify time.

Full qualify (page context only): If no UTM, referrer, or visit history signals are present, the widget sends the current page context — URL, title — to the qualify API, which classifies intent using Claude. The assembled experience then streams progressively into your slots.

Cold visit (no signals at all): If a first-time visitor arrives with no UTM, no referrer, and no recognisable intent, Spectare serves your default atoms — content you designate in the admin as the best fallback experience. Every visitor sees something relevant, even on their very first visit.

All paths fill the same data-spectare-slot elements. Your content team manages one atom library. Your developers added one script tag.

Inlined in HTMLEdge cache hit
<200ms streamedContext cookie / visit history
<500ms streamedFull qualify
Default atoms servedCold visit

How Spectare compares

vs the alternatives

2 items

Spectare vs A/B testing

A/B testing splits your traffic between two page variants and waits weeks for a statistically significant result. You learn which version won, but not why, and not what a third type of visitor would have preferred. Spectare does not require a test period. From the first visitor, it builds a page around their specific intent using the signals available right now: where they came from, what campaign brought them, what context they carry. There are no losing variants, no traffic split, no minimum sample size to wait for. A/B testing optimises a single static page. Spectare replaces the static page entirely with one that fits each visitor. Your content team adds more atoms over time to improve coverage, but personalisation is accurate from day one.

Why a CMS alone is not enough for personalisation

A CMS stores your content and serves it on request. You decide what goes on each page, and every visitor sees the same thing. That is the right tool for publishing — it is the wrong tool for personalisation. Spectare sits in front of your content and decides what to show each visitor based on who they are. A developer visiting your homepage and a CFO visiting your homepage see different experiences, each assembled from the same library. The developer gets architecture depth and integration benchmarks. The CFO gets ROI positioning and compliance coverage. And because Spectare caches assembled experiences at the edge, the personalised content arrives inlined in the initial HTML — not loaded by JavaScript after the page renders, the way every personalisation layer bolted on top of a CMS works. Spectare does not replace your content workflow — it adds the intelligence layer that a CMS never had. Write content once; Spectare matches it to each visitor and delivers it at the speed of a static page.

Common questions

Things people ask before signing up

7 items

What are default atoms and when are they shown?

Default atoms are the content Spectare shows when a visitor arrives with no detectable intent signals — no UTM parameters, no referrer URL, no prior classification. These are cold visitors: someone who typed your URL directly, or arrived via a bookmark or a QR code with no campaign attached.

You mark one atom as the default in the admin UI. When Spectare detects a cold visit, it serves the default atom rather than running a vector search or calling the LLM. This is both faster and more reliable — there is nothing to infer, so the cost of inference is zero.

The default atom should be your best universal introduction: the piece of content that resonates across audiences and stages, that explains what you do and why it matters without assuming what the visitor already knows. Think of it as your homepage in atom form.

Cold visits are never cached as personalised experiences. The next time the same visitor arrives with a UTM or referrer signal, Spectare classifies their intent fresh and assembles a personalised experience as normal.

How does Spectare select which image to show?

Spectare uses a multi-armed bandit algorithm to select images. Each image in your library can be tagged with audience affinities and buying stage affinities. When a visitor arrives, Spectare knows their audience segment and buying stage from intent classification.

90% of the time it serves the image with the highest conversion rate for that audience and stage combination — this is the exploit phase. 10% of the time it randomly serves a different image from your library to gather conversion data on alternatives — this is the explore phase.

When a visitor converts and you fire spectare('conversion'), Spectare records which image was shown and marks it as a converting impression for that audience and stage. Over time the algorithm accumulates enough signal to reliably distinguish which images drive the most conversions for each segment.

If you need a specific image to always accompany a specific atom — for example, a product screenshot that must appear next to its feature description — set the same Group ID on both the atom and the image. Locked pairs bypass the bandit entirely and always travel together.

Does Spectare work on WordPress, Shopify, and non-React sites?

Yes — the widget works on any site that runs JavaScript, regardless of platform. On WordPress, paste the script tag into your theme's header or use a plugin like Insert Headers and Footers. On Shopify, add it via the theme editor or a Script Tag API entry. On Webflow, drop it into your project's custom code section. Mark any HTML element with data-spectare-slot and Spectare fills it automatically. No PHP plugin required. No Shopify app needed. No Webflow Designer limitations. The widget is a single vanilla JavaScript file with no dependencies. If your platform lets you add a script tag, Spectare works there.

How does an AI agent discover and use Spectare?

Agents discover Spectare in three ways. First, they may fetch /llms.txt — a machine-readable file describing what Spectare does and how to call the qualify endpoint. Second, they may call the MCP server at /api/mcp, which exposes a qualify_visitor tool they can invoke directly. Third, a developer may configure their agent to call the Spectare API explicitly. In all three cases the agent ends up with a signed context token it can pass to the assemble endpoint or embed in a shared link. The visitor then either clicks a personalised URL or sees a section of content assembled specifically for their intent — without ever being asked a question.

Can I use Spectare with my existing design system?

Yes. The Spectare widget fills your HTML slots with structured content, and you control the CSS. Mark any element with data-spectare-slot and style it however you like — the widget adds class names you can target. For teams using React or Next.js, the @spectare/react hook gives you raw structured data to render with your own components. There is no Spectare UI to override, no iframe to break out of, no shadow DOM to fight. Your brand, your typography, your design tokens — Spectare is purely a content layer, invisible to your visitors.

What happens if Spectare is unavailable?

Spectare is hosted on Google Cloud Run with automatic scaling and no cold-start delays. If it is ever unreachable, your site falls back gracefully — slots remain empty or show whatever static default HTML you placed there. Because the Spectare widget is an enhancement layer rather than a page-blocking dependency, a timeout means an unpersonalised experience, not a broken page. Repeat visitors with the same intent profile are served from a 24-hour assembly cache, so most returning traffic never hits the live pipeline at all. The widget handles errors silently and never throws an uncaught exception onto your page.

Does Spectare store personal data about visitors?

Spectare's servers store no personal data about individual visitors. Session signals — referrer URL, UTM parameters, page context — are used to classify intent and assemble a response, then discarded. Spectare sets no tracking cookies. No visitor profiles are built on Spectare infrastructure.

For returning visitor personalisation, Spectare stores a lightweight visit log in the visitor's own browser localStorage. This contains only page paths and timestamps — no identifiers, no names, no device information. It never leaves the visitor's device. Spectare reads it locally at qualify time to detect buying stage from browsing behaviour, then uses it immediately. Entries expire automatically after 30 days and the log holds a maximum of 10 pages. The visitor can clear it at any time by clearing localStorage.

For GDPR and privacy-first teams, this means full personalisation with minimal compliance overhead. Spectare's server-side processing involves no personal data. The localStorage entry is comparable to a shopping cart or theme preference — browser-side, user-controlled, session-useful data that does not require a consent banner under most interpretations of ePrivacy.

Pricing

Start free, pay when it works

1 item

Spectare pricing: start free, pay when you grow

Spectare starts with a 14-day developer trial at no cost — no credit card required. The trial gives you 500 personalised visitors and 50 atoms, enough to integrate on a real site and see results before committing. Pro at $79 a month covers most product marketing sites with up to 25,000 personalised visitors a month, unlimited atoms, conversion analytics, and email support. Enterprise at $299 a month suits agencies and high-traffic sites, with up to 250,000 personalised visitors a month, multiple brand workspaces, and priority support. All paid plans include the full admin UI, atom editor, widget, and API. No annual lock-in. Cancel any time.

Free for 14 daysDeveloper trial
$79 / monthPro plan
$299 / monthEnterprise plan

In use

Real examples

1 item

How a SaaS product site tripled trial starts without building new pages

A B2B SaaS company had one marketing site serving three distinct buyer profiles: individual developers evaluating the product, engineering managers making team purchasing decisions, and CTOs assessing strategic fit. Their homepage conversion rate was flat because one page could not speak credibly to all three at once. They added the Spectare widget in an afternoon — one script tag, three data-spectare-slot attributes on the hero, features section, and pricing area. They wrote 15 content atoms covering developer-focused technical depth, manager-focused team ROI, and executive-focused strategic positioning. Within two weeks, trial starts from paid campaigns had tripled. The same ads, the same landing page URL, three completely different experiences depending on who arrived. Their content team now adds new atoms as the product evolves — no developer required, no page republishing, no coordination with engineering.

One afternoonSetup time
Trial starts increase
ZeroNew pages built

This page uses Spectare

Three lines to ship personalisation

Add the script tag and place slots where you want personalised content. For returning visitors, Spectare inlines the right content directly into the HTML — zero client-side API calls, no flash. For new visitors it streams content in under 150 ms. The same script handles both paths automatically.

Add it to your site →
your-site.html
<script
  src="https://spectare.ai/spectare.js"
  data-org="your-org-slug"
></script>

<div data-spectare-slot="primary"></div>
<div data-spectare-slot="supporting"></div>

<!-- On your thank-you page: -->
<script>
  spectare('conversion', { plan: 'pro' });
</script>
WordPress plugin

43% of the web runs WordPress. Now it runs Spectare too.

Install the Spectare plugin and your WordPress site is personalising in minutes. No coding required. The plugin injects the Spectare widget automatically and adds a native Gutenberg block so editors can place personalised content slots anywhere on the page.

1Download and install the plugin in wp-admin → Plugins → Upload Plugin
2Go to Settings → Spectare and paste your organisation slug
3Add Spectare Slot blocks in the Gutenberg editor wherever you want personalised content
Download plugin (.zip)
WordPress — Edit Page
● Saved
ParagraphWelcome to our site. We help teams ship faster.
Spectare Slot
data-spectare-slot="primary"
Personalised content appears here at runtime
HeadingOur key features
Spectare Slot
data-spectare-slot="supporting"
Block · Spectare SlotSlot name: primary ›