Overview
KeepAwake ("we", "us") operates https://keepawake.app. This policy explains how we handle information. Short version: all jiggling techniques run entirely in your browser โ we never see what you enter or what your computer does.
Information We Do NOT Collect
KeepAwake does not collect or store:
- Your name, email address, or any personally identifiable information
- Your IP address (Google Analytics is configured with IP anonymization)
- Any information about your computer's activity, idle state, or screen
- Login credentials of any kind (we have no account system)
- Data from your employer, device, or corporate network
Information Collected Automatically
Google Analytics 4
We use Google Analytics 4 to understand aggregate traffic. GA4 collects: pages visited, time on site, approximate geographic region (country-level, IP anonymized), browser and device type, and custom events (jiggler_started, jiggler_stopped, interval_changed, wake_lock_supported, page_engaged). These events contain no personal data.
Opt out: Google Analytics opt-out add-on. Google's policy: policies.google.com/privacy.
Google AdSense
We serve ads through Google AdSense. Google may use cookies to personalise ads based on browsing history. Opt out at Google Ads Settings. More: How Google uses partner site data.
Browser APIs Used โ Privacy Implications
Screen Wake Lock API
When you click Start, KeepAwake calls navigator.wakeLock.request('screen'). This is a browser-to-OS call that prevents screen dimming. No data is transmitted over the network. The Wake Lock is released immediately when you click Stop or close the tab.
Picture-in-Picture
KeepAwake creates a 2ร2 pixel animated canvas and streams it as a video via the browser's PiP API. This process is entirely local โ no video data is transmitted to any server. The PiP window contains only a tiny color-cycling pixel, completely invisible in practice.
AudioContext
An AudioContext generates a 40Hz sine wave at 0.0001 gain (effectively silent) using your device's audio system. This is processed entirely locally by your browser's Web Audio API. No audio is recorded or transmitted.
Web Worker
A Web Worker is created from an inline Blob URL to run a background heartbeat timer. The worker contains no tracking code and communicates only with the main page JavaScript. It is destroyed when you stop the jiggler or close the tab.
Local Storage
KeepAwake stores one item in your browser's localStorage: sa-theme โ your light/dark mode preference. This never leaves your device and is never transmitted to our servers.
Cookies
KeepAwake sets no first-party tracking cookies. Google Analytics and AdSense set their own cookies per Google's policy. You may disable cookies in your browser settings without affecting the jiggler functionality.
Third-Party Resources
We load fonts from Google Fonts (fonts.googleapis.com / fonts.gstatic.com). These requests are preconnected with crossorigin to minimise data sharing. Google Fonts logs basic request data per their privacy policy.
GDPR Rights (EU/EEA Users)
You have rights to access, portability, erasure, and objection to processing under GDPR. Since we collect no personal data directly, most rights are satisfied by default. For Google's data, refer to Google's GDPR resources. Contact: hello@keepawake.app.
CCPA Rights (California Residents)
We do not sell personal information. Contact: hello@keepawake.app.
Children's Privacy
KeepAwake is not directed at children under 13. We do not knowingly collect information from children.
Security
KeepAwake is served exclusively over HTTPS. All traffic between your browser and our servers is encrypted. All jiggling techniques run client-side and establish no server connections during operation.
Changes
We may update this policy periodically. Changes will be posted here with a revised date.