Skip to content

feat(dashboard): add visitor sessions, activity timeline drilldown, and dashboard UX enhancements - #55

Closed
chipmunk87 wants to merge 8 commits into
explodingcamera:mainfrom
chipmunk87:feature/visitor-sessions
Closed

chipmunk87 wants to merge 8 commits into
explodingcamera:mainfrom
chipmunk87:feature/visitor-sessions

Conversation

@chipmunk87

@chipmunk87 chipmunk87 commented Sep 20, 2026

Copy link
Copy Markdown

Summary

This PR adds comprehensive visitor session tracking and activity timeline drilldown to the Liwan dashboard, alongside several quality-of-life UI/UX improvements and user preference controls.


Key Changes

1. Visitor Sessions & Activity Timeline Drilldown

  • Session Aggregation: Added DuckDB session aggregation queries (session_list_report, session_timeline_report) to surface recent visitor sessions, duration, event counts, entry pages, and exit pages.
  • Activity Timeline: Clicking on any session opens a detailed event breakdown modal showing individual pageviews, timestamps, badges, and referrers.
  • Timeline Sorting: Added ability to click the "Activity Timeline" heading to toggle chronological ordering (oldest-to-newest vs. newest-to-oldest).
  • URL & Path Handling: Improved relative path formatting and prevented badge wrapping/overlap on narrow screens.

2. Dashboard UI / UX Enhancements

  • Top Blank Space Cleanup: Eliminated excess vertical whitespace at the top of the page to move content up higher and optimize above-the-fold screen space.
  • Auto-Collapsing Dimension Cards: Dimension cards with fewer items now collapse their vertical height automatically, removing the large gap before "Show details".
  • Traffic Chart Minimize: Added a toggle button in the top right of the traffic chart to collapse/minimize it; preference is saved to local storage.
  • Geographic Map Zoom Lock: Added a lock icon toggle to lock map zooming, preventing accidental zooming when scrolling the page.
  • Dynamic Font Sizing: Added an interactive Aa font size switcher and preference setting.

3. Account Preferences

  • Time Format (12h / 24h): Added a 12-hour (AM/PM) vs. 24-hour time format preference in My Account, dynamically formatting session timestamps across the dashboard.

Screenshots

SCR-20260920-gsui SCR-20260920-gsou

Verification & Testing

  • Verified on desktop and mobile viewports.
  • Tested DuckDB query performance with existing event datasets.
  • Verified backwards compatibility with existing collection and report endpoints.

@explodingcamera

Copy link
Copy Markdown
Owner

Hi! Please see https://github.com/explodingcamera/liwan/blob/main/CONTRIBUTING.md

Currently Visitor Sessions are not something I'd like to add. Still, thanks for taking the time with this and for using liwan!

@chipmunk87

Copy link
Copy Markdown
Author

Thanks for the review and kind note, @explodingcamera! Totally understand and respect
wanting to keep upstream strictly stateless and minimal.

For anyone else in the community looking for visitor sessions, activity timelines, font resizing, minimize chart or the 

12h/24h time setting, I am actively maintaining a community fork called Liwan-Plus over
at https://github.com/chipmunk87/liwan-plus.

Thanks again for creating Liwan and open-sourcing such a clean, fast foundation!  

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants