This site is mostly static pages in your browser. Some tools use Google Analytics to understand aggregate traffic. The navigation drawer may use an anonymous presence heartbeat (Google Form + Sheet) to show how many other people are on each app. Features that use Sign in with Google talk directly to Google’s services from your device; this site does not operate a backend that stores your Google account or spreadsheet content on my servers.
Many pages load
Google Analytics 4
(measurement ID
G-Q62Q3E20Y0
) via Google Tag Manager scripts. Analytics may collect information such as pages viewed,
approximate location (derived from IP), device and browser characteristics, and events
triggered by the site (for example error or interaction events where implemented). Analytics
is disabled on
localhost
in the bundled helper script.
How Google uses data from sites that use their services is described in Google’s documentation, including Google’s Privacy Policy and How Google uses information from sites or apps that use our services .
If you use a feature that connects to Google Drive or Google Sheets, Google shows you a consent screen and issues an access token in the browser. Tokens and identifiers needed to resume a session (such as spreadsheet file IDs) may be stored in your browser’s local storage on your device only. API requests are made from your browser to Google; I do not receive or store your passwords, and I do not run a server-side database of your tasks or files for those flows.
Individual demos may save preferences or progress in local storage (or similar browser APIs) so settings persist between visits. Analytics uses cookies or similar storage as described by Google. You can clear site data in your browser settings at any time.
Standalone app pages may send an anonymous presence heartbeat so the site navigation drawer can show how many other people are currently on each app. A random id is stored in your browser’s local storage (not your name or email). About once a minute while the tab is visible, the page submits that id and the current app path to a Google Form ; a linked Google Sheet (publicly readable) holds one row per id with the last-seen time. Closing the tab stops heartbeats; stale rows expire after a few minutes. This is separate from Google Analytics.
This site may link to third-party sites. Their privacy practices are governed by their own policies.
These pages are not directed at children under 13, and I do not knowingly collect personal information from children for targeted purposes.
I may update this policy occasionally. The “Last updated” date at the top will change when it is revised.
For privacy questions about this site, you can reach out via GitHub (@joeheyming).