Cookie Policy
This policy explains exactly how OpenMat uses cookies and browser storage technologies, what we collect, why we collect it, and what choices you have β including how to opt out.
Table of Contents
1 What Are Cookies?
Cookies are small text files placed on your device by websites you visit. They are widely used to make websites work, improve efficiency, and provide reporting information.
OpenMat operates primarily as a Progressive Web App (PWA) rather than a traditional website. This means we rely more on browser storage APIs β specifically localStorage and sessionStorage β rather than traditional HTTP cookies. These technologies serve the same fundamental purpose: persisting data between sessions and enabling core app functionality.
Throughout this policy, when we refer to "cookies" we mean all browser-based storage technologies we use, including localStorage, sessionStorage, and any session identifiers, unless otherwise specified.
2 How OpenMat Uses Storage
We use browser storage for four primary purposes:
3 Types of Storage We Use
localStorage β Persistent storage that remains on your device until you clear it. We use this to store your account data, training logs, preferences, and app state. All data is stored locally on your device with the prefix openmat_.
sessionStorage β Temporary storage that is cleared when you close your browser tab. We use this for temporary session identifiers used in our analytics pipeline, and for preserving onboarding state during Google OAuth redirects (key: openmat_google_pending).
Service Worker Cache β Our Progressive Web App uses a service worker to cache app shell resources (HTML, CSS, fonts, icons) for offline use. This cache does not contain any personal data β only static UI assets. Cache key: openmat-shell-v1.
4 Full Storage Inventory
Here is a complete, transparent inventory of every storage key OpenMat uses:
localStorage keys (prefix: openmat_)
| Key | Purpose | Data Stored | Duration | Essential? |
|---|---|---|---|---|
openmat_json_store |
Main app data store | Account, training logs, session history, gear, weight, community posts | Until cleared | Yes |
openmat_userData |
Fast-access user data cache | Name, handle, XP, rank, streak, settings | Until cleared | Yes |
openmat_hasVisited |
Onboarding completion flag | Boolean β whether user has completed onboarding | Until cleared | Yes |
openmat_darkMode |
Theme preference | "true" or "false" | Until cleared | Yes |
openmat_sensei_conversation |
Sensei AI chat history | Message history for AI context continuity | Until cleared | No |
openmat_user_email |
Quick login reference | Email address only (no password) | Until cleared | Yes |
openmat_user_handle |
Quick login reference | @handle only | Until cleared | Yes |
openmat_onboarding_data |
Registration record | Registration timestamp, disciplines, role selected | Until cleared | No |
openmat_registered_handles |
Handle uniqueness check | Array of registered handles for local uniqueness validation | Until cleared | Yes |
openmat_last_autosave |
Auto-save timestamp | ISO timestamp of last successful auto-save | Until cleared | No |
openmat_last_day_key |
Day-turnover tracking | Date string (YYYY-MM-DD) of last active day | Until cleared | No |
openmat_[monthkey].json |
Monthly training archive | Full month of training data: sessions, XP, streaks, gear, weight | Until cleared or exported | No |
openmat_analytics_first_visit |
Visit history analytics | Timestamp of first visit | Until cleared | Optional |
openmat_analytics_last_visit |
Visit recency analytics | Timestamp of most recent visit | Until cleared | Optional |
openmat_analytics_visit_count |
Visit frequency analytics | Integer count of total visits | Until cleared | Optional |
om_welcome_notif_read |
Notification state | Whether welcome notification has been read | Until cleared | No |
sessionStorage keys
| Key | Purpose | Data Stored | Duration | Essential? |
|---|---|---|---|---|
openmat_analytics_session_id |
Anonymous session tracking | UUID β randomly generated per session, not linked to account | Tab close | Optional |
openmat_google_pending |
OAuth state preservation | Partial onboarding data saved during Google redirect flow | Tab close or consumed | Yes (Google login) |
openmat_pending_route |
Deep link restoration | URL path to restore after login redirect | Tab close or consumed | Yes |
om_preview_bp |
Desktop preview state | Selected breakpoint in desktop preview tool (admin only) | Tab close | No |
om_welcome_notif_dismissed |
Welcome banner state | Whether welcome banner has been dismissed this session | Tab close | No |
Service Worker Cache
| Cache Name | Contents | Personal Data? | Duration |
|---|---|---|---|
openmat-shell-v1 |
App HTML shell, CSS, Font Awesome icons, Google Fonts | None | Until app update clears old cache |
5 What We Don't Use
We want to be completely transparent. The following technologies are not used by OpenMat:
- β Third-party advertising cookies (Google Ads, Meta/Facebook Pixel, etc.)
- β Cross-site tracking or retargeting technologies.
- β Google Analytics, Google Tag Manager, or any Google tracking scripts.
- β Facebook SDK or social media tracking pixels.
- β Mixpanel, Amplitude, Segment, or similar third-party analytics platforms.
- β Session recording tools (Hotjar, FullStory, Microsoft Clarity, etc.).
- β Browser fingerprinting or device fingerprinting for identification.
- β Persistent cross-device tracking.
- β Any cookie that tracks you across websites you visit outside of openmat.ai.
6 Third-Party Services
OpenMat integrates with a small number of third-party services. Here is how each handles cookies and storage:
| Service | Purpose | Cookies / Storage Used | Their Privacy Policy |
|---|---|---|---|
| Google OAuth | Sign in with Google | Google sets its own cookies during the OAuth flow on accounts.google.com. These are Google's cookies, not ours, and are governed by Google's Privacy Policy. They are not set on openmat.ai. | policies.google.com/privacy |
| Stripe | Payment processing | Stripe sets cookies on their payment pages for fraud detection and security. These are set on Stripe's domain, not on openmat.ai. See Stripe's Cookie Policy. | stripe.com/privacy |
| n8n Cloud | Webhook automation (analytics, registration, AI routing) | No cookies set in your browser. Only server-to-server API calls from our backend. | n8n.io/privacy |
| ipapi.co | IP geolocation for analytics | A single API request is made on session start to approximate your country/city. No cookie is set. Your IP address is sent to ipapi.co but is not stored by us beyond 90 days. | ipapi.co/privacy |
| Google Fonts | Typography (Manrope font) | Fonts are loaded from fonts.googleapis.com. Google may set cookies or log IP addresses as part of this request. We cache fonts via our Service Worker to reduce these requests after first load. | policies.google.com/privacy |
| Font Awesome (Cloudflare CDN) | Icons | Icons are loaded from cdnjs.cloudflare.com. Cloudflare may log requests for CDN optimization. No advertising cookies are set. | cloudflare.com/privacypolicy |
7 Your Consent
When you first visit OpenMat, we display a cookie consent banner that gives you the choice to accept or reject non-essential cookies.
Essential and functional storage cannot be disabled as they are required for the app to operate. Analytics storage is optional and off by default.
Your consent preferences are saved in localStorage under openmat_cookie_consent. You can change your preferences at any time from Settings β Privacy β Cookie Preferences.
8 Your Choices & Opt-Out
You have several ways to control storage and tracking on OpenMat:
Cookie Preferences in App: Go to Settings β Privacy β Cookie Preferences in the OpenMat app to toggle analytics storage on or off at any time.
Email Opt-Out: Email privacy@openmat.ai with subject "Analytics Opt-Out" and we will flag your account to exclude it from session analytics processing.
Use a VPN: Using a VPN prevents accurate IP geolocation. Our analytics will still run but the location data will be approximate or incorrect.
Clear Browser Storage: You can clear all OpenMat localStorage and sessionStorage data through your browser settings. Note: this will log you out and reset all app data on your device.
Block Specific Domains: You can use browser extensions (uBlock Origin, Privacy Badger) to block requests to
ipapi.coor our analytics webhooks. This will not affect core app functionality.Private / Incognito Mode: Using private browsing prevents localStorage from persisting between sessions. The app will work but your data will not be saved between visits.
9 How to Clear Your Data
To clear all OpenMat storage from your browser:
Export first (recommended): In the app, go to Settings β Export Data β Download JSON to save a copy of all your training data.
Open DevTools: Press F12 (Windows/Linux) or Cmd+Option+I (Mac) to open browser developer tools.
Go to Application tab: Click "Application" (Chrome/Edge) or "Storage" (Firefox).
Clear localStorage: Expand Local Storage, right-click on your site's entry, and select "Clear."
Clear sessionStorage: Expand Session Storage, right-click, and select "Clear."
Clear Service Worker Cache: Under Cache β Cache Storage, delete the
openmat-shell-v1entry. Under Application β Service Workers, click "Unregister."
Alternatively, use the in-app reset: Settings β Advanced β Reset App Data. This clears all local storage and logs you out.
10 Browser-Specific Instructions
To manage cookies and storage in your specific browser:
11 Do Not Track
Some browsers include a "Do Not Track" (DNT) feature that sends a signal to websites you visit indicating that you do not want to be tracked.
Currently, there is no universally accepted standard for how websites should respond to DNT signals. As a result, OpenMat does not currently alter its data collection practices in response to DNT browser settings.
However, we want to be clear: we do not sell your data, we do not build advertising profiles, and we do not share your data with ad networks regardless of your DNT setting. Our data practices are privacy-respecting by design, not just by policy.
We will continue to monitor developments in DNT standards and update our practices accordingly.
12 Changes to This Policy
We may update this Cookie Policy from time to time to reflect changes in technology, regulation, or our practices. When we make material changes, we will:
- Post the updated policy with a new "Last Updated" date.
- Display an in-app notification describing the key changes.
- For significant changes, send an email to registered users at least 14 days before the changes take effect.
- Show the cookie consent banner again if we introduce new categories of storage.
The date at the top of this policy indicates when it was last updated. Continued use of OpenMat after the effective date constitutes acceptance of the updated Cookie Policy.
13 Contact Us
If you have any questions about this Cookie Policy, how we use storage technologies, or want to exercise your opt-out rights, please contact us:
| Privacy Team | privacy@openmat.ai |
| Subject Line | "Cookie Policy Question" or "Analytics Opt-Out" |
| Response Time | Within 5 business days |
| Company | Proscris LLC, State of Florida, USA |
| Website | openmat.ai |
This Cookie Policy was last reviewed and updated on April 1, 2026. It should be read alongside our Privacy Policy and Terms of Service.
Questions about cookies?
Our privacy team can explain exactly how our storage works and help you manage your preferences.
πͺ Contact Privacy Team