Cookie policy
This policy explains how Sportwise uses cookies and similar technologies to recognize you when you visit our platform.
Last updated February 2026
What are cookies?
Cookies are small text files placed on your device when you visit a website. They are widely used to make websites work efficiently, remember your preferences, and provide usage information to site owners. Sportwise also uses browser Local Storage and Session Storage to improve performance and user experience β these store data in your browser and are never sent to our servers automatically.
Types of cookies we use
Essential cookies
Required β cannot be disabledThese cookies are strictly necessary for the platform to function. Without them, services you have asked for cannot be provided.
Authentication and login sessions
Security and CSRF protection
Session management
Cookie consent preferences
Analytics cookies
OptionalThese cookies collect aggregated, anonymous information about how visitors use Sportwise. They help us improve the platform.
Page views and usage patterns
Performance metrics and load times
Aggregated behavior data
Only activated with your consent.
Marketing cookies
Coming soonMarketing cookies are not currently used on Sportwise. When implemented, they will require your explicit consent before activation.
Functional cookies
OptionalThese cookies enable enhanced functionality and personalization.
Language and locale preferences
UI customization and layout
Theme preferences (dark/light mode)
Detailed storage disclosure
Below is a complete list of every cookie, Local Storage key, and Session Storage key used by Sportwise, along with its purpose and whether consent is required.
Cookies we use
2 cookies currently in use
| Name | Purpose | Data stored | Expiration | Category | Required |
|---|---|---|---|---|---|
NEXT_LOCALE | Stores your selected language and locale preference | Language code (e.g. "en", "lt") | Session | Functional | Yes |
ph_phc_* | PostHog analytics β tracks page views, sessions, and usage patterns | Session ID, page views, anonymised usage data | Session | Analytics | No |
Local storage usage
16 keys currently in use
| Name | Purpose | Data stored | Expiration | Category | Required |
|---|---|---|---|---|---|
sw_cookie_consent | Stores your cookie consent preferences | Consent flags, timestamp, policy version | Until cleared | Essential | Yes |
sw_cookie_anonymous_id | Stores an anonymous identifier before you sign in | UUID string | Until cleared | Essential | Yes |
accessToken | Stores your authentication access token (signed-in users only) | Encrypted access token | Until logout | Essential | Yes |
refreshToken | Stores your authentication refresh token (signed-in users only) | Encrypted refresh token | Until logout | Essential | Yes |
expiresAt | Stores when the access token expires so it can be refreshed in time (signed-in users only) | Timestamp | Until logout | Essential | Yes |
sportwise.device_id | Identifies this browser in your list of signed-in devices so you can disconnect it remotely | Random identifier (UUID) | Until cleared | Essential | Yes |
theme | Stores your preferred color theme (light / dark / system) | Theme string value | Until cleared | Functional | No |
sw_sidebar_collapsed | Remembers whether you keep the app side menu collapsed or expanded | true / false | Until cleared | Functional | No |
ph_phc_* | PostHog analytics data stored locally (signed-in users) | Session data, user properties, feature flags | Until cleared | Analytics | No |
sw_timer_amrap | Stores AMRAP timer progress so it can be resumed after a page refresh | Timer status, time remaining, round count, config | Until cleared | Functional | No |
sw_timer_emom | Stores EMOM timer progress so it can be resumed after a page refresh | Timer status, time remaining, current round, config | Until cleared | Functional | No |
sw_timer_interval_circuit | Stores interval circuit timer progress so it can be resumed after a page refresh | Timer status, current phase, time remaining, total elapsed | Until cleared | Functional | No |
sw_timer_stopwatch | Stores stopwatch state so elapsed time and laps are preserved after a page refresh | Timer status, accumulated milliseconds, lap entries | Until cleared | Functional | No |
sw_timer_breathing | Stores breathing timer progress so the current phase and session can be resumed after a page refresh | Timer status, current phase, phase time remaining, total elapsed, cycle count, config | Until cleared | Functional | No |
sw_timer_sound | Remembers that you muted the timer beeps, so they stay off on your next visit | "off" β removed when you turn sound back on | Until cleared | Functional | No |
sw_workout_builder | Stores the workout program created in the free program builder so it is preserved between visits | Program name, training days, exercises with sets, reps, weight, rest and notes | Until cleared | Functional | No |
sw_nutrition_builder | Stores the nutrition program created in the free nutrition builder so it is preserved between visits | Program name, daily calorie and macro targets, days, meals and foods with their amounts and macros | Until cleared | Functional | No |
sw_list_view_* | Remembers whether you view the exercises, foods, recipes and clients lists as a table or as cards, separately for each list | table / cards | Until cleared | Functional | No |
Session storage usage
3 keys currently in use
| Name | Purpose | Data stored | Expiration | Category | Required |
|---|---|---|---|---|---|
ph_phc_* | PostHog session analytics β active session data for the current browser tab | Session ID, current page data, event queue | Session end | Analytics | No |
sw_assessment_draft_* | Keeps your answers to a longer assessment (perceived stress, injury risk) while you are answering, so a page refresh does not lose them. Removed when you finish or clear the assessment | The answers given so far, one entry per assessment | Session end | Functional | No |
sw_pending_save_* | Keeps a calculator or assessment result you chose to save while you create an account or log in, so it can be saved to your account afterwards. Removed as soon as it is saved | The inputs and the result of that one calculation or assessment | Session end | Functional | No |
Legal compliance
GDPR compliance
Sportwise complies with the General Data Protection Regulation (GDPR). We do not load any non-essential cookies or tracking scripts until you have given explicit consent. You may withdraw your consent at any time.
Data controller
Sportwise is the data controller responsible for your personal data processed through cookies. For questions about our cookie practices, please contact us.
Questions about cookies?
If you have any questions about how we use cookies or other storage technologies, our team is ready to help.
Contact us βManaging your cookies
You can change your cookie preferences at any time by clicking the "Cookie Settings" link in the website footer. You can also manage cookies through your browser settings. Most browsers allow you to block or delete cookies. However, blocking essential cookies may affect platform functionality.