One script, every framework

One script tag, on any stack.

Paste one deferred script into the `<head>` your pages share. Pageviews, sources, outbound clicks and single-page navigation are tracked from there, with a guide for each common framework and builder.

14-day free trial · No card required · From $9/month

A guide for your platform.

Each guide says which file or setting the snippet goes in, and what to watch for on that platform.

JavaScript frameworks
Next.js (App and Pages Router, with next/script), React with Vite or Create React App, Vue.js and Nuxt, Astro and SvelteKit.
Server-rendered apps
Laravel, in the Blade layout your pages extend, and Django, in your base template, each with a way to leave it out in development.
Website builders
WordPress, Webflow, Framer, Shopify, Ghost, Wix and Squarespace, each in its own custom code setting.
Anything else
Plain HTML with a shared head, Google Tag Manager with a Custom HTML tag, or a coding agent that finds the right file for you.

What the script does on its own.

No pageview calls to wire up and no router plugin to install.

  • A pageview on load and on every history.pushState, replaceState and back or forward navigation, so client-side routing in React, Vue, Astro and SvelteKit is counted
  • Clicks on links to other websites, unless the tag has supr-outbound="false"
  • A heartbeat every 30 seconds while the tab is visible and in use, for session time and the live view
  • The visitor id added to Polar Checkout Links, Dodo Payments payment links and Paddle checkout buttons when they're clicked, so payments are tied to the visit

Know it's working.

Settings → General has the snippet with your website id and domain filled in, a Next.js version and a prompt for coding agents. Open your website in a normal browser window and the visit shows on the dashboard within seconds.

Ad blockers hide some visits: once the script works, the managed proxy serves it from a subdomain of yours. Weighing this up against building tracking yourself? See SuprAnalytics for developers.

Set it up.

  1. Copy the snippet

    From Settings → General of your website, with its id and domain already in it.

  2. Paste it in the shared head

    Follow the guide for your platform: one layout, template or custom code box.

  3. Publish and visit

    Open your website in a normal browser window and watch the visit arrive on the dashboard.

How it works, in detail.

The docs page “Installation guides for every platform” goes through it step by step.

How it works

Limits worth knowing

  • localhost and other local hosts are ignored unless Track localhost is on in Settings or the tag has supr-allow-localhost="true"
  • Automated browsers such as Playwright, Cypress and Selenium are never counted
  • Hash routes (/#/pricing) need supr-hash="true", otherwise every route counts as /
  • Visits are only recorded on your domain, its subdomains and the additional domains you list
  • Shopify's checkout pages don't run theme scripts, so orders are sent with the Payment API
  • Wix and Squarespace only allow custom code on some of their plans

Questions, answered.

Where does the script go?

In the <head> of every page, which on most websites is one shared layout or template. The guide for your platform names the file or setting.

Which platforms have a guide?

Plain HTML, Next.js, React, Vue.js and Nuxt, Astro, SvelteKit, WordPress, Webflow, Framer, Shopify, Ghost, Wix, Squarespace, Google Tag Manager, Laravel and Django, plus a setup prompt for coding agents and AI builders.

Do I need to send pageviews from my router?

No. The script counts history changes on its own. Only a router the script can't see needs window.supr("pageview"), and hash routers need supr-hash="true" on the tag.

Will it slow my pages down?

It loads with defer, so the browser downloads it alongside the page and runs it after the HTML is parsed, without holding up rendering.

Can I test it on localhost?

Yes. Turn on Track localhost in Settings → General while you test (no change to the tag), or add supr-allow-localhost="true" to the tag. Otherwise local hosts are ignored, so your development visits stay out of the reports.

See it on your own website.

Every feature is on every plan, with a free trial and no card.

14-day free trial · No card requiredPricingHow it worksAll features