Everything Spectare does
Built from the same 26 atoms Spectare uses to personalise pages — the source of truth for everything the product does.
Under the hood
One script tag. Two delivery paths. Always the fastest option available.
One tag on every page. Place data-spectare-slot divs wherever you want personalised content to appear.
UTM parameters, referrer, and page context are read at the edge and mapped to an audience, stage, and intent type.
For returning visitors, personalised content is inlined into the HTML — zero API calls. For new visitors, it streams in under 150 ms via SSE.
Core capabilities
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.
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.
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.
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.
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 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.
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.
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.
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.
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.
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.
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.
Getting set up in an afternoon
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.
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.
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.
vs the alternatives
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.
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.
Things people ask before signing up
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.
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.
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.
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.
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.
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.
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.
Start free, pay when it works
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.
Real examples
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.
This page uses Spectare
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 →<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>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.
Ready to put this to work?