Changelog
Releases, in reverse chronological order. Major versions get a write-up; minor versions get a bullet.
v1.0.0 — 2026-05-09
The first stable release. We’ve been running this in production for the last six months across ~40 sites; the feature set hasn’t moved in three. Time to drop the beta tag.
- Stable API. No more breaking changes between minor versions. The
tally()function signature, thedata-siteattribute, the dashboard REST API — all locked. - Self-hosted parity. The Docker image, the SQLite default, the optional Postgres mode, the migration story — fully exercised by the cloud product. Same image, same code path.
- Single-page-app autopilot. History API navigations are detected without configuration in React Router, SvelteKit, Next.js App Router, Vue Router, and Astro view transitions.
- CSV export. Raw-events export is now available from the dashboard on every plan.
v0.9.4 — 2026-04-22
- Fixed a regression where the daily salt rotation could fire twice on servers with a clock that jittered backward at midnight UTC.
- Added a
--dry-runflag to the migration CLI. - Documentation for the first-party-hosting proxy setup.
v0.9.3 — 2026-04-08
- Real-time dashboard now updates via SSE instead of long-polling. Dropped the upstream NGINX timeout requirement.
- Funnel definitions can now reference custom-event properties.
v0.9.0 — 2026-03-15
- Custom events API.
tally('signup', { plan: 'pro' })is now a thing. - Funnels (closed beta).
- Breaking: the
t.jsscript is now under/t.jsinstead of/track.js. Old path serves a 301 redirect; will be removed in v1.1.
v0.8.0 — 2026-02-04
- New, smaller tracker script (was 1.4 KB, now 0.9 KB gzipped).
- Initial Postgres backend support.
- Breaking: dashboard moved from
/adminto/dashboard.