Changelog
Every release of Analytik, newest first.
The current version is 1.27.0. This page is copied from packages/analytik/CHANGELOG.md at build time, the same file that ships in the npm package.
All notable changes to this project are documented in this file. The format follows Keep a Changelog and the project uses Semantic Versioning.
[Unreleased]
[1.27.0]
Added
- Accessibility: axe checks of every view in both themes, larger touch targets, a screen reader message after data changes, and a place list for the map.
- Click a point of a site’s sparkline on All sites to open its Overview for that day.
- Demo: hints on what to try, a refusal that says how to try writes locally, Core Web Vitals, goal targets and notes in the seed.
[1.26.0]
Added
- An OpenAPI 3.1 document of the API key routes at
GET /v1/openapi.json, and an optional IP address allow list per API key.
[1.25.0]
Added
- API keys for scripts and tools: several keys, read or write, per site, with roll, disable, delete, expiry, limits and an activity log, each step behind the admin password; also served under
/v1, with e-mail notices.
[1.24.0]
Added
- Outgoing webhooks for goals and payments (signed JSON or a chat line), managed in Settings → Payments and API.
- Server
hooksoption (beforeIngest,onEvent,onPayment) andwebhooks.fetchto guard outgoing requests. - Share links work as a Stats API token:
Authorization: Bearer, a header or in the address. - Journeys zooms and moves: buttons, Ctrl or ⌘ with the wheel, drag, and the keys +, -, 0 and arrows.
Fixed
- The Events list loads with an ad blocker on (
/event-log,/eventsstill works); a blocked request says so.
[1.23.0]
Added
- Properties of a goal: break its events down by key and value in the Events view, and filter every view with
prop:<key>. /eventlimits one client to 300 events a minute per site (rateLimitoption), answering 429 withRetry-After.
Changed
- The retention purge runs after the response where the runtime allows it; migrations add three indexes (slower on very large tables).
[1.22.0]
Added
- Sync from website: Settings reads the site’s own page and takes over its name, icon and colour (you choose which), and says if the tracker is on the page; new sites fill themselves in.
- The refresh button on All sites turns while it loads.
Changed
- Site icons are stored by the server and shown from there; the standalone page no longer allows images from other hosts.
[1.21.0]
Changed
- Dashboard header: a fade and an arrow show on the side where more views are hidden.
- Setup help: the not-found reply names the base path,
/healthshows the failure to admins,doctorchecks Postgres against its own migrations, and new framework and troubleshooting docs.
[1.20.0]
Added
- Journeys view (where sessions go after the first page) and Retention view (weekly cohorts of new visitors, Persistent mode), both admin only.
[1.19.0]
Changed
- Site sparklines start at zero and show a faint dashed baseline for it.
[1.18.0]
Added
- Share links are made for the Mac menu bar app or as a shared link with a dropdown of views, in Settings → Sharing and Defaults; Select all included.
Changed
- Share links may read the site icon, so the Mac app shows it.
- The links made in Defaults stay while you switch settings pages.
[1.17.0]
Added
analytik menubarinstalls the Mac menu bar app; Settings → Sharing shows the command and a Get the Mac app button.
[1.16.0]
Added
- Settings → Sharing shows a Mac app link next to a new share link, for the Mac menu bar app in
apps/menubar. - A “Got an idea?” link under the dashboard opens a new GitHub issue.
- Settings → Defaults sets timezone, currency, privacy, retention and tracking once for new sites, and applies a card to every site after confirming.
- Pausing tracking asks for confirmation.
- Settings → Defaults creates read-only share links for several sites at once, with one text that adds them all to the Mac app.
Changed
- Settings → Payments and API lists only the payment providers you added; add and remove them in place.
Fixed
- The site name in a shared dashboard’s toolbar is as tall as the other controls.
[1.15.0]
Added
- Goal targets in Settings → Goals (a number per week, month or quarter) with progress and an estimate in the overview’s Goals block, and
GET /api/sites/:id/targets. Runanalytik upgradeto add the new column. - Core Web Vitals (LCP, INP, CLS), opt in per site and sampled:
data-vitalsloads a 0.5 kB script for sampled page views only, reports ride on the leave beacon, and the Pages view rates the 75th percentile per page. Runanalytik upgradeto add the new table.
Changed
- Meters in the channel, source, country, browser, OS and device breakdowns show each row’s share of the total; the site switcher is sorted by name; new projects get an
analytik:upgradescript (bun upgradeis a Bun command).
[1.14.0]
Added
- About 50 more browsers recognised (Internet Explorer, UC, QQ, Huawei, Mi, Whale, Waterfox, Falkon, in-app browsers and more), most with a mark in the dashboard.
- One payment provider account can feed several sites: a webhook ignores payments for another site (
analytik_site_idfromattribution(), a visitor seen only elsewhere, or a renewal another site sold).
[1.13.0]
Added
- Share links in Settings → Sharing (named, limited to chosen views, with expiry and revoke, cached by your CDN), read-only shared dashboards, and notes on the charts, also from
POST /api/v1/annotations. Runanalytik upgradeto add the new tables. - Export CSV on every table and breakdown, and Export PNG on every chart.
[1.12.0]
Added
- Bots view: which crawlers (AI answers, indexing, training) request which pages, reported by your server with
POST /api/v1/bots. Runanalytik upgradeto add the new table. - Email notifications: payment alerts, a daily or weekly summary and a tracker-down warning, set up in Settings → Email with a sender from
analytik/emailand a schedule (scheduled()orPOST /api/v1/cron). Runanalytik upgradeto add the new tables. - Payment webhook adapters for Paddle, Polar, Razorpay, Creem and Gumroad, with their logos.
- “Import from another tool” in the site switcher.
Security
- Login attempts are counted before the password check,
identify()no longer rewrites a stored email, name or user id, and API responses are sent withno-storeandnosniff.
[1.11.1]
Fixed
- The 1.11.0 release build failed on a currency-order test and never reached npm; 1.11.1 has the same features.
[1.11.0]
Added
- Ignore your own visits: IP ranges (CIDR), “Add my current IP”, an “ignore this browser” link and an option to ignore signed-in admins. Run
analytik upgradeto add the new column. - All sites: a trend line and the change on each card, with a 24 hours / 7 / 30 days picker and Refresh.
- Sessions: show, hide and reorder the table’s columns.
- The dashboard remembers your period, comparison and breakdown tabs between visits.
- Brand logos in the Site integration prompt and Import data pickers, a “Copied” toast, and pickers in alphabetical order.
Fixed
- The Sessions table no longer makes the whole page scroll sideways.
- Correct GoatCounter, Matomo and Dodo Payments logos.
[1.10.0]
Added
- Data import from Matomo, GoatCounter, Google Analytics 4 (BigQuery export) and PostHog, next to Umami and Simple Analytics; platform logos in the import dialog and sample files in Debug.
analytik upgradeprints the Worker size next to Cloudflare’s limit; new projects get anupgradescript.
[1.9.2]
Fixed
- The 1.9.1 release build failed on a slow end-to-end test and never reached npm; 1.9.2 has the same features.
[1.9.1]
Fixed
- The 1.9.0 release build failed on two flaky tests and never reached npm; 1.9.1 has the same features.
[1.9.0]
Added
- Data import from Umami and Simple Analytics: Settings → Data → Import data, or
analytik import. Repeat-safe, removable, kept apart from tracked visits. - All sites: “Add website” is now a menu with New website and Import from another tool (platform choice, drag and drop, preview, confirmation).
- Copy button for page URLs in Pages, Events, Visitor timeline and the live feed.
- Debug: downloadable sample import files.
Changed
- Migration
0002_importedadds animportedcolumn to sessions and events (also in exports). - Average visit duration ignores imported visits with unknown duration.
- Toolbar and dialogs get a divider and shadow only while content scrolls beneath them; dialog headings and buttons stay in view.
- Pause tracking in the site menu is amber, Resume is green; buttons have a hover state.
Fixed
- Long URLs no longer overflow the live feed.
[1.8.1]
Fixed
- 1.8.0 failed its release checks and never reached npm; 1.8.1 has the same features.
[1.8.0]
Added
- Command palette (⌘K) and keyboard shortcuts.
- Saved filter segments.
- Compare periods in the toolbar, charts and breakdowns.
- Changelog section in Settings.
- Dashboard translated into 18 languages, with a
localeprop and amessagesoverride. - With
urlState, the address also keeps the Settings section, range, interval and filters.
Changed
- Country flags are round SVG flags (Circle Flags) instead of emoji.
- New default number format, “The language’s own”.
Fixed
- No more scrolling past the end of the standalone dashboard.
[1.7.0]
Changed
- A shorter Add a website dialog: domain and name first, other options in a collapsible row; a new site starts with the newest site’s settings.
[1.6.0]
Changed
- The tracker is served at
/js/analytik.js; the old/analytik.jsstill works inwithDashboard.
[1.5.0]
Added
- Privacy modes explain what they store and whether they need a cookie banner.
- Tracking code: mode descriptions and a prompt for coding assistants.
Fixed
- Site icon edge in the dark theme.
[1.4.1]
Changed
- The Live map follows the dashboard theme.
Fixed
- Padding of empty and loading states.
[1.4.0]
Added
urlStatekeeps the open site and view in the address.
Changed
- Smaller footer; no page jump when switching views.
[1.3.0]
Added
- Add several overview blocks at once; theme switch in the header.
Changed
- Debug section only with
debug: true; spacing and badge fixes.
[1.2.0]
Added
- Update notice,
analytik upgrade, Dependabot config in the templates and server-fetched site icons. - Theme switch on the login screen.
Changed
- New login screen and error notes; pause and delete styled as warning and danger.
[1.1.0]
Added
analytik/standalone(withDashboard), theanalytik createcommand and Cloudflare and Vercel templates.- Dashboard theme setting.
[1.0.0]
Added
- Hono server with strict, enriched and persistent privacy modes.
- D1, Postgres, SQLite and in-memory storage.
- Tracker script, ESM client, React bindings and an embeddable dashboard.
- Payments API with Stripe, Dodo and Lemon Squeezy.
- All sites view, pause and delete sites, request savings and debug tools.