Last updated 25 October 2026
Privacy
This page describes what the GeoHoops website does with information. It is written in plain language. It is not a lawyer-drafted policy, and it is not a claim of legal compliance.
The game
GeoHoops is a daily basketball geography game. It does not ask for a name or an email, and it does not create an account.
The geohoops_visitor cookie
Opening the game sets a cookie named geohoops_visitor. It holds a random id. The cookie is HttpOnly, so page scripts cannot read it, and it lasts one year. It is used to keep one anonymous run per visitor. Clearing cookies starts a fresh run. The cookie is limited to this site, so it is not attached when counts go to PostHog.
In live mode, Supabase stores each guess with that visitor id. A stored guess includes the date, the question, the pin's latitude and longitude, the score, and the distance. The analytics counts below do not include those values.
Demo mode on this device
Without a database connection, the game runs in demo mode in this browser. Demo progress is saved under a local storage key that starts with geohoops_demo_ and includes the date. That saved progress includes the pin, the score, the place, and the player name for each answer already given. It stays on this device. It is not part of the analytics counts.
Fonts
The page loads fonts from Google (fonts.googleapis.com and fonts.gstatic.com), so visitors' IP addresses reach Google.
Analytics
Analytics data is processed in the United States. Counts go directly to PostHog Cloud (US) at https://us.i.posthog.com, not through geohoops, and never with the geohoops_visitor cookie.
What is counted, after this site checks each count, is only the following:
- the public project token
- the event name
- a random id for each count, and the time it was sent. The count itself carries the time the library recorded for it. The request that carries the count repeats the public project token and carries the time the browser sent the request
- the cookieless label $posthog_cookieless, the same for every visitor and not an account id. When the library sends them, the cookieless-mode flag is kept only when it is true, and the person-profile flag is kept only when it is false
- a random session id and a random window id may be present. Each is kept only if it is a UUID. Cookieless mode does not create them, so they are absent unless the library supplies them
- the analytics library name and version, when the name is 1 to 8 lowercase letters and the version is three numbers separated by dots, each number 1 to 4 digits
- the project label geohoops
- the site version
- the environment: production, preview, or development
- the page path /. Every count includes that path as the pathname. A page view (event name $pageview) also includes it as the path. There is no query string and no hash. When the host is allowed, the page address is that host's origin plus /
- the site host, only for geohoops.vercel.app, localhost, 127.0.0.1, or 0.0.0.0
- the referring site's domain, not the full referring address, when that domain is 1 to 32 characters of lowercase letters, digits, dots, or hyphens and is not an image file name
- utm_source, utm_medium, and utm_campaign when present, and only when each tag is 1 to 32 characters of lowercase letters, digits, underscores, or hyphens
- the browser's user agent string, when it is plain text of 1 to 512 characters from space through tilde, with no email address, question mark, hash, web address, www., or image file extension
- a game started (event name game_started): mode live or demo
- a round answered (event name round_answered): the round 1, 2, 3, 4, or 5; a score bucket of 0-29, 30-99, 100-169, or 170-200; and the category Player origins, Iconic moments, College roots, Franchise history, or Global game
- a game finished (event name game_completed): the grade Rookie, Sixth Player, Starter, All-Star, or Hall of Fame, and mode live or demo
- a share clicked (event name share_clicked): native or clipboard
- how to play opened (event name how_to_play_opened): nothing more
- an error (event name game_error): load or guess
These counts do not include names, emails, exact scores, coordinates, player names, question text, or distances. This site sends no location fields of its own, only the coarse fields above. This site does not send session recordings or heatmaps. PostHog may derive other information on its side, depending on how the project owner configured it, which this page cannot confirm.
Analytics does not set a cookie. While analytics is on, this browser stores nothing except a brief test write the library deletes right away. This page's own check does the same kind of brief test write and deletes it immediately. If that test write cannot be stored, analytics does not start. If you turn analytics off, this browser stores only that choice in local storage. Turning it back on removes that stored choice. A browser that sends Do Not Track, or a Global Privacy Control signal, also stops these counts. The game still works when analytics is off or when us.i.posthog.com is blocked. The button below is labelled Turn off analytics while counts are on, and Turn on analytics after you stop them.
The browser's user agent string and the visitor's IP address (seen by PostHog from the request) are sent to PostHog in the United States so PostHog can compute a daily-rotating anonymous visitor hash. The site host is also part of that hash.
The site relies on PostHog's cookieless mode. In PostHog's settings that mode is called Enable cookieless tracking. The PostHog project is configured by its owner. PostHog's documentation does not say whether it keeps the user agent or IP address after computing the daily visitor hash.
Analytics events are kept for up to 1 year on the PostHog Free plan.
Contact
No contact address is published for this site.