Privacy-first analytics

Understand your traffic.
Respect your visitors.

Lightweight, private web analytics without cookies and without profiling. Every statistic that matters in one simple panel, with no tracking of people.

Free plan with no time limit. No card. Setup takes a minute.

The actual panel, not a drawing of one. Demo data from our own test site.
The actual panel, not a drawing of one. Demo data from our own test site.

What you get on day one

  • No consent banner

    Nothing is written to the visitor's device, so the rule that requires consent for storage does not reach us. You see the whole audience, not the half that clicked accept.

  • 1.6 kB of script

    That is what the browser downloads, compressed with brotli: 4.0 kB before compression, one request, no dependencies. It does not ask the browser about itself, so it changes nothing you measure.

  • Data stays in the EU

    Collection, storage and reports all run on servers in the European Union. No transfer outside it, so there is no adequacy question to answer in your records.

  • Channels that add up

    Affiliate traffic is recognised four separate ways, AI assistants get their own channel, and a campaign tagged cpc from a social network is not filed as paid search. Every visit lands in the channel it actually came from.

How it works without cookies

A visitor is recognised by a pseudonym computed on the fly and thrown away every midnight.

Instead of storing anything in the browser, we compute a single-use pseudonym from the truncated network, the browser and a random salt that rotates every midnight. Salts older than two days are deleted.

pseudonym = HMAC(daily_salt, site_id + network/24 + user_agent)

After 24 hours

The salt rotates and the same visitor gets a different pseudonym. Their visits across two days cannot be linked.

Different on every site

The site ID goes into the calculation, so the same person has a different pseudonym with each of our customers.

Address truncated first

The network goes into the calculation, not the address: IPv4 without its last octet, IPv6 down to /48. The full address lives in memory for one request and has no column to land in.

Everything we store about one pageview

path
/pricing
referrer_source
Google
country_code
PL
browser
Chrome 141
device_type
desktop
screen_class
XL
duration_seconds
47

Fields that do not exist in our schema

  • ip_address
  • cookie_id
  • user_id
  • fingerprint

Why this is not tracking

European data protection authorities, the French CNIL foremost among them, allow audience measurement without consent when it meets specific conditions. Here is each one, and what we do to meet it.

  • Address truncated before it meets the browser string

    IPv4 loses its last octet, IPv6 is cut to /48, and only that network enters the calculation. One input therefore covers 256 networks rather than one connection. The full address is stored nowhere: the database schema has no column for it.

  • A pseudonym with no persistence

    The salt changes with every UTC day and its row leaves the database after two days. A pseudonym from yesterday cannot be joined to one from today, not by the customer and not by us, because the material needed to do it no longer exists.

  • No tracking across sites

    The site id goes into the hash, so the same person has two different pseudonyms with two of our customers. Building a profile spanning several sites is not technically possible here.

  • No cookies, no device interrogation

    The script writes no cookies and no localStorage, and asks the browser nothing, no canvas, no font list, no screen resolution. Everything except the page address comes from headers your browser sends to every website. The Do Not Track header turns measurement off entirely.

  • Data only for the site owner

    Only the person who collected the statistics can see them. We do not sell them, do not join them with anything, and load no third-party scripts in the dashboard. Country and city come from a local database on our own server, without asking anyone.

  • Bounded retention

    Events are deleted after 25 months. That is the upper bound CNIL points to for measurement data. Salts, the only material that could tie anything to an address, after two days.

This describes our implementation; it is not legal advice. You need to assess compliance for your own site yourself, ideally with a lawyer. It also depends on whatever else runs on that site.

Plans and pricing

Two plans, no asterisks.

The free plan is not a trial. One site, no time limit, no card, and no ceiling on how much traffic it measures. Pro removes the two limits the free plan has: the number of sites and the history window.

Free

0 EUR

forever, no card

  • One website
  • No pageview limit
  • 3 months of history
  • Custom events and goals
  • CSV export
  • A link back is welcome, never required

Pro

49 EUR

per month, whole account

  • Everything in Free
  • Unlimited websites
  • 24 months of history
  • Team access

One price for the account, whatever it holds. Ten sites cost the same as one, and no amount of traffic changes the bill.

Running something unusual?

Pro has no traffic ceiling, so most cases are simply covered. Very large volumes, a dedicated instance or a longer retention period are worth a conversation, because they touch infrastructure rather than a price list.

We would rather price what you actually need than push it into a plan that does not fit.

Talk to us

We keep your data for 25 months on both plans. The free plan shows the last 3 months of it; moving to Pro reveals the archive at once, and moving back hides it rather than deleting it.

Start measuring in a minute

Since we don't store cookies, you don't have to ask about them. Less clicking for your visitors, less paperwork for you.

Create a free account Ask us a question

Sign up in a minute. No card, no sales call.

Questions people ask before switching

Every answer below can be checked against the product. Where something does not work, it says so.

Do I need a consent banner?
Not for the measurement itself. The consent requirement in Article 5(3) of the ePrivacy Directive covers storing and reading data on a device, and metuno stores nothing: no cookies, no localStorage, nothing. If your site uses anything else that writes to the device, embedded video or advertising pixels for example, you will still need a banner because of those.
How do you recognise a visitor without cookies?
With a pseudonym computed on the fly: a hash of the site identifier, a truncated network address and the browser header, signed with a random salt for that day. The full address is never stored, the salt is deleted after two days, and the site identifier goes into the hash, so the same person on two sites has two different pseudonyms. Tracking anyone between sites is technically impossible.
How much does the script weigh?
1.6 kB compressed with brotli, 4.0 kB before compression. One request, no dependencies, loaded with defer so it never blocks rendering. It does not ask the browser about itself, so it triggers no layout recalculation and changes nothing you measure.
Where is the data stored?
On servers in Warsaw, in the European Union, with no non EU service connected to them. Collection, storage and reports all run there. Events are deleted automatically 25 months after collection.
What about visitors with JavaScript switched off?
You get an image tag to paste inside noscript, and those visits are recorded too: path, browser, system and country. What it cannot tell you is where the visit came from, because without a script there is nothing to read that from, so it lands in direct traffic. Partial data, honestly labelled, beats a silent gap.
Can I take my data out?
Yes, in two ways. Every report exports to CSV, and every site has a backup view where you download the raw events month by month, all columns, no aggregation. Both work on the free plan. Measurement data is not covered by our backups, so if it matters to you, download it monthly and keep it yourself. We say that in the terms rather than in the small print.
What does it cost?
The free plan has no time limit: one site, no pageview ceiling, 3 months of history, custom events, goals and CSV export. Pro is 49 EUR a month for the whole account and removes the two free plan limits: it allows any number of sites and 24 months of history.
Will the numbers match Google Analytics?
No, and a match would not be good news. We see traffic that tools behind a consent banner never will, and we are blocked less often. We also count a visitor differently, because we hold no identifier that outlives a single day. Run both side by side for a month and compare directions and proportions, not values.

Light, and it shows

The panel is written in Svelte, which is where its lightness comes from. The script on your site weighs 1.6 kB, loads from our servers and makes one request, so it adds no work for your server and almost none for the visitor browser.

enpldees