Every click below fires a real tracking event to Supabase. Enter your name, interact with the elements, then find your session in the dashboard.
Your name
Type your name to tag every event below. Then find yourself in the dashboard.
→ Watch it appear in the consolePlease choose a different name
Your dashboard trackInteraction()
Your data, your dashboard, your server
The Measr dashboard is a React app that connects directly to your Supabase project. Every chart, every metric, every session — sourced from rows you own.
Dashboard overview with KPIs, charts, and real-time session data. Everything you need at a glance.
Data Model
Know exactly what gets tracked.
Every field, every module, fully transparent. No hidden data collection. No mystery payloads. This is the complete schema your SDK sends to your Supabase.
Shared dimensions
Sent with every event
Field
Type
Description
session_id
uuid
Auto-generated per browser session
anonymous_id
uuid
Persistent visitor ID (localStorage)
site
string
Your site identifier
page_name
string
Current page at time of event
device_category
string
Desktop or Mobile
geo_language
string
Browser language (e.g. en-US)
geo_region
string
Timezone-based region
created_at
timestamp
Event timestamp (ISO 8601)
A
Page tracking
page_view
Field
Type
Description
pageName
string
Name of the current page
previousPageName
string
Previous page (or "Entry")
originalReferrer
string|null
First page view only
queryParameters
string|null
URL query string, first page view only
B
Interactions
interaction
Field
Type
Description
interaction.element
string
What was clicked (e.g. "CTA button")
interaction.name
string
Action name (e.g. "signup_click")
interaction.click_count
1
Always 1 per event
C
Navigation
navigation
Field
Type
Description
navigation.type
string
Nav category (main, footer, sidebar)
navigation.value
string
Target page or link label
navigation.click_count
1
Always 1 per event
D
Exit links
exit_link
Field
Type
Description
exit_link.url
string
Full outbound URL
exit_link.click_count
1
Always 1 per event
E
Scroll depth
scroll_depth
Field
Type
Description
scroll.depth
string
Milestone: 25%, 50%, 75%, or 100%
scroll.hit_count
1
Always 1 per milestone
F
Video
video
Field
Type
Description
video.name
string
Video identifier
video.milestone
string
0%, 25%, 50%, 75%, 90%, 100%
video.seconds
number
Seconds since previous milestone (delta)
video.start_count
0|1
1 only at 0% milestone
video.90percent_count
0|1
1 only at 90% milestone
video.hit_count
1
Always 1 per milestone
G
Errors
error
Field
Type
Description
error.message
string
Error message text
error.count
1
Always 1 per error
H
Downloads
download
Field
Type
Description
download.name
string
File name
download.type
string
File extension (pdf, csv, etc.)
download.count
1
Always 1 per download
K
Form tracking
form_view / form_start / form_end
Field
Type
Description
form.name
string
Form identifier
form.view_count
1
Sent with form_view
form.start_count
1
Sent with form_start
form.end_count
1
Sent with form_end
19 modules are defined in the CDE Analytics Standard. 9 ship today. The remaining 10 are specified and ready. They ship as demand validates them.
Common questions trackInteraction()
Frequently asked questions
What does Measr track? ▶
Page views, sessions, scroll depth, interactions, downloads, exit links, video engagement, forms, and errors. Nine modules, each with a defined event schema. You wire up what you need, ignore the rest.
What if I already use GA4 or another tracker? ▶
Measr is a lightweight JavaScript SDK that writes directly to your Supabase database. It doesn't conflict with GA4, Plausible, Matomo, or any other tracking tool. Run them side by side.
How much does it cost? ▶
€39 per month. As long as you pay, you get full access to the repository, product updates, security patches, and support. If you cancel, you keep the version you have — it stays running on your server.
Can I track multiple sites? ▶
Yes. Pass a different siteId to Measr.init() on each site. All events land in the same Supabase project, filtered by site in the dashboard.
Is Measr GDPR-compliant? ▶
Measr stores data in your own Supabase project — you control where the database lives. No data leaves your infrastructure, and no third-party cookies are set. You're the data controller, not us.
How do I set it up? ▶
Clone the repo, configure your Supabase credentials, add one script tag, deploy. The whole process takes about 30 minutes. Or use the Claude Code setup skill below — it walks you through every step automatically.
Setup trackDownload()
Install with Claude Code
AI-guided setup in your terminal
The Measr setup skill walks Claude Code through your entire installation — Supabase config, migrations, SDK integration, and verification. One command, fully automated.
Requires a Measr license and Claude Code installed on your machine.
Walkthrough trackVideo()
See it in action
A quick walkthrough of the dashboard, from page views to form funnels.
Welcome video coming soon
Who built this trackExitLink()
Built by someone who spent 16 years cleaning up bad tracking
Measr isn't a weekend project. It's the distillation of every analytics implementation mistake I've seen, and the standard I built to stop making them.
Built by
Balázs Turán
Digital analytics consultant with 16 years in the field. Built analytics departments from scratch at Metro AG, designed tracking strategies for Zürcher Kantonalbank, and led Mazda Europe's GA4 migration. Measr is the CDE Analytics Standard, packaged as a product.