Static HTML

Add an AI support assistant to a plain HTML site

No framework, no build step, no platform. Two lines before the closing body tag and the site answers questions.

  • Two lines
  • About two minutes
  • One file
index.htmlfile
<!-- Matter Chat — paste right before </body> --><script>  window.MatterChat = window.MatterChat || { q: [] };  window.MatterChat.q.push(["init", { id: "bot_your_key" }]);</script><script async src="https://app.matterchat.co/widget.js"></script>
</body>

html · paste above the dimmed line

Where the snippet goes

Before the closing body tag of each page. If your site has a shared layout — a Jekyll layout, a Hugo partial, an Eleventy template, an include — put it there once and every page picks it up.

Shared layout, ideally
One edit in the template rather than one per page.
Any generator
Jekyll, Hugo, Eleventy, Astro, or hand-written — it is only HTML.
No server required
The widget talks to our API directly, so your host stays static.
Works on any host
GitHub Pages, Netlify, S3, or a directory on a VPS.
!

If you have a shared layout — a Jekyll layout, a Hugo partial, an Eleventy include — put it there once and every page picks it up.

Dynamic behaviour without a backend

The entire benefit of a static site is that there is nothing to run and nothing to patch. The widget preserves that: it is a client-side script talking to a hosted API, so your deployment stays a folder of files.

Your published pages are the knowledge base

The crawler reads what you publish. On a static site that is usually all of it, so the assistant has complete coverage from the first crawl with nothing extra to maintain.

Checking it actually worked

Four things, in order. The third is the one people skip, and it is the one that tells you whether the answers are grounded.

  1. 1Hard refresh the page — the launcher appears bottom-right.
  2. 2Ask it something your site answers, and check the reply cites a page.
  3. 3Ask it something your site does not cover, and check it declines.
  4. 4Open Conversations in the dashboard; both should be there.

On a different stack?

The snippet is the same everywhere. Only the place you paste it changes.

What developers ask

Short answers. If yours is not here, the assistant on this page will try it — and tell you honestly if it cannot.

Do I need to add it to every page?

Only if your site has no shared layout. Any static site generator has a template or include where it can go once.

Does it work on GitHub Pages?

Yes. It is client-side JavaScript talking to a hosted API, so a static host with no server-side execution is perfectly adequate.

What if my site is only a few pages?

It still works, and coverage is simply narrower — it answers what those pages say and refuses beyond them. Every question it could not answer is logged, which at this size is a very direct list of which page to write next.

From the blog

All posts

Answer honestly. Capture the rest.

Point Matter Chat at your site and see what it can — and can't — answer. It's honest about both.

Start free — chat in your site

No credit card. 2 minute setup.

Every answer cites the source it came from. When there isn't one, it says so — and hands the visitor to you.

Installs on the tools you already run.