resources/views/compare/umami.stx:17:5: include error: Error loading include file site-nav: ENOENT: no such file or directory, open '/var/www/analyticshq-main/releases/1ee3824/resources/partials/site-nav.stx' ╭──────────────────────────────────────────────────────────────╮ │  ERROR  Include Error │ ╰──────────────────────────────────────────────────────────────╯ File: umami.stx (line 17, col 5) Message: Error loading include file site-nav: ENOENT: no such file or directory, open '/var/www/analyticshq-main/releases/1ee3824/resources/partials/site-nav.stx' Context:  15: 16: > 17: resources/views/compare/umami.stx:31:32: include error: Error loading include file site-nav: ENOENT: no such file or directory, open '/var/www/analyticshq-main/releases/1ee3824/resources/partials/site-nav.stx' ╭──────────────────────────────────────────────────────────────╮ │  ERROR  Include Error │ ╰──────────────────────────────────────────────────────────────╯ File: umami.stx (line 31, col 32) Message: Error loading include file site-nav: ENOENT: no such file or directory, open '/var/www/analyticshq-main/releases/1ee3824/resources/partials/site-nav.stx' Context:  29:

Umami and analyticshq are both open-source and cookieless. The difference is where the line is drawn: Umami v3 moved toward individual-level tracking with session replay and user profiles, while analyticshq stays aggregate-only — and rotates identity every 24 hours instead of monthly.

30:
> 31: Get your script tag 32: How the privacy works 33:
 18: 19:

analyticshq vs Umami

Open source, but strictly aggregate.

Umami and analyticshq are both open-source and cookieless. The difference is where the line is drawn: Umami v3 moved toward individual-level tracking with session replay and user profiles, while analyticshq stays aggregate-only — and rotates identity every 24 hours instead of monthly.

Umami vs analyticshq

Point for point.

ID rotation window Session salt rotates monthly, visit salt hourly Per-site hash rotates every 24 hours. No monthly linkability.
Session replay & heatmaps Yes — added in v3 (replay on rrweb, heatmaps) Never. Recording individual sessions breaks aggregate-only.
Individual profiles A "Sessions" view lists and drills into individual visitors No per-person view. Reports are aggregate, full stop.
Cross-session identity identify() stitches a user’s sessions across time No identify(), no distinct-ID stitching, by design.
Geolocation Country, region, and city Country only, from CDN edge headers. IP discarded.
Open source Yes (MIT), self-hostable Yes — Postgres-native, self-hostable, Stacks-integrated.
Cookies & consent Cookieless, no banner needed Cookieless, no banner needed.

Where the two part ways.

01

Both are open source — the philosophy is where they split

Umami and analyticshq are both MIT-spirited and self-hostable, with cookieless defaults. The difference is the ceiling: Umami now offers individual-level tracking, analyticshq refuses to build it.

02

Aggregate-only, on purpose

Umami v3 shipped session replay, heatmaps, individual visitor profiles, and identify() user stitching. analyticshq deliberately will never add any of them — there is no per-person timeline to reconstruct.

03

A tighter identity window

Umami’s session salt rotates monthly. analyticshq rotates its per-site hash every 24 hours, so activity cannot be linked across days — a materially shorter linkability window.

24h
ID rotation window, versus Umami’s monthly session salt.
0
Session recordings, heatmaps, or individual profiles — ever.
Country
Geo granularity. No region or city is stored.

Aggregate by principle, not by default.

╭──────────────────────────────────────────────────────────────╮ │  ERROR  Include Error │ ╰──────────────────────────────────────────────────────────────╯ File: umami.stx Message: Error loading include file site-footer: ENOENT: no such file or directory, open '/var/www/analyticshq-main/releases/1ee3824/resources/partials/site-footer.stx'