Skip to content

Cabin Analytics Documentation

Cabin is a privacy-first, carbon-conscious web analytics service. It's lightweight, compliant with all privacy laws, and the ideal cookieless alternative to Google Analytics.

  • No cookies, so no consent banner
  • No data sharing and no ad networks
  • A 1.7 KB script that won't slow your site down
  • Compliant with GDPR, CCPA, and more

Cabin comes in three plans, Free, Plus and Scale, and every one of them includes the full dashboard, AI/MCP access, public dashboards and data export. See plans and limits for what the paid plans add.

This documentation is available in English, Français and Deutsch.

Privacy by Design

Cabin is built from the ground up using Privacy by Design principles. We never store unique identifiers for your visitors, and our non-relational data structure makes it impossible to identify individuals based on their location, browser, OS, or language.

We don't sell or share any data with third parties or ad networks. Your visitors' data remains private and useless to advertising platforms.

Environmental Responsibility

Cabin's tracking script is 1.7 KB compressed, a fraction of the size of Google Analytics' loader, and that loader then pulls in far more JavaScript behind it. Keeping Cabin that small is a constraint we defend, not a happy accident: you can check the number yourself in your browser's network tab.

Beyond the script, the biggest lever on a hosted service's emissions is where its servers sit, because that decides which electricity grid they draw from. Cabin's ingest servers, the ones your visitors' browsers talk to, are placed with that in mind:

  • Clean grids first. Two of the three regions Cabin runs in draw from grids that are over 95% carbon-free. The third serves Asia-Pacific, where no clean grid exists, and is the least carbon-intensive option that still keeps latency low there.
  • Close to visitors. Each region takes the traffic nearest to it, so a beacon travels a short distance and the page view is recorded quickly, which matters on a fast bounce.
  • Small, efficient machines. Ingest is light work, so each region runs on a small server rather than a large one sitting mostly idle. That's cheaper and lower in energy.

The same grid-intensity methodology sits behind your site's carbon estimates, which use The Green Web Foundation's CO2.js.

Data Collection

The Cabin script sends minimal data points, with additional information inferred from the user-agent and request headers.

Sent by the script

Data pointWhen
Page URLEvery page view
ReferrerFirst page view of a visit only
Screen widthEvery page view
Page load timeEvery page view
Visit countsEvery page view
Time on pageWhen the visitor leaves the page
Scroll depthWhen the visitor leaves the page
Event nameOnly when your site triggers an event

The referrer's query string is stripped before it leaves the browser, so nothing sensitive in a referring URL reaches us.

Inferred from the request

Data pointExample
Timestamp1627589208201
Sourcesocial
CountryGB
Browserchrome
Devicemobile
OSiOS
Languageen
Bouncefalse
utm_sourceinstagram
utm_campaignsummer_sale
utm_mediumpaid_social

Unique Visitors Without Cookies

How does Cabin determine unique visitors without storing identifiers?

Cabin counts unique visitors without identifiers, IP addresses or fingerprinting, using a property of HTTP caching that browsers already have:

When a visitor interacts with Cabin, the request is cached in their browser like any standard web resource. We set a last-modified header in the response to the start of the current day. On subsequent requests, the browser automatically sends this header back to check if the request is still valid. Cabin then increments the last-modified time by one second with each visit.

By calculating the difference between the last-modified time and the day's start, we can determine the number of visits without storing any personal data. The first request indicates a unique visit, while subsequent requests help us track metrics like bounce rate.

You can read more about this on our blog:
How Cabin measures unique visitors without cookies.

Visitor Geolocation

Every web request includes an IP address. Cabin converts this address in transit (within server memory only) to an ISO country code with no further location detail. We store only the country code. The IP address is immediately discarded and never logged.

For where that happens and where your data is stored, see the privacy policy.