Privacy
What this site knows about you, and what it doesn't
PlainLogic currently provides a mix of free educational content, interactive experiences, and utilities that mostly run in your browser, so there is not much to collect. This page describes what actually happens, based on how the site is built — not a generic policy copied from somewhere else. Last updated October 6, 2026.
The short version
- Mostly local. Usage counts ("Lab stats on this device"), your theme, Pip's memory, and saved projects live in your browser's local storage. No cookies, no ad trackers. The usage counts never leave your device.
- Live data is the exception. When you ask for live data — the Situation Room, an Automation Lab live trigger, or Pip's live-data answers — your coordinates go to a small proxy (
/api/live) that forwards them to public data agencies and hands the answer back. The proxy is stateless: it saves your coordinates to no database, but they do travel inside the request address, so they pass through the host's standard server logs like any request does. - Location is opt-in. The browser asks permission first, and we explain why before that prompt appears. Coordinates are used for the request only, unless you explicitly tick "Save this location on this device."
- Email goes three ways. Ordinary
mailto:links open your mail app — nothing is submitted to the site. Pip's contact mode sends a message to John only after you review it and explicitly confirm it, via the site's contact endpoint. The mailing list uses the site's own signup form, which stores your email address (plus an optional first name, and which content earned the signup) in the mailing list via Resend. See "Email and the mailing list" below. - Analytics, described either way. Every page carries a small loader that requests two cookieless analytics scripts from our host, Vercel — page-view counts and page-load speed measurements. They only collect anything when switched on in Vercel's hosting dashboard, a setting this site's code cannot see or verify, so this page describes them unconditionally: aggregate counts only, no cookies, no cross-site tracking, no advertising use, nothing tied to an identity. If they are not switched on, no network analytics run at all. (The local usage counts your browser keeps for itself, described below, never leave your device regardless.)
- This policy grows with the site. If PlainLogic adds optional accounts, subscriptions, cloud features, or new communication features that materially change what is collected or how it is used, this page will be updated before or when those features launch. See "How this policy changes."
- Nothing is sold. There is no mechanism on this site that sells personal information, because there is nothing to sell from.
What stays in your browser (local storage)
These values never leave your device. You can see the analytics yourself in the "Lab stats on this device" dialog in the footer of the homepage, and you can wipe PlainLogic's stored data at any time with the "Clear local data" control in the footer (or by clearing this site's browser data).
Your choice comes first. On your first visit a short banner asks whether PlainLogic may keep the non-essential items below (recently visited pages, favorites, and usage counts). Nothing in that category is stored until you choose Agree; choosing Decline leaves the whole site working, and you can change your mind any time with the "Cookie choices" control in the footer.
pl_analytics_v1— local usage counts- First-visit date, visit count, how many times tools were opened or run, posts read, Pip questions asked, and short phrases Pip couldn't answer (capped at 60 characters; anything containing "@" is skipped, so no email addresses land in there). Only stored after you agree to the banner. Verified by reading the code: this block makes no network calls — nothing is sent anywhere.
pl-theme— light/dark theme preference- Which theme you picked, so the site remembers next time.
pl_pip_v1— Pip's memory- The name you tell Pip ("my name is…") and a couple of counters like jokes told. Only what you volunteer.
pl_minilab_projects_v1— Mini Lab projects- Automation projects you build and save in Mini Lab.
pl_sit_loc— Situation Room location- Written only if you tick "Save this location on this device." Unticking it removes it.
pl_consent_v1— your cookie/storage choice- Whether you chose Agree or Decline on the first-visit banner. Clearing it (via "Clear local data" or "Cookie choices") brings the banner back.
pl_retention— recently visited pages and favorites- Recently visited labs and tools (page titles only, newest eight) and pages you starred with the star toggle. Only stored after you agree to the banner; powers the star favorites and Pip's "continue" answers. Never file contents, locations, or anything sensitive.
pl_newsletter— signup remembered- A simple flag set after a successful newsletter signup on this device, so the form shows its "you're on the list" state instead of asking again.
pl_games_recent,pl_games_best,pl_games_done— game scores- The mini games keep their records on your device: which games you played recently, your best score in each, and which games you finished. Scores and completion flags only — nothing else is stored.
pl_live_loc_v1— older Pip live-data location- A previous version of Pip's live-data answers stored the location it used. The current version keeps it for the page visit only and no longer writes this key; an old value, if one exists from before, is still read for compatibility but never written again.
pl-automation-loc— Automation Lab location- Written only if you tick "Remember in this browser" on a live-data trigger block. Unticking it removes it.
Everything else the site keeps — game settings, per-level progress, best scores, mute and motion preferences — lives under the same pl_ / pl- key namespaces: small preferences and progress flags, never file contents, never contact details. The footer's "Clear local data" control wipes every key in those namespaces, so this list can't go stale: if it's under pl_, you can delete it there.
Location
The Situation Room, the Automation Lab's live-data trigger blocks (Live Weather, NWS Alerts, Earthquake, Water Level), and Pip's live-data answers can use your location to fetch nearby weather, alerts, earthquakes, water conditions, and hazards. How it works:
- You click "Use my location" and first see an explainer — what the location is for and how long it is kept — before your browser ever shows its permission prompt.
- If you allow it, your precise coordinates are used for that request: they are sent to
/api/live, which forwards them to the relevant public data agencies (below) and returns the answer. Your coordinates travel as part of the request's address (the URL), so like any request they pass through the hosting provider's edge network and may appear in its standard server logs — they are never written to a PlainLogic database. - Your coordinates are not permanently saved by PlainLogic. The only exception is the Situation Room's "Save this location on this device" checkbox: if you tick it, that browser remembers the location for next time; unticking it removes it.
- You never have to share your location at all. Picking a city or typing coordinates by hand always works instead.
What reaches PlainLogic's servers
Static pages are served by the host like any website. Beyond that, there are three small server functions today:
/api/live— live-data proxy. It receives the source you asked for pluslat/lonas request parameters, calls the public agency APIs (National Weather Service, USGS, NOAA, NASA EONET, Open-Meteo, RainViewer), normalizes the response, and returns it. It is a stateless serverless function: it writes your coordinates to no database and no file. The API key used for USGS water data stays on the server and is never exposed to the browser. Requests are rate-limited per IP address to keep the endpoints usable./api/contact— contact endpoint. When you confirm a send in Pip's contact mode, your name, email address, message, and the page you sent it from are posted here, validated, and emailed to the operator at help@plainlogic.org via the Resend email service. The message is not stored in a site database; it lives on in that mailbox like ordinary email. Submissions are rate-limited per IP, and a spam trap discards obvious bot traffic./api/subscribe— email signup. The site-side mailing-list signup form: submitting your email there (plus an optional first name, and which page or build guide earned the signup) stores them in the mailing list via Resend, which sends a welcome email tailored to your signup source.
Like any hosted endpoint, these pass through the hosting provider's edge network: answers are cached briefly per data source (a few minutes), and standard server logs may record that a request happened — including the request's address, which for live-data requests contains the coordinates. That is hosting plumbing, not a profile of you — there are no accounts and nothing is tied to an identity.
Web analytics
Every page on this site includes a small loader that requests two cookieless analytics scripts from our host, Vercel: Web Analytics, which counts page views, and Speed Insights, which measures how fast pages load and respond. Whether those scripts actually collect anything is decided in Vercel's hosting dashboard — a setting outside this site's code that the site cannot verify. So this section is written to be true in either state:
- If they are switched on, they collect aggregated counts only: page views, rough device / browser / region breakdowns, and page-load performance numbers. There is no cross-site tracking and no advertising use.
- If they are not switched on, the script requests return nothing and no network analytics run at all.
- They do not use cookies, and they are not tied to a personal identity — there are no accounts to tie them to. Your coordinates, contact messages, and anything you type into the tools are not part of what they measure.
- Collection happens on Vercel's infrastructure, so Vercel's privacy policy applies to it as well.
Separate from the consent banner. The first-visit banner on this site controls what is stored in your browser — the local usage counts, recently visited pages, and favorites described above. It does not control host-side analytics, which use no cookies and cannot be toggled from this site's code. The reverse is also true: agreeing to the banner never enables anything on the network — the local counts never leave your device either way.
Email and the mailing list
Most contact paths on the site are mailto: links: clicking one opens your own mail app with the address filled in. Nothing is sent from the page itself, and nothing is submitted to a site database. When you press send, the message lands in the operator's mailbox at help@plainlogic.org — and stays there like ordinary email.
Chatting with Pip's contact mode is the first exception: when you confirm a send inside the chat, your name, email address, and message are POSTed to the site's contact endpoint, validated, and emailed to help@plainlogic.org via the Resend email service. The submission is retained only in that mailbox — it is not stored in a site database, added to any mailing list, or used for marketing. Submissions are rate-limited per IP to keep the form usable, and a spam trap discards obvious bot traffic. Nothing is ever sent without your explicit confirmation in the chat.
The mailing list is the second exception. The signup form on the site collects your email address, an optional first name, and your subscription preference: labels for the page that earned the signup (source) and the build guide you asked for (guide) are stored as contact properties in Resend, so PlainLogic can tell which content brought you in. That is used only for what you asked for: requested build guides, AI learning content, tool announcements, and product updates. Resend is the email processor; the welcome email it sends is tailored to your signup source, and every marketing email carries an unsubscribe link — one click and you are off the list. You can unsubscribe at any time, and the form says exactly this next to the subscribe button. Plain email is not encrypted end-to-end — treat it accordingly.
Third parties
PlainLogic pulls live data from public agencies and a few infrastructure providers. When their code or data is involved, their privacy policies apply — PlainLogic does not control them:
- Data agencies: National Weather Service (weather.gov), USGS (earthquake.usgs.gov, waterdata.usgs.gov), NOAA (tidesandcurrents.noaa.gov, swpc.noaa.gov), NASA EONET, Open-Meteo (fallback weather), RainViewer (radar tiles).
- Maps & libraries: OpenFreeMap vector tiles, the MapLibre GL JS library (loaded from a CDN), pdf.js (loaded from a CDN for the PDF-to-Text tool).
- Fonts: Google Fonts (Manrope and DM Mono).
- Email: Resend — carries Pip's contact submissions and the mailing list (welcome and list emails); Resend's delivery logs follow Resend's policy.
- Hosting & analytics: Vercel — serves the site, runs the server functions, and provides Web Analytics and Speed Insights when those are switched on in its dashboard (see "Web analytics" above).
Retention
- Browser data (analytics, preferences, saved locations, projects): kept until you clear this site's browser data. The "Lab stats on this device" dialog resets with it.
- Live-data requests: answers are cached at the edge for minutes per source; host server logs follow the host's standard retention.
- Email you send: kept in the operator's mailbox like ordinary correspondence. Mailing-list addresses are kept until you unsubscribe — every list email carries an unsubscribe link.
Security limitations
No system is perfectly secure, and this site makes no claim to be. Local browser data is only as protected as your device and browser; email sent via mailto: travels as ordinary email, which is not encrypted end-to-end.
How this policy changes
The lab will keep growing, and this page will grow with it. PlainLogic may introduce optional accounts, cloud features, additional communication features, or new analytics over time. If any of those materially change what is collected or how it is used, this page will be updated before or when the feature launches — never after.
This is a promise about the process, not a blank permission: nothing on this page gives PlainLogic the right to do anything with your data beyond what this page describes. Each new feature has to earn its own entry here first.
What PlainLogic does not currently do
- No sale of personal information. There are no advertising or data-broker relationships, and no mechanism on this site that could sell your data.
- No behavioral advertising. Nothing on the site builds an advertising profile of you; the analytics described above count page views and measure speed, nothing more.
- No account required. The current public labs and tools work without signing in — there is no account system yet.
- No uploads from on-device tools. For tools marked as processed on your device (the PDF tools), your files never leave your browser — there is no server receiving them.
- No analytics beyond what's disclosed here. The local usage counts above never leave your device. The host-side analytics are fully described in "Web analytics" — written to hold whether or not the dashboard switch is on — and there is nothing else measuring you on the network.
None of this rules out the future: this page does not promise that PlainLogic will never have accounts, paid products, sponsors, or affiliates — only that it doesn't have them now. When something changes, "How this policy changes" is how you'll hear about it.
Questions about privacy
Email help@plainlogic.org. If the site's data handling changes in a material way, this page is updated before or when the change launches — the date at the top always shows the current version.