Astro

In Astro, the right place for a site-wide script is the <head> of your base layout. Most Astro projects have one at src/layouts/Layout.astro (the name may differ; look for the .astro file that wraps every page).

Open that file and paste the snippet inside the <head>:

---
// src/layouts/Layout.astro
---

<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>My Site</title>

    <script defer src="https://api.snowanalytics.app/sa.js" data-site="YOUR_SITE_ID"></script>
  </head>
  <body>
    <slot />
  </body>
</html>

This works for both static output and SSR mode.

View transitions / client-side routing

If your site uses Astro's View Transitions or any client-side router, Snow still tracks each navigation automatically: it hooks the browser History API and listens for popstate. No extra code is needed. See Single-page apps.

Verify

Build and preview your site (astro build && astro preview) or open it in a browser, then check the Live view in the Snow dashboard. See Troubleshooting if nothing appears.

On this page