Cookies
Effective: 2026-09-11
1. What this page covers
This page lists every cookie MatViz sets, plus the other browser-storage
mechanisms the app relies on — localStorage, IndexedDB, and Service
Worker caches — described below. Two third parties also run code in
your browser: the Cloudflare bot check on our sign-in and sign-up pages
(Section 3), and YouTube's embedded player when you open a video a
coach has attached to a practice plan or technique-library entry.
Anything they store is set on their own domains, under their own
policies, and is not listed here. This page supplements Section 6 of
the Privacy Policy.
MatViz registers a Service Worker (/sw.js) that caches request and
response pairs locally on your device so the app remains usable on a
flaky gym or venue network. These caches stay on your device, are not
transmitted to MatViz or any third party, do not carry tracking
identifiers, and can be cleared at any time from your browser's
site-data settings.
MatViz also uses IndexedDB to hold pending video-upload chunks on
your device while a video is uploading, so the upload can resume if a
tab crashes or the page closes mid-upload. Chunks are cleared when the
upload completes; chunks left behind by an abandoned upload are cleared
the next time the upload feature runs on that device, or when you clear
site data. They stay on your device and are never transmitted as
tracking data.
On devices used for scoring, streaming, or commentary roles, MatViz
also stores a role-specific bearer token in localStorage
(admin_token, scorer_token, camera_token, or
commentator_token) so the app can authenticate that device's
requests for the applicable role. Each token exists only on a device
that has been used for that role, and persists until it is cleared —
automatically on sign-out for admin_token, or manually via your
browser's site-data settings for the others. A tablet a club sets up as
an attendance kiosk stores a kiosk device token (mv-kiosk-token,
scoped to that club) that lets the kiosk record check-ins; it is
cleared when the kiosk session is exited, and club staff can revoke it
from the club's kiosk settings.
Beyond these tokens, MatViz keeps a number of other keys in
localStorage on your device: interface preferences (dismissed
banners and tips, your last-selected tournament or view, recording
quality, review-page adjustments); the wrestlers and weight classes you
follow, including the wrestlers' names, so match notifications can be
shown; an in-progress setup-wizard draft; and two offline queues — a
kiosk check-in queue and a live-scoring event queue — that hold entries
made while a gym or venue connection is down until they can be sent to
MatViz when the connection returns. The offline queues exist precisely
so that their contents can be transmitted to MatViz once you are back
online; nothing else in localStorage is transmitted to MatViz or
anyone else, and none of it is a tracking identifier.
2. Strictly necessary cookies (always set)
| Name | Purpose | Lifetime | Attributes |
|---|---|---|---|
user_token | Session cookie set after login. | 30 days from your last use, extended each time you use the Service, up to a maximum of 90 days from sign-in; or immediately on logout. | HTTP-only, Secure, SameSite=Strict. |
session_token | Short-lived scoring-device role cookie. | 24 hours, or immediately on Exit. | HTTP-only, Secure, SameSite=Strict. |
csrf_token | Paired with state-changing requests as a CSRF defense. | 24 hours (rotated on login/signup/logout). | Secure, SameSite=Strict. |
These cookies are essential for the Service to function and are exempt from consent under Article 5(3) of the ePrivacy Directive (2002/58/EC) and equivalent U.S. state statutes.
MatViz may also run on your club's own domain (e.g.
register.yourclub.com) when the club has configured one; cookies set
there are scoped to that domain only and are never shared with
matviz.com.
3. The Cloudflare bot check (sign-in and sign-up pages only)
Our sign-in (/auth/login) and sign-up (/auth/signup) pages run
Cloudflare Turnstile, an automated check that tells a person apart from
a scripted sign-up. It exists because automated sign-ups make MatViz
send login emails to people who never asked for them.
The check loads when one of those two pages opens — before you type
anything. Your browser contacts challenges.cloudflare.com directly,
so Cloudflare receives your IP address, your browser user-agent, and
signals about your browser and how it interacts with the page.
Cloudflare may store data on your device under its own domain as part
of running the check; anything it stores there is set by Cloudflare,
under Cloudflare's policies, and is not readable by MatViz. Cloudflare's
own privacy documentation describes how it handles that data.
MatViz receives only a pass-or-fail result. This check is strictly necessary to protect the sign-up and login mechanisms from abuse, it is not used for tracking or advertising, and it runs nowhere else in the Service.
4. Functional cookies (NOT set today)
MatViz does NOT currently set any functional cookies (for example, a cookie that remembers a display preference like your default view). If we add one, this section will be updated to name it and state its purpose and lifetime, and the consent banner described in Section 5 will offer a choice for it before it loads.
5. Analytics cookies (NOT set today)
MatViz does NOT currently use any third-party web-analytics provider. If we add one (e.g., a privacy-respecting analytics SDK such as Plausible or PostHog), we will:
- Update Section 6 of the Privacy Policy listing the SDK and its data flow.
- Display a cookie-consent banner on your next visit (or on this page load, whichever comes first).
- Honor your "Essential only" choice by not loading the analytics SDK at all — not just suppressing its cookie writes.
6. Marketing / advertising cookies (NOT set today, NOT planned)
MatViz does NOT use third-party advertising cookies, retargeting pixels, or session-replay tools, and has no present plan to. Nothing MatViz runs profiles you across other websites. The Cloudflare bot check in Section 3 does inspect your browser environment, but only to tell a person from an automated sign-up, only on two pages, and only at the moment those pages load. If we ever add such a technology, the consent banner described in Section 5 will gate it before it loads.
7. Performance cookies (NOT set today)
MatViz does NOT currently use any performance cookies (for example, real-user-monitoring tools that measure page-load speed or Core Web Vitals from your browser). If that ever changes, the consent banner described in Section 5 will gate any such cookie before it loads, and this section will be updated to name it and describe its data flow.
8. Personalization cookies (NOT set today)
MatViz does NOT currently use any personalization cookies (for example, cookies that tailor content recommendations to you). If that ever changes, the consent banner described in Section 5 will gate any such cookie before it loads, and this section will be updated to name it and describe its data flow.
9. The cookie_consent choice cookie
When and only when an analytics, marketing, functional, performance, or
personalization cookie is in scope, MatViz also sets a single
first-party cookie named cookie_consent that records your choice
(Accept all / Essential only / Customize). It is first-party,
Path=/, Max-Age=31536000 (1 year), SameSite=Lax, Secure in
production. It is NOT HTTP-only because the in-page banner must read it
to suppress re-display. This cookie is itself essential to MatViz
honoring your choice and is exempt from consent.
10. How to change your choice
Because no consent-requiring cookie exists today, the consent banner is
not shown and there is nothing to change. When the banner is active,
you will be able to change your choice at any time from the banner
itself or by clearing your cookie_consent cookie in your browser
settings. Changing from "Accept all" back to
"Essential only" takes effect on the next page load: any already-loaded
analytics SDK will not transmit further data, and its cookies will be
expired.
11. Contact
Questions: hello@matviz.com.