New features, improvements, and fixes to ShonyLabs Analytics — updated as we ship. RSS feed.
Changes shipped in the last 12 months
OctNovDecJanFebMarAprMayJunJulAugSep
Live map favicons, plus ShonyLabs branding on shared pages
ImprovedThe public live map's header now shows your site's own favicon next to its domain, so it's easier to tell at a glance which site you're looking at.
ImprovedPublic dashboards and public live maps now carry a small ShonyLabs mark (linking to shonylabs.com) on the pages you choose to share or embed, and the public dashboard header includes a "Start free trial" link.
Choose the one metric — revenue, MRR, or a goal — that headlines your dashboard with its own chart color, connect a payment provider right from onboarding, and brand mention matching just got more accurate.
NewPick a "#1 KPI" for each site (Settings → General): Revenue, MRR (recurring revenue over the trailing 30 days), or a specific goal. It gets its own stat tile on your dashboard between Visitors and Bounce rate, and its own color for the Visitors over time chart's revenue bars.
NewAdding a website now offers an optional last step to connect your payment provider (Stripe, Polar, Lemon Squeezy, Paddle, or Shopify) right after your tracking snippet verifies, instead of only being reachable later from Settings → Revenue.
ImprovedThe Add website step now asks for your timezone up front, pre-filled from your browser with a live local-time preview, instead of only being set later from Settings.
ImprovedTurning on cookieless tracking — during setup or later from Settings → Script — now shows a short summary of the trade-offs (no cookies, but weaker multi-day attribution and no Visitors/Journey tabs) before it takes effect, every time you turn it on.
ImprovedSession replay now clearly shows as unavailable for a site set to cookieless tracking, instead of silently recording nothing when turned on. Heatmaps aren't affected — they never needed a stable visitor id to begin with.
ImprovedBreakdown cards (Acquisition, Locations, Devices, and more) now group each card's view tabs next to its title, with sorting and filters kept at the end of the row.
ImprovedBrand mention search terms (Settings → Mentions) are now a tag field instead of a textarea — type one and press Enter to add it.
FixedBrand mention matching is more accurate: a mention now has to actually contain your search term somewhere in its title, body, or author, instead of relying entirely on each platform's own approximate search relevance.
ImprovedThis changelog now shows a small bar graph of how much shipped each month over the trailing year, right above the timeline below.
Permanently erase one visitor's data for GDPR requests without deleting your whole site, and cookieless-tracking sites now automatically hide per-visitor views since there's no stable identity to show.
NewYou can now permanently erase a single visitor's data — their events, identity record, tags, and transactions — right from their journey page. Built for fulfilling a GDPR erasure request from one of your own visitors without deleting your whole site.
ImprovedCookieless tracking is now a saved setting per site (Settings → Script), not just a snippet you copy. A site marked cookieless automatically hides its Visitors and Journey views, since a cookieless visitor id is a rotating daily hash, not a stable identity to build a profile from.
ImprovedAdding a new website now explains the cookie-based vs. cookieless trade-off inline, with a link to the GDPR doc, instead of two unlabeled buttons.
Bot traffic is now checked against each operator's published IP ranges, impersonated crawlers are flagged separately, and bot traffic gets its own per-cycle allowance with a self-serve add-on.
NewBot traffic is now verified. When a request says it's GPTBot, Googlebot, Bingbot, PerplexityBot (and more), we check its IP against that operator's own published range list. Anything claiming to be a known crawler from an IP outside those ranges is shown separately under "Impersonated crawlers" and kept out of your real bot numbers.
NewBot / crawler traffic now has its own allowance, separate from your event quota. If you reach it, your dashboard stays live and your normal analytics keeps tracking — only new bot traffic pauses until your cycle resets. You can add capacity any time from the Billing page ($9/mo per extra 1,000,000 requests).
NewSettings → Exclusions has a new "Exclude crawlers" list — switch off any specific bot (for example a scraper hitting you hard) and it stops being recorded and stops counting toward your bot allowance. You can also delete anything it already recorded.
ImprovedThe bot catalog gained more crawlers (PetalBot, SeznamBot, ImageSiftBot, Meta-ExternalFetcher, Timpibot) and each entry now tracks how it's verified.
YouTube & Mastodon mentions, mention avatars, and mobile fixes
NewBrand mentions (Growth plan) can now scan YouTube and Mastodon alongside 𝕏, Bluesky, Hacker News, and Google News. Same setup — the terms under Settings → Mentions are used for every source, and each hit lands on your Visitors over time chart and in the email digest.
FixedThe public live map now keeps its close button reachable on a phone, and opening the live map from an embedded public dashboard now shows an "Exit live map" button to get back — so you're never stuck on the map.
FixedThe homepage no longer scrolls sideways a little on some mobile browsers, and tapping a point on the Visitors over time chart on a phone no longer pushes the tooltip off-screen.
FixedModals (add-a-note, breakdown details, and the rest) now stand out properly against the page in dark mode — lighter surface, stronger dimmed backdrop.
ImprovedThe public/embedded dashboard now shows your brand-mention markers on the chart too (they link to public posts). Notes and deploys stay private to you.
ImprovedSite and referrer favicons now come from a sharper source, and a rare chart-related hydration warning on the embedded public dashboard is gone.
ImprovedBrand mentions (Growth plan) now show the poster's profile picture on your Visitors over time chart. A point can carry the three most recent mentions' avatars, so at a glance you can tell who's talking — mentions from sources without a photo, like Hacker News and Google News, still show as a plain marker.
ImprovedA mention on a point always wins the marker now: if a deploy and a mention land in the same slot, you see the mention. Deploys still show on their own when there's no mention there.
ImprovedOpening a chart point's Mentions or Commits tab now lists only what happened in that exact slot — the hour or day you clicked — instead of everything from the whole calendar day.
ImprovedIn the note editor, the "Add a note" box is now pinned to the bottom while your existing notes scroll above it, so the Save button is always in reach even on a point with a lot of notes.
ImprovedShared, public dashboards now offer a shorter list of date ranges — up to "Month to date" — without the open-ended Year to date, All time, and Custom options.
Subscribe to a plan and manage billing yourself from a new Billing page — monthly or yearly, change plans anytime, and preview any plan free during your trial.
NewNew Billing page: subscribe to Starter or Growth, monthly or yearly, and check out with a card. Billing runs through our payment provider as merchant of record, so sales tax and VAT are calculated and handled for you, with invoices and receipts in a portal you can open anytime.
NewChange your plan whenever you need to — switching tier or event quota updates your existing subscription in place, with a prorated charge or credit, instead of starting a second one.
NewWhile you're still in your trial, switch between tiers and event quotas on the Billing page for free, with no card, so you can try a Growth-only feature like brand mentions before committing. Starter covers one website and up to three teammates per site; Growth removes those limits.
ImprovedWhen a trial ends you're now taken to the Billing page to pick a plan, instead of being blocked at the login screen. If a renewal payment fails, there's a short grace period where everything keeps working while you update your card.
Improved"Usage & plan" now lives on the Billing page rather than in Account settings.
ImprovedDocs pages now personalize their code samples to a specific site — with two or more sites, a picker in the docs header drops the right site ID straight into every snippet and settings link.
FixedImproved text contrast on several light-mode warnings and status labels that were washed out and hard to read.
Brand mentions now watch Bluesky, Hacker News, and Google News too
ImprovedBrand mentions (Growth plan) now scans Bluesky, Hacker News — both stories and comments — and Google News alongside 𝕏. Same setup: the terms you already entered under Settings → Mentions are used for every source, each mention lands on your Visitors over time chart at the time it was posted, and the email digest covers all of them. Hacker News and Google News also reach further back than X's roughly-seven-day search window.
New on the Growth plan: we scan X for mentions of your brand and pin each one to your Visitors over time chart, next to your notes and deploys.
NewBrand mentions (Growth plan): give us a few search terms — your brand name, a product, your @handle — and we scan 𝕏 for new posts every half hour. Each mention shows up on your Visitors over time chart at the moment it was posted, so a traffic bump lines up with the post behind it. Hover a point to read it, or open the chart's new Mentions tab for the full list with links out. You also get a short email digest when new ones turn up. Turn it on under Settings → Mentions.
NewFetch your site's live visitor count as JSON from a public, CORS-enabled endpoint and drop it anywhere on your own site — the same number behind the Realtime widget, without the styled iframe. There's a copy-paste example on the Realtime tab under Settings → Widget, gated by the same public-widget opt-in.
ImprovedConnecting a Polar payment account now surfaces Polar's actual explanation when something's wrong with the details you entered, instead of a generic rejection message.
Fix-commit tracking, instant settings, and a smoother first setup
NewMark an error issue as fixed by a specific commit — SHA, optional message and link, plus your own note — right from the Errors page.
NewNew accounts get a quick explainer of what ShonyLabs Analytics does right after signing up.
ImprovedAdding a website now shows your tracking snippet immediately and checks automatically for it in the background — no more manually clicking "Check installation."
ImprovedSettings toggles (error tracking, heatmaps, live map, session replay, revenue, public widgets) save the instant you flip them, with a quick confirmation instead of a separate Save button.
ImprovedRemoving someone from your team now asks you to confirm first.
Get notified the moment your app starts throwing errors — from your own backend or visitors' browsers — grouped into issues, with visitor attribution.
NewReport server-side errors from your own backend (Laravel, Express, or anything that can make an HTTP request) via a new API, with your own rules for which response codes count as an error.
NewTurn on frontend error tracking to automatically capture uncaught JavaScript errors and unhandled promise rejections from visitors' browsers — no code change beyond the tracking snippet you've already installed.
NewRepeat occurrences of the same error are grouped into one issue instead of flooding you with duplicates, with an occurrence count and first/last seen times.
NewGet an email the moment a new error shows up, or if one you'd already marked resolved starts happening again.
NewSee which visitor an error happened to — with their real name if they're identified — linked straight to their visitor journey.
NewNew Errors page and a Settings → Errors tab for configuring both tracking modes.
Filter your dashboard from any row, save filter combinations as reusable segments, and see how much traffic comes from AI assistants and crawlers.
NewClick the filter icon on any row — country, region, city, browser, OS, device, source, keyword, hostname, or page — to instantly scope the whole dashboard to just that value, not just Channel and Referrer like before. A quick loading indicator confirms the moment it's applied.
NewSave your current combination of filters as a named segment and reapply it in one click anytime from the filters bar.
NewNew AI traffic card shows how much of your traffic comes from AI assistants answering questions (ChatGPT, Claude, Perplexity, and more), AI-powered search indexing, and AI crawlers training on your content — broken out separately with its own trend chart.
NewDrill into a referrer to see exactly which of its pages linked to you.
ImprovedRedesigned the Channel chart with labeled segments and source icons for an easier read at a glance.
ImprovedThe visitors chart now marks a notable conversion with a small avatar, flagging first-time customers with a star.
FixedFiltering by a value no longer collapses that same breakdown's own chart down to a single row — it stays fully visible so you can compare and switch between values.
FixedTooltips and hover cards could sometimes get stuck open on mobile; they now dismiss properly when you tap elsewhere or scroll.
FixedFixed a rare case where refreshing a checkout confirmation page could double-count a single purchase.
Connect Stripe, Polar, Lemon Squeezy, Paddle, or Shopify from a new Revenue settings page for automatic revenue tracking, see previews under heatmap clicks, and query stats via a new CLI or MCP server.
NewNew Settings → Revenue page: connect Stripe, Polar, Lemon Squeezy, Paddle, or Shopify by pasting a restricted API key — ShonyLabs sets up the webhook for you, so revenue starts flowing in automatically with no backend integration of your own required.
NewHeatmaps now show a real preview of the page under the click-density dots, instead of an empty canvas.
NewQuery your stats, live visitor count, and funnels from the command line with a new CLI, or connect them to Claude and other AI assistants via a new MCP server.
NewInstall the ShonyLabs dashboard as an app on your phone or desktop.
NewSession replay now automatically masks credit-card-shaped numbers wherever they appear on the page, on top of already masking every form field's value.
ImprovedThe session replay list now has search, pagination, and shows visitor names instead of raw IDs.
FixedSession replay recordings could sometimes fail to record or play back correctly, especially on pages with a lot of content.
ImprovedAdded tracking snippet setup guides for Webflow, Wix, Squarespace, Ghost, Framer, Google Tag Manager, and WordPress.
The GitHub integration now backfills your full repository commit history, uninstalls are handled cleanly, and the chart annotation modal got a redesign.
NewThe GitHub integration now backfills and keeps syncing your repository's commit history, not just new pushes made after connecting.
ImprovedRedesigned the "Add note" modal used to annotate charts.
ImprovedUninstalling the GitHub app from a repo is now handled cleanly instead of leaving a broken connection behind.
Connect Search Console for top search queries with estimated revenue per query, and GitHub for recent deploys — plus team ownership transfer, chart drill-down, and embeddable widgets.
NewConnect Google Search Console to see your top search queries — with an estimated revenue per query — right on your site dashboard.
NewConnect GitHub to see recent deploys and Actions runs next to your traffic, so you can spot the exact release behind a change in your numbers.
NewDrill down into any stat tile (visitors, revenue, bounce rate, and more) to see it broken out over time.
NewEmbed public widgets — like a live visitor counter — directly on your own site.
ImprovedTeam ownership can now be transferred to another member, with clearer role permissions throughout.
ImprovedOverhauled the live visitor globe map.
ImprovedSettings now auto-save as you make changes — no more Save button to remember.
ImprovedFilter your transactions and attach custom metadata (plan, SKU, coupon code, and more) to each one.
ImprovedRevenue now breaks down correctly per currency.
FixedDeleting an event didn't always fully remove it.
Manage API keys from Settings, report revenue server-to-server through a rewritten transactions API, and watch your live dashboard reflect it in real time.
NewManage API keys directly from Settings.
ImprovedRewrote the transactions API used for server-to-server revenue reporting.
ImprovedThe live dashboard now reflects revenue accurately in real time.
ImprovedAdded a quick link to the docs from the account menu.
Share or embed your live visitor globe map publicly, invite teammates with role-based permissions, and exclude unwanted traffic by IP, path, hostname, or country.
NewShare your live visitor globe map publicly, or embed it on your own site.
NewInvite teammates to a site with role-based permissions.
NewExclude traffic by IP, path, hostname, or country from a site's analytics.
Follow a single visitor's full path through your site, attach real user identity with identify(), and annotate charts with notes explaining spikes and dips.
NewRedesigned visitor journey page.
NewAn identify() API to attach real user identity to visitors.
NewAdd notes directly on charts to annotate what happened on a given day.
ShonyLabs Analytics is live: self-hosted, privacy-friendly web analytics with a one-line tracking snippet, custom goals, funnels, and visitor journeys.
NewSelf-hosted, privacy-friendly web analytics — add a site, paste one script tag, and start seeing pageviews immediately.
NewPer-site dashboards with visitor stats, breakdowns, and custom goal/revenue tracking.
NewFunnels and visitor journey tracking.
NewServer-side and bot traffic tracking, for crawlers and requests that never run a browser.