Cookies and storage on your device
Last updated: 2026-07-27
Status. This is the current version, and it describes how WatchMatrix.TV actually works today, so you can rely on it as our statement of what we do. It is a first version that has not yet been reviewed by a lawyer. If that review changes anything, we will update this page and move the date above.
The short version
WatchMatrix.TV sets no cookies. Not one. We do not have a login, so there is no session cookie. We do not run analytics, so there is no analytics cookie. We do not run advertising, so there is no advertising cookie or tracking pixel.
What we do instead is save a small amount of information in your own browser, using a browser feature called local storage. That information stays on your device. It is never sent to us. This page lists every single thing we save, why we save it, and how to delete it.
One thing we cannot speak for: the video players themselves. When you add a YouTube, Twitch, Kick, Rumble or X stream, that platform’s own player loads in your browser and can set its own cookies under its own name, exactly as if you had opened its website. That is their processing, under their privacy policy, and we receive none of it.
Why this page exists even though we set no cookies
Privacy law in this area is not really about the word “cookie”. It is about storing information on your device, or reading information already stored there, whatever the technology. The EU ePrivacy rule and the UK equivalent are written that way. Local storage counts. So does anything similar.
So the honest way to describe this product is not “we use no cookies, nothing to see here”. It is: here is every key we write, what is in it, and what it is for.
What we store, in full
On the website (browser local storage)
Local storage has no expiry date. Unlike a cookie, a value written to local storage stays until you delete it, or until your browser evicts it to reclaim space. Two of our entries have an age rule inside the app, noted below, but even then the stored value itself is not automatically deleted. It is simply ignored.
Everything below is written by our own site under our own name. None of it is transmitted anywhere.
wm_walls_v1— your saved layouts, up to 50. Each holds a name you typed, the encoded layout tokens naming the streams and services in that layout, a tile count and a saved-at timestamp. So the layouts you chose to save are still there next time. Kept until you delete it. Functional: you asked for it.wm_last_wall_v1— your most recent layout, so the “resume” chip can offer it back. Kept until you delete it; the app ignores it after 7 days. Functional: you asked for it.wm_tracker_v1— your watch list. For each title you marked: title, service, movie or series, season, episode, how far in you got, watching or completed, and when you updated it. Kept until you delete it. Functional: you asked for it.wm_session_log_v1— a local count of minutes watched, up to 500 entries. Each entry is a calendar day, a platform name such asyoutube, and a number of minutes. It does not record titles. It draws the stats page you can open yourself. Kept until you delete it. On-device measurement: see the note below.wm_ambient_v1— the single character1, meaning the ambient light effect is switched on. Kept until you delete it. Functional: you asked for it.wm_consent_party— your watch-party consent decision: the feature name, whether you granted or withdrew it, and when. It is what lets us honour your choice. Kept until you delete it; treated as stale after 2 years, which asks you again. Strictly necessary: it records your own choice.
A note on the minutes counter, because we would rather over-explain it than have you find it yourself. This is the only entry that is written automatically. While a stream is playing, the app banks one minute against that platform every sixty seconds. Mechanically that resembles analytics. Substantively it is not: it never leaves your device, we never see it, it names the platform rather than the title, and its only purpose is the stats page you can open yourself. The code that writes it makes no network requests of any kind. You can export it and wipe it from the stats page.
One important detail about how browsers scope this. Local storage is separate for every web address, and this site is served from more than one address. Each one keeps its own separate copy of everything above, and clearing one does not clear the others.
On the mobile app (device storage, sandboxed to the app)
The mobile app is built but is not in any app store yet. When it ships, it stores the following on your device using the platform’s app storage. None of it is transmitted.
watchmatrix.tracker.v1— your watch list, same shape as the website.wm_session_log_v1— minutes watched, same shape as the website.watchmatrix.streams.v1— your current stream layout.watchmatrix.webtiles.v1— website addresses you pinned into the grid yourself, plus a hostname label. These are deliberately excluded from share links, saved layouts and cast payloads.wm_walls_v1— saved layouts.wm_last_wall_v1— resume state.wm_lists_v1— named lists of links you saved.wm_consent_party— your watch-party consent decision.wm_ambient_v1— display preference.watchmatrix.review.asked.v1— the single character1, recording that the app store’s own “rate this app” prompt was shown once, so it is not shown again.
On the browser extensions
Two extensions exist in the source. Neither is published to any store, so you cannot install them today.
- The window tiler (“Matrix”) stores nothing. It asks for one permission, the ability to arrange windows, and does not request storage at all.
- “Matrix TV” stores two things in extension storage: your watch list, and one opt-in record per site (Netflix or Disney+). It writes nothing at all until you switch a specific site on and confirm.
On the desktop app
The desktop “Matrix Browser” is built but its download is currently paused and no file is being served. If and when it ships, it writes three files in its own data folder on your computer: a per-service consent file for a page-reading feature that ships switched off; a watch history file for that same feature, which stays empty in the shipped build because the feature is off; and, if you pair an LG TV, the TV’s address on your home network and the pairing key it gave you.
Separately, because the desktop app is a real browser, the websites you sign in to inside it store their own cookies and site data, in the app’s own folder on your computer, exactly as they would in Chrome or Safari. That is normal browser behaviour. The app does not read those cookies: there is no cookie access anywhere in its source.
What we do not store
- No cookies. There is no cookie write and no cookie header anywhere in the product. The website is a static export with no server that could set a session cookie, and our one server function returns data only and sets no cookie.
- No session storage and no database in your browser. No
sessionStorage, no IndexedDB, no Cache Storage and no service worker anywhere in the product. - No analytics of any kind. No Google Analytics, no tag manager, no Plausible, Fathom, PostHog, Mixpanel, Amplitude, Segment, Matomo, Umami, Hotjar or Clarity. No Sentry, Bugsnag, Datadog or Crashlytics. No Meta, TikTok, AppsFlyer, Adjust or OneSignal. None of these appear in any dependency list or in any shipped file.
- No advertising and no tracking pixel. There is no ad network, no pixel and no beacon anywhere.
- No fingerprinting. No canvas, WebGL, audio or font fingerprinting. On this website, three device readings exist and all three are for layout or feature detection, none stored and none transmitted: your screen size, sent only to a locally installed extension over local messaging; a single check of whether the browser is a Chromecast; and this site’s own hostname, which the Twitch player requires. The mobile app additionally reads which operating system it is running on, and the desktop app puts its own name into the browser user agent; both are described in the Privacy Policy, sections 9 and 10.
- No web fonts. The site loads no fonts from Google or anywhere else.
- No identifier for you. We never generate a visitor id, a device id or an advertising id. The only random values the product creates are the temporary codes for a watch party or a phone pairing session, which are made fresh each time and thrown away when the session ends.
Categories, stated honestly
Cookie policies usually sort entries into four buckets. Here they are, with the empty ones left visibly empty rather than quietly dropped.
- Strictly necessary. One entry:
wm_consent_party, which records your own consent decision so we can honour it. - Functional (you asked for it).
wm_walls_v1,wm_last_wall_v1,wm_tracker_v1,wm_ambient_v1. Each exists because you saved a layout, marked a title, or switched something on. - Performance / analytics. Empty. We run no analytics.
wm_session_log_v1is a local minutes counter that never leaves your device and that you can export and wipe from the stats page. We describe it above rather than hiding it inside another category. - Advertising / targeting. Empty. There is no advertising anywhere in this product, and no data is ever used for it.
Third-party players and what they may store
This is the part we do not control, so we will be exact about it.
When you add a stream, we build the platform’s own official player address and put it in a frame on the page. That is the whole mechanism. Everything inside that frame is the platform’s own code running under the platform’s own name.
What that means for you. YouTube, Twitch, Kick, Rumble and X can set their own cookies and use their own storage under their own names, can see your IP address and browser because your device is requesting from them directly, and if you are signed in to them they can connect the view to your account. We cannot prevent this, we cannot switch it off for you, and we never receive any of it. It is governed by their privacy policies, not ours.
The specific third parties that can store something on your device when you use particular features:
- YouTube (www.youtube.com), when you add a YouTube stream or open a shared link containing one. We use the standard YouTube embed, not the no-cookie variant.
- Twitch (player.twitch.tv, clips.twitch.tv), when you add a Twitch stream or clip.
- The Twitch player script, when you add a Twitch channel or recording that supports play/pause control. This one loads as a script on our own page rather than inside a frame, which gives it more reach than a framed player. It is the only third-party code that ever runs in our page.
- Kick (player.kick.com), when you add a Kick stream.
- Rumble (rumble.com), when you add a Rumble video.
- X (platform.twitter.com), when you add an X post.
- Twitch and YouTube chat, when you open the chat side panel. Posting a message signs you in to that platform inside its own frame, which we never see.
- Movie of the Night (cdn.movieofthenight.com), when you open the TV guide. Poster artwork is loaded straight from their content network by your browser, which discloses your IP address to them. We cannot tell from our own code whether their content network also sets a cookie on those image requests, so we are not going to claim either way.
- Google Cast, only if casting is switched on in a future build. In the current build the Cast software is never loaded. If that changes, this page will be updated at the same time.
Two limits we do put in place, which genuinely help.
- We tell the platforms as little as we are allowed to. Every frame and the whole site send
strict-origin-when-cross-originas the referrer policy. In practice that means a platform is told the request came from https://watchmatrix.tv and nothing more. It is not told the rest of the address, which is where your list of streams lives. - We read almost nothing of what a player sends back.A player on the page can post messages back to the page, and YouTube’s does: once we ask it to report, it streams a running status object into the page, which carries the playback position along with other details about the player and the video. The only thing the app reads out of it is the position, and whether the player is paused, used to keep tiles in sync. The rest is ignored, none of it is stored, and none of it is about you. What is read stays in your browser tab except during a watch party, where the position goes to the people in your party and nowhere else.
On the TV guide.The guide currently has no link anywhere in the site’s navigation, but the page still works if you have a bookmark or an old link. If you open it, the poster artwork loads from Movie of the Night as described above, and if you type in its search box, that text is sent to our own server function and on to Movie of the Night. That is a network disclosure rather than device storage, so it is covered in the Privacy Policy rather than here.
Watch parties, the phone remote and screen sharing
These features do not store anything on your device except the consent record listed above. They do send information over the network, including to third-party connection services, and one of them sends video. That is described in the Privacy Policy, not here, so that both documents stay accurate rather than half saying the same thing.
Do Not Track and Global Privacy Control
We do not run any code that reads a Do Not Track header, a Global Privacy Control signal, or any similar browser signal.
The reason is that there is nothing for such a signal to switch off. We do not track you across websites, we do not build a profile, and we do not sell or share personal information for advertising. There is no setting on our side that a signal could change.
Browser signals may still be received and acted on by the video platforms whose players you load. That is between you and them.
How to delete everything
On the website, all at once
The most complete way is your browser’s own controls, because they remove everything this site stored, in one action. Menu names change between browser versions, so the reliable route is:
- Chrome and Edge: the icon left of the address bar, then site settings or site data, then delete. Or Settings, then Privacy and security, then delete browsing data.
- Firefox: the padlock icon, then clear cookies and site data. Or Settings, then Privacy and Security, then Cookies and Site Data, then Manage Data.
- Safari: Settings or Preferences, then Privacy, then Manage Website Data, then find watchmatrix.tv.
- Any browser: using a private or incognito window means nothing is kept after you close it.
Remember the point above about separate addresses. If you have used the site on more than one of them, do this on each one.
On the website, item by item, inside the app
These are the controls that exist today. We list only the ones that are really there.
- Watch stats.“Clear stats”, with a confirmation, next to “Export JSON”, on the stats page. It is linked from the keyboard shortcuts panel in the viewer.
- The resume entry.The small close control on the “resume” chip, labelled “Forget last wall”, on the homepage and in the viewer.
- Saved layouts. Delete, one layout at a time, in the saved layouts panel in the viewer. There is no delete-all.
- Your watch list.Export the list to a file, and “Remove” one title at a time. There is no clear-all. These controls sit inside the TV guide, which currently has no link in the navigation.
- Ambient light preference. Switching ambient mode off deletes the entry.
- Watch-party consent. The “Stop sharing” button in the party bar. It is only reachable from inside a party.
We are telling you plainly where this falls short.There is no single “delete everything” button in the app today, there is no way to clear your whole watch list in one action, and there is no way to withdraw watch-party consent without joining a party first. Until that changes, the browser controls above are the complete answer, and they do work.
On the mobile app
Delete the app, or use your phone’s settings for that app and clear its storage. On Android that is Settings, then Apps, then WatchMatrix, then Storage, then Clear data. On iOS, deleting the app removes its storage. Inside the app you can export your watch list from Settings, but there is no clear control in the app today.
On the desktop app
Delete the app’s data folder, or uninstall the app. Website cookies and logins created inside the desktop app are removed with it, because they live in that folder.
On the browser extensions
Removing the extension removes its storage. In “Matrix TV” you can also switch an individual site back off, which records the withdrawal.
Do we ask for consent before storing this?
No banner is shown today. Our reading is that everything above is either strictly necessary or is something you asked for by using a feature: a layout you saved, a title you marked, a switch you turned on. A banner asking permission to save the thing you just pressed save on is not a real choice, and honouring a refusal would simply mean the feature stops working. The one entry written automatically rather than on a press is the minutes counter described above, and it never leaves your device.
We would rather explain that reasoning, and list every key with the exact way to delete it, than put a box on the screen that does not offer you a real choice.
Changes and contact
If what we store changes, we will change this page and move the date at the top. There is no mailing list to notify, because we do not have your email address and do not want it.
WatchMatrix.TV is operated by Links.to LLC, which is the company responsible for the storage described on this page. Questions about anything on it: watch.matrix.tv@gmail.com.
← Back to WatchMatrix.TV