Getting Started#

Add analytics to your website in three steps: register the host, add the snippet, open the dashboard.

The public first-run page is antics.turtletech.us/docs/start (also /install). Managed accounts are invite-only: request access, then complete the same path once signed in.

1. Register your host#

Request access, sign in, and create a site from the Antics dashboard. A host registration such as example.com receives tokenless traffic for that host, including child paths. Subdomains are separate hosts: register docs.example.com or lab.example.com as their own site when the subdomain has separate ownership or reporting needs. GitHub Pages crate sites use the same host-only path: register leidarljos.github.io and keep the tokenless snippet. Child paths such as /ljos/ report to that host without a data-token.

For hosted project docs and other path-scoped pages that need their own dashboard, also register the exact path prefix, for example:

lode-org.github.io/readcon-core

2. Add the tracker#

For a host site, add the tokenless snippet:

<script defer src="https://antics-api.turtletech.us/antics.js"></script>

For a path-scoped site, copy the token-bound snippet from Settings:

<script defer src="https://antics-api.turtletech.us/antics.js" data-token="YOUR_TRACKER_TOKEN"></script>

The token routes traffic into the path site. Antics still verifies the browser origin and registered path, so a token for example.com/docs cannot report traffic for example.com/blog. Tokenless traffic on the same host continues to report to the host site, so an organization can keep example.com aggregate stats while example.com/project-a and example.com/project-b have stakeholder-specific dashboards.

3. View your dashboard#

Visit antics.turtletech.us/dashboard to see your analytics. Data appears within 60 seconds of the first visit.

Managed Plans and Quotas#

Antics quotas are separate from every other TurtleTech app. Ridley, OokCite, Babbler, and TurtleTech Data subscriptions do not contribute to an Antics allowance.

Plan

Pageviews per month

Pageviews kept

Stats kept

Free

1,000,000 pooled

90 days

3 years

Pro

5,000,000 pooled

90 days

3 years

Team

25,000,000 pooled

90 days

3 years

Sites share the account pageview pool. Registration stops at 200 hosts per account so empty-host spam cannot grow without bound. The managed collector applies a soft allowance before its hard ingestion cap. The dashboard reports usage against the advertised monthly allowance. Storage is billed at TurtleTech storage rates.

Native Links uses a separate allowance for each source application. These are the Antics dashboard allowances:

Plan

Active links

Redirects per month

Free

100

10,000

Pro

5,000

500,000

Team

50,000

5,000,000

Redirect traffic remains available when monthly usage reaches the advertised allowance. The allowance is metered for reporting and plan review rather than used to break an established public URL. See Create and manage short links for lifecycle and API behavior.

Framework Integration#

Hugo#

# config.toml
[params.antics]
  host = "https://antics-api.turtletech.us"

If your theme supports the extra-head.html partial:

<!-- layouts/partials/extra-head.html -->
<script defer src="https://antics-api.turtletech.us/antics.js"></script>

Jekyll#

<!-- _includes/head.html -->
<script defer src="https://antics-api.turtletech.us/antics.js"></script>

SvelteKit#

<!-- src/app.html, before %sveltekit.head% -->
<script defer src="https://antics-api.turtletech.us/antics.js"></script>

Next.js / Astro / any HTML#

<!-- In your <head> -->
<script defer src="https://antics-api.turtletech.us/antics.js"></script>

Custom Events#

Track user actions from JavaScript:

antics.event('signup', { plan: 'pro' });
antics.event('download', { file: 'report.pdf' });

What Gets Tracked#

  • Pageviews and same-day visitor buckets (daily pseudonymous identifier, no collection cookies)

  • Referrer domains and UTM parameters

  • Country (the source IP is used for GeoIP and visitor-bucket derivation; analytics events do not store the raw IP address)

  • Browser, OS, device type

  • Scroll depth and time on page

  • Core Web Vitals (LCP, INP, CLS)

  • Custom events with properties

  • SPA navigation (pushState/replaceState)