v0.3.0-beta.1 — Bot visibility, split charts, and mobile navigation
Pre-release
Pre-release
AG Analytics v0.3.0-beta.1
A UI/UX-focused update since v0.2.0-beta.1 — a new bots-visibility panel, a
split views/visitors chart, drag-and-drop dashboard customization, and a
proper mobile experience, alongside a handful of small correctness fixes.
Added
- Bots & crawlers panel. Known crawlers, uptime monitors, and scripted
HTTP clients are no longer just silently dropped — they're recorded as a
distinct event (never touching visits/sessions, so pageview/visitor counts
stay clean) and named individually (Googlebot, Bing, AhrefsBot, curl,
headless browsers, etc.) in their own dashboard panel. - Search queries panel, breaking down visits by the actual search phrase
when the referring search engine exposes it. Note: Google has withheld the
query string from organic search referrers since 2013 — this fills in
mainly from Bing, DuckDuckGo, Yandex, and Brave Search; that's an
industry-wide limitation, not specific to this tool. - Split views/visitors chart. The main chart now plots page views and
unique visitors as two separate, independently toggleable lines instead of
one, so a peak is never ambiguous about which metric it belongs to. - Drag-and-drop panel reordering — breakdown panels can be dragged into
whatever order you prefer, saved per browser. - Site favicon shown next to the site name in the dashboard header.
- Refresh button next to the site name for an on-demand data reload,
independent of the periodic background refresh. - Mobile navigation. The sidebar is now a proper slide-out drawer with a
hamburger toggle and overlay on narrow screens, instead of being dumped
inline above the dashboard content. - Selected site persists across reloads (previously always reset to the
first site in the list after a refresh). - Version tag in the sidebar footer now links directly to its GitHub release.
- Hover-revealed custom-styled scrollbar on breakdown panels (row limit
raised from 8 to 25 so there's actually more to scroll through).
Fixed
- Deleting a site left its custom events behind.
deleteSite()cleaned
upvisitsandsessionsbut notevents— orphaned rows with no
matching site. All three tables are now cleared together. - Countries panel showed raw pseudo-codes for non-real countries.
Cloudflare'sT1(Tor exit node traffic) andXX(undeterminable
location) values now get their own icon and label instead of appearing as
bare, unflagged codes. - Non-page requests polluting Top pages. Requests with a non-http(s)
url(e.g. a locally saved/openedfile://copy of a page, common with
AV sandboxes and link-checker tools) no longer create garbage entries in
Top pages — they're recorded as a distinct event instead. - Removed the now-unused
/tracker.jsalias (all snippets, including
already-deployed ones, have migrated to/widget.js); README updated to
match. - Incomplete last row of breakdown panels used to leave visible empty gaps
on non-3-column-friendly screen widths — panels now stretch to fill the
row instead.
Changed
- The sidebar's "⚙ Customize" button moved from the header into the
sidebar itself, under the site list. - "Done" buttons across modals restyled to match the rest of the UI
(previously unstyled system buttons). - Version tag no longer shows the release date, only the (now-linked)
version number.
Known limitations
- Single admin account per deployment (no multi-user roles yet).
- No CSV/JSON export yet.
- No long-lived API token for external integrations — only the short-lived
(12h) dashboard login token exists today. - No automated test suite yet.
- Demo-mode / read-only public instance is not implemented yet.
Upgrading from beta.1
No database migration needed — the schema is unchanged from v0.2.0-beta.1
(bot and non-web-request tracking reuse the existing events table). Just
deploy the new Worker code and static assets as usual.
Full Changelog: v0.2.0-beta.1...v0.3.0-beta.1