Pricing

Two plans. Both of them
count events, not people.

Priced on the events we store for you, because that is the thing that costs us anything. Teammates are unlimited on both — an analytics tool nobody can afford to give access to is an analytics tool nobody reads.

Free

$0 forever

Events a month
100,000
Sites
1
Teammates
Unlimited
Data retention
Up to 25 months, your choice
Shared dashboards
Included
Goals and funnels
Included

No card, no trial clock. Upgrade if and when you outgrow it.

Pro

$40 per month

Events a month
10,000,000
Sites
20
Teammates
Unlimited
Data retention
Up to 25 months, your choice
Shared dashboards
Included
Goals and funnels
Included

Cancel any time, from the same portal you pay in. No annual commitment and no per-seat pricing.

What the limit actually does

We stop recording.
We do not bill you
for going over.

There is no overage charge. Once an account passes its monthly allowance, further events are not recorded, and the allowance resets on the first of the month. You will never get an invoice larger than the price above.

You are told before it happens. The account's owner gets an email at 80% and again if the allowance runs out, and the figure is on the plan screen the whole time. A quota nobody warned you about is indistinguishable from a broken installation.

Bots do not count. Crawler traffic is dropped before it is stored, and so are events claiming a hostname that is not yours. Neither reaches your allowance, so none of it is spent on measurement you cannot read.

Downgrading never deletes anything. Cancel while you have twenty sites and all twenty keep collecting; you simply cannot add a twenty-first until you are back under the limit. Nor does the month you are in get cut short: an account that has already recorded more than the smaller plan covers still gets that plan's full allowance for the rest of that month. Your data is yours, and a billing event is not a reason to destroy it.

Or don't pay us at all

Self-host it.
No limits, no billing.

Tastatur is AGPL-3.0 and the hosted service runs the same code you can. A self-hosted install has no plans, no event ceiling and no Stripe: it is one environment variable, and the upgrade interface disappears entirely. You bring PostgreSQL with TimescaleDB and a Redis, and you own every row.