v1.32.0
September 4, 2026Over-time charts now show zeros for quiet periods.
Widgets
- -Over-time charts fill every time bucket in the range, showing 0 where no events happened instead of skipping straight to the next bucket with data. Quiet stretches now look quiet rather than vanishing. Applies to counts, sums and unique counts; averages and percentiles keep skipping empty buckets, since an average of nothing is not 0.
- -A new "Fill gaps with zero" option in the widget editor turns this off per widget. It is on for every widget by default, including existing ones.
- -Stat sparklines follow the same rule, so a lull no longer compresses the trend line.
v1.31.0
August 31, 2026Mute noisy event types in the Events view.
Events
- -Mute an event type from the left rail to keep it out of the live list - handy when a heartbeat event floods the view. Muted types stay dimmed in the rail, still count everywhere else, and clicking one still shows its events. Muting is per browser and per environment.
v1.30.1
August 29, 2026Template dashboards now chart every event their integration sends.
Templates
- -The Discord bot and CS2 server templates now include widgets for their stats heartbeat and map rotation events, so connecting the integration no longer flags that data as having no widget.
- -The "new datapoint with no widget" notice now recognises events used inside funnels, retention and KPI widgets, and no longer counts note or external widgets as coverage.
v1.30.0
August 28, 2026Templates now install into their own environment.
Templates
- -Installing a template now creates a dedicated environment for it, named after the template. Two templates that use the same event names - every game template tracks player joins - no longer mix their data. Reinstalling a template reuses its environment.
- -The connect step mints one API key per installed template, each scoped to that template's environment and already dropped into its setup snippet.
- -Template detail pages preview every widget with sample data - counters, charts, heatmaps, retention grids and funnels - so you can see what you get before installing.
- -Publish to the marketplace from inside the app: any dashboard's New menu now has Marketplace template. Your published templates live in workspace settings with their review status, repo verification, version sync and a README install-count badge.
Site
- -The blog is now on the main site at /blog.
v1.29.0
August 28, 2026Dashboard templates: install a ready-made dashboard in one click.
Templates
- -The template marketplace is live at /templates. Six official templates - Minecraft, Discord bots, FiveM, Rust, Counter-Strike 2 and web services - each a full dashboard wired to the events its integration already sends.
- -Installing a template copies it into your workspace as an ordinary dashboard: edit it, extend it, delete it. Nothing ties it back to the template.
- -Every template page lists exactly which events it expects and which integration sends them, so you know it will work before you install.
- -Community templates: export any dashboard as a template through the API, and after review it appears in the marketplace alongside the official ones. Link a GitHub repo and prove ownership with a topstats.json file for a verified badge, then keep the marketplace in step with your releases via repo sync.
- -Install-time event mapping: if your events use different names than a template expects, rename them during install and the dashboard is rewritten to match - no runtime indirection.
- -A coverage check on every template page shows signed-in visitors which required events their workspace is already ingesting before they install.
- -Template authors get a live install-count badge for their README.
- -Creating a dashboard now starts by asking what you want to track: pick any number of integrations and a ready-made dashboard is created for each, or skip and start from an empty canvas exactly as before.
v1.28.0
August 27, 2026Signed up with Discord and email separately? Merge them.
Account
- -Linking a Discord account that already has its own TopStats account no longer dead-ends. You now get a clear explanation and a merge option: verify the Discord account is yours and everything it owns - workspaces, memberships, the Discord sign-in itself - moves into the account you are signed in as, and the duplicate is deleted.
- -The merge asks for fresh Discord verification and shows exactly what will move before anything happens; cancelling changes nothing.
v1.27.0
August 26, 2026Our first data report: the Discord bot popularity curve.
Site
- -The Discord Bot Popularity Curve: an original data report from the 50,475 bots tracked on bots.topstats.gg. One bot collects 30 percent of all monthly votes cast for the top 1,000; the top 100 collect 92.9 percent; and votes and installs turn out to rank very different bots.
v1.26.0
August 26, 2026A public pricing page, and guides for every game and SDK.
Site
- -Pricing has its own page at /pricing: the free plan, the volume slider, and answers to the questions people actually ask - what counts as an event, what happens when you go over, refunds and team members.
- -Eight use-case guides under /for cover Minecraft, Discord bots, FiveM and RedM, Rust, Garry’s Mod, Unturned, Roblox and Counter-Strike 2 - what each integration tracks automatically, how to install it in minutes, and answers to common questions.
- -Every language has its own SDK page under /sdks with install and first-event snippets for Node.js, Python, Go, PHP, Rust, C#, Java, Kotlin, Ruby, Elixir, Swift and Lua.
- -The comparison page now also covers Plausible and Fathom.
v1.25.0
August 26, 2026Analytics for every stack: 14 new integrations in one release.
Game servers
- -Garry's Mod, Rust (Oxide and Carbon), Unturned (OpenMod), Roblox, and Counter-Strike 2 (CounterStrikeSharp) all get official integrations. Each one tracks player sessions with durations and a periodic server stats feed the moment your API key is set, identifies players by their platform id so name changes never split a history, and exposes a track call for your own events.
- -The FiveM resource officially covers RedM too: one build for both CitizenFX games, with a source option to keep them apart in your workspace.
Web frameworks
- -One line of setup now gets automatic request analytics on nine stacks: Express, Fastify, Hono, and NestJS on Node; FastAPI, Django, and Flask on Python; net/http, Gin, Echo, and Fiber on Go; Laravel plus PSR-15; Rails and any Rack app; Axum and Actix on Rust; Spring Boot, plain servlet containers, and Ktor on the JVM; ASP.NET Core; and Phoenix.
- -Every middleware records the route template rather than the raw URL, so ids never flood your properties, along with method, status, duration, and errors. All of them support ignore lists, sampling, and an optional hook to attribute requests to your signed-in users.
Platform
- -Data retention is now enforced on a schedule: events and feature flag exposures past your plan’s retention window are cleaned up automatically, and deleting a workspace now removes its flag exposure data too.
v1.24.0
August 25, 2026FiveM servers get a drop-in resource.
Integrations
- -The official FiveM resource is out. Drop it into your server, set your API key in server.cfg, and player connects, drops with session length, and a server stats feed appear in your workspace. Players are identified by their license, so the same person stays one actor across sessions and restarts.
- -Any resource on the server can post its own events through the same client with exports.topstats:track(). Nothing content-shaped is ever sent: no chat, no positions.
- -Under it sits a new Lua client, built so the Garry's Mod integration can share the exact same core.
v1.23.0
August 25, 2026Discord bots get one-line analytics.
Integrations
- -The official discord.js integration is out. Attach it to your bot client with one line and guild joins and leaves, slash command usage, shard health, errors, and a periodic bot stats feed appear in your workspace, with no tracking code of your own. A track() method posts your own events through the same pipeline.
- -Nothing content-shaped is ever sent: no message text and no command options. Message counting exists but is off unless you turn it on.
v1.22.0
August 25, 2026The Minecraft plugin is here.
Integrations
- -The official Minecraft plugin is out: one file that works on Spigot and Paper servers from 1.8.8 through current. Drop it in, add your API key, and player joins, quits with session length, deaths, first-time joins, and a full server health feed appear in your workspace.
- -The server health feed covers tick rate, tick time, memory, loaded chunks, entities, player counts, and more, each as its own chartable value, plus an instant event whenever the server freezes for longer than a threshold you set.
v1.21.0
August 24, 2026Every language client is here.
Integrations
- -Official Rust, C#, Java, Kotlin, Ruby, Elixir, and Swift clients are out, completing the set of eleven alongside Node.js, Python, Go, and PHP. Each one batches your events, retries failed sends, handles timestamps for you, and supports feature flags.
- -The landing page language list now shows all eleven, each linking to its package or repository, and no longer lists any language as coming soon.
v1.20.0
August 24, 2026Python, Go, and PHP clients arrive.
Integrations
- -Official Python, Go, and PHP clients are out, alongside the Node.js package. Each one batches your events, retries failed sends, handles timestamps for you, and supports feature flags. They are on GitHub now and installable straight from the repo, with package-registry releases to follow.
- -The language list on the landing page now links each available language to its package or repository.
v1.19.0
August 24, 2026The official Node.js package is here.
Integrations
- -Node.js now has an official package: install @topstats/analytics from npm and send events with a couple of lines. It batches your events, retries failed sends, and handles timestamps for you.
- -The install snippet in the app and the connect step for a new dashboard now use the package, with a link to it on npm. Sending plain HTTP requests still works everywhere, and the curl example remains.
v1.18.2
August 12, 2026Deep bot links forward to the bot site.
Discord bots
- -A topstats.gg/discord/bots/<id> link with a path after the id (for example /leaderboard) now forwards to the bot site too, instead of only the bare bot page.
v1.18.1
August 12, 2026Delete a status page.
Status pages
- -A status page can now be deleted from its Settings tab, which removes the page along with its components and incidents.
v1.18.0
August 12, 2026Give your actors a readable label.
Events
- -Send an optional "_actorLabel" with an event to give an actor a human-readable name. The Actors page shows the label when set and keeps the raw actor id underneath, so identity and retention are unchanged.
v1.17.1
August 11, 2026Create a status page straight from the sidebar.
Status pages
- -The New dashboard button in the sidebar now offers the Dashboard vs Status page choice too, so you can start a status page without opening the dashboards page first.
v1.17.0
August 11, 2026Status pages: publish a public status page for your service.
Status pages
- -Create a status page from the New dashboard menu and publish it at a public link (topstats.gg/status/...). Add components grouped into sections, each with a status and a 90-day uptime bar.
- -A component can be set by hand or driven by one of your alerts, so it goes down automatically when the alert fires.
- -Post incidents with a running update timeline (investigating, identified, monitoring, resolved); a firing alert can open one for you.
- -Show your live TopStats charts on the same page, so visitors see real metrics alongside the status.
- -On white-label, point a custom domain at a status page and add custom CSS to match your brand.
- -The previous Monitors (live concurrency) view has been replaced by status pages.
Dashboards
- -The custom date range now opens from a calendar: click the calendar icon next to the presets, pick a start and end day, and Apply. Choosing a preset again clears the custom range.
v1.16.0
August 11, 2026Set a custom date range on a dashboard to reach data beyond the presets.
Dashboards
- -Pick a custom From and To date on a dashboard, not just the 1h to 90d presets, so you can look back across your full retention window (handy on longer retention where the old presets could not reach older data). The chart detail adjusts to the range you choose, and switching back to a preset clears the custom range.
v1.15.1
August 11, 2026A right-side legend widens to fit the longest series name.
Dashboards
- -A legend placed on the right of a chart now grows its width to fit the longest series name and keeps each name on one line, so a label is never wrapped or cut off.
v1.15.0
August 11, 2026Sort a chart legend by value, highest first by default.
Dashboards
- -When a chart legend shows each series value, you can now sort the legend by that value: highest first (the default), lowest first, or the chart order. Only the legend reorders, the chart itself is unchanged.
v1.14.1
August 11, 2026Right-side chart legends never cut off a series name.
Dashboards
- -A legend placed on the right of a chart now wraps long series names onto multiple lines instead of trimming them, so a label is never cut off.
v1.14.0
August 11, 2026Search all events by value, resize charts, and a working Activity feed.
Events
- -Search every event for a property value, for example type "guild_count:7141" to find all matching events across your whole history, not just the ones currently on screen. Supports greater-than, less-than and text-contains too.
Activity
- -The Activity feed now actually records what happens in your workspace: editing or deleting a widget, editing a dashboard, and creating, editing or deleting segments and alerts all show up, alongside the member and dashboard changes it already tracked.
Dashboards
- -Drag the bottom edge of any chart widget to resize its height, as well as typing an exact height.
- -The legend position and legend value options now appear for every chart that has a legend, including charts broken down by numeric key and pie charts.
v1.13.0
August 11, 2026White-label domains drop TopStats branding and keep out non-members.
White-label
- -Dashboards shared or embedded from your custom domain now unfurl with your own brand: your name, logo and colours in the link preview, browser tab and social card, with no TopStats branding.
- -Someone who is not a member of your workspace and signs in on your domain now lands on a branded "you are not part of this workspace" page asking them to contact an admin, instead of seeing the app.
v1.12.0
August 11, 2026Browse older events, and size charts with a side legend and clearer tooltips.
Events
- -Set a "Before" time on the Events page to jump back and browse older events, so you can find and hide a bad reading from any point in the past, not just the most recent ones.
Charts
- -Set a custom height on any chart widget, so a busy graph gets the room it needs.
- -Move a chart legend to the right-hand side instead of the bottom, now on every chart type.
- -Hover tooltips always sit on top, so a large legend no longer hides the values you are reading.
v1.11.0
August 10, 2026Flags, Segments, Issues, Monitors, Groups and Data labels are now on paid plans.
Plans
- -Flags, Segments, Issues, Monitors, Groups and Data labels are now part of every paid plan, unlocked from the lowest tier up.
- -On the free plan these pages show what the feature does and a side-by-side comparison of everything you get on free versus paid.
- -A new prompt in the sidebar makes it easy to see the full free versus paid breakdown at any time.
v1.10.0
August 10, 2026Hide bad events so your charts correct themselves.
Events
- -Select one or more events on the Events page and hide them; they disappear from every chart straight away, so a wrong reading no longer skews your graphs.
- -Undo right after hiding, or reopen the Hidden view any time before they are removed to bring them back.
- -Hidden events are permanently deleted after 24 hours. Hiding does not change your billed event count.
v1.9.2
August 10, 2026Fix an error when switching a widget away from break down by key.
Widgets
- -Fixed an error ("metric.property is required") that could appear after choosing "each numeric key" and then switching the breakdown to something else; the measure now falls back to a count so the widget stays valid.
v1.9.1
August 10, 2026The Sessions page is now called Monitors.
Monitors
- -The Sessions page is now Monitors, and lives at /monitors. It is the same live concurrency, per-shard health and offline alerts, just a clearer name.
v1.9.0
August 10, 2026Break a widget down by each number in an event.
Widgets
- -Break down by key: for an event that carries a number for every key, like a socket stats event with a count for each gateway event type, chart one series per key with each summing that key’s value over the range. Choose "each numeric key" under Break down by.
v1.8.0
August 10, 2026A big release: live sessions, four new alert types, grouped errors, usage nudges, custom environments and live badges.
Sessions
- -New Sessions page: see how many sessions or players are live right now over your chosen range, with the peak marked, all worked out from the events you already send.
- -Per-shard breakdown: one line per server or shard, so you can see where your players are and which shard is busiest.
- -Session length: a distribution of how long sessions last, with the median and 90th percentile.
- -Server health: a per-shard table of peak players, average and 95th percentile latency, tick rate and crash count, with a health line you can overlay on the players chart.
- -Alert if a shard goes quiet: turn any shard into a "no events for N minutes" offline alert in one click.
- -The page remembers your setup, and can suggest the right heartbeat event and health properties from your data.
Alerts
- -Funnel conversion drop: get paged when a funnel stops converting, watching the end-to-end rate or a single step, below a percentage you choose.
- -Retention decay: get paged when a chosen return day or week for your newest complete cohort falls below a percentage.
- -Concentration: get paged when a single actor takes an unusually large share of a metric, a simple cheat and abuse signal that names the actor in the alert.
- -Silence: get paged when a normally busy event goes quiet for longer than you allow, with a last-seen readout.
- -All four work with your existing Discord, Slack, webhook and email channels.
Issues
- -New Issues page: the errors and exceptions your app reports are grouped into deduplicated issues, ranked by how often they happen, so a flood of the same error reads as one line.
- -Errors that differ only in a number, id or quoted value are treated as the same issue, so the count reflects a real problem rather than every unique message.
- -Open an issue to see how many times it happened, how many actors and sources it hit, a trend over time, a sample stack trace, and its top actors and sources.
- -Alert me: turn any issue into an alert in one click, choosing the threshold, window, severity and where to be notified.
Usage
- -A usage meter in the sidebar shows how many of this month’s events you have used against your plan.
- -You now get a heads-up banner at 70% and 90% of your monthly events, and a clear notice when you reach the cap, so a Free workspace is never silently cut off.
- -The Upgrade link from a usage nudge opens the upgrade page already sized to the volume you are on track to need this month.
Environments
- -Create custom environments in Settings, each with its own name and slug, so you can keep streams like staging or preview separate from live.
- -Rename an environment at any time; Production is always kept and cannot be removed.
- -Every environment picker across the app, from keys and dashboards to flags, alerts, actors and the events stream, now lists your own environments.
Badges
- -Turn any counter widget on a public dashboard into a live SVG badge for your README, Discord or website; it always shows the current value and links back to the dashboard.
- -Create, copy the Markdown or HTML snippet, and revoke badges from the dashboard Share dialog.
v1.7.0
August 8, 2026Analyse by account, server or guild with Groups.
Groups
- -New Groups page: pick a property that identifies an account, server or guild (like guild_id or tenant_id) and see them ranked by activity, each with its own detail timeline.
- -Configure your group key in Settings, chosen from the properties your events already send.
- -Funnels and retention can count groups instead of individual actors: switch a widget to Group to measure how many accounts converted or came back.
- -Per-group alerts: an above or below alert can fire when any single group crosses the threshold, not just the workspace total.
v1.6.0
August 8, 2026Roll features out behind flags and read out their impact.
Flags
- -New Flags page: create boolean or percentage rollout flags per environment, switch them on or off, and set the rollout percentage inline.
- -Percentage flags let you bucket the rollout per actor or per group.
- -Run a readout on any flag to compare treatment against control on a funnel or retention goal, with the conversion rates, lift, confidence and a significance badge.
v1.5.2
August 6, 2026Counter widgets show their full-width trend sparkline again.
Dashboards
- -Fixed counter widgets so their trend sparkline fills the card width again instead of shrinking to a sliver.
v1.5.1
August 6, 2026Pages settle into place with loading skeletons instead of jumping.
Loading
- -The whole app now shows a loading placeholder that matches the real layout, so the sidebar, top bar and page no longer pop in against a blank screen.
- -Dashboards show placeholder cards while they load, so the board no longer jumps from a line of text to the full grid.
- -Events, Actors, Alerts, Segments and Data labels show placeholder rows while they load, instead of a "Loading..." line that shifts everything when the data arrives.
- -Counter widgets keep their height while loading, so the number no longer shrinks into place.
v1.5.0
August 5, 2026Put your own brand and domain on the whole app with white-label.
White-label
- -New white-label add-on (€10/month): serve the entire app on your own domain, with your own logo, product name and colours.
- -Add a custom domain in Settings, point it at us with a simple CNAME record, and verify it in one click.
- -Upload your logo (same as your workspace image) and set your product name.
- -Choose a full colour palette (background, cards, text and accent) with a live preview; combinations that would be hard to read are flagged and blocked so the app always stays legible.
- -Your white-label domain is private: visitors land on your branded sign-in, and search engines are asked not to index it.
- -A domain pointed at us but not set up yet shows a white-label pitch instead of a plain sign-in.
Discord
- -Subscribe and everyone in your workspace automatically gets the subscriber role in our Discord server; it is removed again when the subscription ends.
- -Already subscribed? Join the Discord server and the role is granted on the next sync, no need to ask.
v1.4.0
August 1, 2026Choose exactly which widgets your email digests include.
Email digests
- -Pick which of a dashboard’s widgets go in each digest, instead of every counter being sent automatically.
- -Digests now include breakdowns and tables (their top rows), not just counters, so lists like your top servers come through again.
v1.3.0
July 31, 2026See who changed what in your workspace.
Workspace
- -New Activity page: a log of who created or deleted dashboards, invited or removed members, changed member roles, and created alerts.
v1.2.2
July 30, 2026Discord bot links on the main site now take you to the bot site.
Links
- -Add "stats" to any top.gg bot link and it takes you to that bot on the Discord bot site: top.gg/bot/123 becomes topstats.gg/bot/123.
- -Bot pages asked for on the main site (topstats.gg/bot/... and topstats.gg/discord/bots/...) now forward to the Discord bot site instead of showing a not-found page.
v1.2.1
July 28, 2026Set up two-factor by scanning a QR code.
Account
- -Set up two-factor by scanning a QR code with your authenticator app, instead of typing the key by hand.
v1.2.0
July 28, 2026Two-factor authentication to keep your account secure.
Account
- -Turn on two-factor authentication from your account settings, using an authenticator app and one-time codes.
- -Save backup codes when you set it up so you can still sign in if you lose your authenticator.
v1.1.0
July 27, 2026A redesigned widget editor, widget filters, more measures and a full-number option.
Widget editor
- -Redesigned so the live preview stays pinned beside the options while you build, with a more compact type picker and much less scrolling.
- -Filters: narrow a widget to just the events that match your conditions (is, is not, contains, has value), or load a saved segment as a starting point.
Measurements
- -New ways to measure a numeric property: median, 90th, 95th and 99th percentile, and standard deviation, alongside count, sum, average, min, max and unique.
- -The new measures work on both dashboard widgets and alerts.
Display
- -Show full numbers: a per-widget option to display the exact value (12,345) instead of the shortened form (12.3k).
v1.0.1
July 24, 2026Easier-to-read event payloads in the actor view.
Actors
- -Event payloads now have syntax highlighting on a darker panel, so keys, text and numbers are easy to tell apart at a glance.
v1.0.0
July 23, 2026The first stable release of TopStats analytics.
Dashboards
- -Build dashboards from counters, time series, breakdowns, tables, funnels, retention, heatmaps, histograms and KPI rows.
- -Filter a whole dashboard by a saved segment or a single actor, save it as the default, or override it just for your view.
- -Share a dashboard with a public link or embed it, and set a per-dashboard time range and environment.
Events
- -Live event stream with a clear play and pause toggle.
- -Structured search such as map:desert or level>50, alongside plain text search.
Actors
- -Explore the users and servers behind your events, ranked by activity.
- -Open any actor to see their stats, event mix and recent activity, and expand any event to read its full payload.
Alerts
- -Create alerts on any metric with threshold or anomaly conditions.
- -Get notified by email or Slack, and turn any widget into an alert in one click.
Segments and data
- -Save reusable segments and rename raw data labels for friendlier charts.
- -Bring in external sources as widgets, and send data over our HTTP API or OpenTelemetry.
Account
- -A new account menu in the top right for your profile, notifications and this changelog.
- -Workspace invitations now live in Notifications, with a flare when something new arrives.