Privacy Policy
Last updated: February 2026
StayAwake.Dev ("we", "us", "the app") is a free, browser-based productivity tool that keeps your screen awake. We are committed to protecting your privacy. This policy explains what data we collect, why, how it is stored, and your rights.
TL;DR: Most of your data never leaves your browser. We don't sell data, we don't run ads, and we don't create user accounts.
1. Location Data
Why we ask: The weather widget on the home screen uses your location to show local temperature and conditions.
What we collect: Latitude and longitude coordinates, obtained through the browser's Geolocation API.
How it works: Your browser will show a permission prompt before any location data is accessed. If you deny the prompt, the weather widget simply won't appear — no other feature is affected.
Where it goes: Your coordinates are sent to two third-party APIs to fetch weather data:
- Open-Meteo (api.open-meteo.com) — provides temperature and weather codes. Open-source, no API key required.
- Nominatim / OpenStreetMap (nominatim.openstreetmap.org) — reverse-geocodes coordinates to a city name for display.
Storage: Weather results are cached in your browser's localStorage for 15 minutes to reduce API calls. Your raw coordinates are not stored on any server we control.
How to revoke: Remove location permission for stayawake.dev in your browser settings at any time.
2. Data Stored in Your Browser
The following data is stored locally in your browser using localStorage. It never leaves your device unless you use the Remote Control feature.
- Settings — theme, clock format (12h/24h), show seconds, background image URL, ticker symbols, edge gestures, and home page layout.
- Tasks — your to-do items (Today and Backlog lists).
- Pomodoro settings — focus duration, break duration, and timer configuration.
- Weather cache — recent weather data with a 15-minute expiry.
- Device ID — a randomly generated UUID stored locally to enable one-vote-per-device on feature requests. This is not linked to your identity.
How to clear: Clear your browser's site data for stayawake.dev, or use your browser's "Clear browsing data" feature. This resets all settings and tasks.
3. Data Stored on Our Server
We store a minimal amount of data server-side in a MongoDB database:
- Feature requests — title, optional description, and a list of anonymous device IDs that voted (to prevent duplicate votes). No personal information is attached.
- Feedback submissions — the text you submit via the feedback form on the FAQ page, plus your anonymous device ID and a timestamp.
We do not store your name, email, IP address, or any personally identifiable information (PII) in our database.
4. Analytics
We use two analytics services to understand how people use the app (page views, popular features):
- Umami Analytics — a privacy-focused, cookie-free analytics tool. It does not collect personal data, does not use cookies, and is GDPR-compliant by design.
- Google Analytics (gtag.js) — collects anonymized page view data. Google may set cookies. You can opt out via browser extensions like Google Analytics Opt-out or by using a privacy-focused browser.
We do not use analytics data to identify individual users.
5. Third-Party Services
The app connects to the following external services. No personal data is shared — only the minimum information needed for each feature:
- Open-Meteo & Nominatim — weather data and city name lookup (coordinates sent, as described in Section 1).
- CoinGecko API — cryptocurrency price data. Only crypto symbol IDs are sent (e.g., "bitcoin"). No user data.
- Alpha Vantage API — stock/index price data, proxied through our server. Only stock ticker symbols are sent.
- Google Fonts — font files loaded from Google's CDN. Google may log standard request metadata (IP address, user agent).
6. Browser Permissions & APIs
- Wake Lock API — prevents your screen from dimming or sleeping while the app is active. This is the core feature of the app. No data is collected; it simply tells your browser to keep the screen on. Falls back to a silent video loop on unsupported browsers.
- Geolocation API — used for the weather widget (see Section 1). Requires explicit permission.
- Notifications API — used to notify you when a Pomodoro timer ends. Requires explicit permission. No data leaves your device.
7. Remote Control (Socket.io)
The Remote Control feature lets you control the app on one device (e.g., a TV) from another (e.g., your phone) using a 6-character pairing code.
- Pairing rooms automatically expire after 30 minutes.
- Only app settings (theme, clock format, background) are synced — no personal data.
- Data is transmitted via WebSocket and is not stored on the server after the session ends.
8. Cookies
StayAwake.Dev does not set any first-party cookies. Google Analytics may set third-party cookies for analytics purposes. You can block these using your browser's cookie settings or a privacy extension.
9. Children's Privacy
This app is not directed at children under the age of 13. We do not knowingly collect personal information from children. Since we don't collect personal information from anyone, this is inherently satisfied.
10. Your Rights (GDPR, CCPA)
Since we don't collect personally identifiable information, most data protection regulations are satisfied by design. However, you have the right to:
- Access — all your app data is stored in your browser's localStorage, which you can inspect anytime via browser DevTools.
- Delete — clear your browser's site data for stayawake.dev to remove all locally stored data. For server-stored feedback or feature requests, contact us.
- Opt out of analytics — use a browser extension, privacy-focused browser, or disable JavaScript for analytics scripts.
- Revoke permissions — remove location or notification permissions in your browser settings at any time.
11. Data Security
All communication with our servers and third-party APIs is over HTTPS (TLS encrypted). Local data stored in your browser is protected by your device's security. We do not store passwords or sensitive credentials.
12. Changes to This Policy
We may update this privacy policy from time to time. Changes will be reflected on this page with an updated date. Continued use of the app after changes constitutes acceptance of the updated policy.
13. Contact
If you have questions about this privacy policy or want to request data deletion, use the feedback form on the FAQ page, or reach out via the feature requests page.