Changelog

What's new

New features, improvements, bug fixes, and security updates.

Improvement 09 Apr 2026

Minified tracking script

The GhostlyX tracking script is now available in a minified build, and the snippet builder lets you choose which version to use. The minified script is functionally identical to the full source but weighs just 1.8 KB over the wire (gzipped), compared to 5.2 KB for the full version. For most sites this is a negligible difference, but if you are chasing a perfect Lighthouse score or have a strict performance budget, the minified build gives you a smaller payload with no trade-offs. When copying your tracking snippet from the setup page, the site dashboard, or site settings, you will see two options: Minified and Full source. Minified is selected by default. The copied snippet automatically uses the correct file URL for whichever version you choose. Both files are served from the same origin as always. Existing snippets using `script.js` continue to work without any changes. Thanks to Björn Büttner for the change suggestion!
Feature 08 Apr 2026

Share feedback from the dashboard

You can now send us feedback, feature requests, and bug reports directly from the dashboard sidebar. Look for the new Feedback button in the Help section of the navigation. Clicking it opens a small modal where you can pick a type (feature request, general feedback, bug report, or other), add a subject, and write your message. Hit send and you're done no need to leave the page or open a new tab. We read every submission. If your idea shapes something we build, we'll give you a shoutout in the changelog.
Improvement 07 Apr 2026

Bot filtering and detection

Requests from bots, crawlers, and automated browsers are now detected and excluded from your analytics automatically. Headless browsers, browser automation frameworks, search engine crawlers, SEO auditing tools, uptime monitors, and raw HTTP clients are all identified by their User-Agent strings and silently discarded before a pageview or event is recorded. This means your visitor counts, session data, and goal conversions will no longer be inflated by non-human traffic. Both pageview and custom event collection endpoints benefit from this filtering. Real visitors using any standard browser are unaffected.
Feature 07 Apr 2026

Active time on page

GhostlyX now measures how long visitors are actively engaged with each page, not just when they arrived. Previously, visit duration was estimated by comparing the timestamps of consecutive pageviews within a session. Pages visited last in a session had no way to contribute a meaningful duration because there was no subsequent pageview to measure against. The tracking script now uses the browser's Page Visibility API to measure genuine active time. The timer runs only while the tab is in the foreground and pauses automatically when a visitor switches tabs, minimises the browser, or puts their device to sleep. When the visitor leaves a page, the elapsed active time is sent to GhostlyX as a whole number of seconds. The Visit Duration figure in your dashboard now reflects real engagement time where it is available, and falls back to the previous timestamp-based estimate for older data. This means visit durations will generally become more accurate over time as new visits come in with measured values. This feature is fully privacy-preserving. No personal data is involved. The measurement is a plain integer and is subject to the same opt-out mechanisms as all other tracking (Global Privacy Control, Do Not Track, and the opt-out page).
Feature 07 Apr 2026

Install GhostlyX as an app

GhostlyX now works as an installable app on desktop and mobile. When you visit the dashboard in a supported browser (Chrome, Edge, Safari on iOS 17+, and most modern Android browsers), you will see an install prompt in the address bar or browser menu. Installing the app adds GhostlyX to your home screen or taskbar and opens it in its own window without browser chrome, so your analytics are one tap away. Once installed, the app caches its static assets so the interface loads instantly on repeat visits. If your connection drops, you will see a friendly offline page rather than a browser error. This feature has no effect on how visitor data is collected or processed. The app shell caches only the interface itself. Analytics data is always fetched live from the server, and your tracking script is completely unaffected.