Count the visit. Forget the visitor.

Grynlume is web analytics you run on your own server. It counts visits, pages, sources and goals without cookies or personal profiles, and throws every visitor identifier away at the end of the day. One small script, one process, one file of data that stays yours.

  • No cookies
  • 2.5 KB script
  • Funnels and goals included
  • Self-hosted
The Grynlume dashboard for the demo site: unique visitors, total visits, pageviews, views per visit, bounce rate and visit duration, each compared with the previous period, above a thirty-day visitor chart and breakdowns by page and source.

The demo site as it looks inside the product. Every picture on this page is a screenshot of the running dashboard, not a mockup.Dark and light themes

Enough detail to decide. None of the surveillance.

Each view moves from a question to an answer in fewer steps, and none of them needs to know who a person is.

Watch a launch as it happens

The live view shows who is on the site right now, which pages they are reading and where they came from, updating without a refresh. Useful during a launch, a newsletter send, or when something breaks.

  • Visitors on the site in the last five minutes
  • A stream of recent pageviews and events
  • Current sources, so you can see a campaign land
The realtime view with the live visitor count and a stream of recent pages.
Realtime view of the demo site.

Drag through the day

Pull the playhead back and the whole dashboard follows: tiles, chart and breakdowns all show the site as it was at that moment. You see when a surge started and what was driving it, not just that it happened.

  • Scrub backwards through any period
  • Every panel stays in sync with the playhead
  • Keyboard and touch, with autoplay to replay a day
The time scrub rail under the visitor chart, with the playhead pulled back to an earlier point in the period.
Time scrub, a Grynlume workflow you will not find in most lightweight analytics tools.

Follow visitors to the moments that matter

Define a page or a custom event as a goal, chain goals into a funnel, and read the drop-off at each step. Conversion tools are part of the product, not a paid tier.

  • Page goals and custom-event goals
  • Ordered funnels with step-by-step drop-off
  • Event properties you can drill into and filter by
A funnel with three steps and the share of visitors continuing at each step.
Funnels and goals for the demo site.

Read what changed, then check the numbers

Grynlume summarises unusual changes and rising pages in plain language. Every sentence stays attached to the figures behind it, so a quick reality check is one glance away.

  • Anomaly callouts with the size of the deviation
  • Largest page and source movers
  • Works without any external AI service
The insights panel with a plain-language summary and the anomalies and movers it is based on.
Insights for the demo site.

How a visitor stays anonymous

Grynlume combines the request's IP address and user agent with a secret that changes every day, keeps only the resulting hash, and destroys yesterday's secret. A visitor can be counted today and cannot be recognised tomorrow.

  • No cookies and nothing stored in the browser
  • Raw IP address and user agent never touch disk
  • Bots and headless browsers are dropped at the door
Daily rotating visitor hash IP address and user agent combine with a daily rotating salt to create a short-lived hash. IP addressUser agent Daily secretreplaced at midnight Visitor hashgone tomorrow
What is stored: the hash on the right. What is not: everything on the left.

Three steps from install to first pageview

One Node process with a single SQLite file. No framework, no build step, nothing to sign up for.

  1. Start the server

    One runtime dependency. The first start seeds a ninety-day demo site so the dashboard is never empty.

    npm install npm start # http://localhost:4600
  2. Add the script to your site

    Under 2.5 KB, deferred, no cookies. Outbound links and downloads are tracked without extra code.

    <script defer data-domain="yoursite.com" src="https://stats.yoursite.com/pa.js"></script>
  3. Open the dashboard

    Register the site once, then read it at its own address. Custom events are one call.

    window.pa('Signup', { props: { plan: 'pro' } })

Serve the script and the collector from first-party paths on your own domain and content blockers leave it alone. Put a TLS-terminating proxy in front for production.

Software you host, not a service you rent

Grynlume is self-hosted software and is not offered as a hosted service. The dashboards you see on this page run on a private server and are not reachable from the internet, which is the point.

If you would like to run Grynlume for your site, see the full demo, or ask about the privacy model, write to us. Plain email, answered by a person.

Get in touch

One address for everything: questions, demo access, press and legal.

Email contact@grynlume.com contact@grynlume.com