WhatTheStar

Privacy

What is stored, and who sees it

WhatTheStar has no account, no session and no log with your name on it, and keeps nothing about you on a server beyond the two-minute pairing mailbox described below. Everything else the site remembers is in your own browser, and this page lists all of it by key.

The short version

Six kinds of request leave this domain: orbital elements for the three bright satellites the map predicts (the space station, Tiangong and Hubble) from celestrak.org, on pages that predict passes, each carrying nothing but a catalogue number; the planetary Kp index from services.swpc.noaa.gov, for the aurora the map draws, the same file for everyone and fetched only when you are near enough to the auroral oval for it to matter; the cloud forecast from api.open-meteo.com, only once you have turned it on (below); the Digitized Sky Survey's photographs from alasky.cds.unistra.fr, only once you have turned Sky survey on in the Sky panel and only while you are zoomed in past 15°, each naming nothing but the patch of sky it shows; the analytics events above to eu.i.posthog.com, each naming the page, the control or the event, its properties as listed below, and the random id, and nothing else; and buymeacoffee.com, only if you follow the donation link on Support. Everything else the map loads is a static file from here.

What your browser stores

All of it is localStorage on this origin: readable only by this site, gone when you clear site data, and never transmitted — except the analytics id in the last row, which is what each event is filed under. PostHog also keeps the session’s id and properties in sessionStorage, which your browser discards when the tab closes: ph_whatthestar, ph_whatthestar_window_id, ph_whatthestar_primary_window_exists and ph_whatthestar_session_registered_properties. The site keeps two such tab-scoped keys of its own: wts:arrival (which page you opened a guide from, so its back link returns there) and whatthestar:arrived (that the map’s controls have already arrived once in this tab, so they appear at once from then on) and wts:layers-normal (the map layers you opened this tab with, which the map counts as normal until the tab closes) and wts:map-resume (the map you left and when you left it: where it looked, the time shown, what was selected and which layers were on, so the Sky Map link brings you back to it within six hours) and wts:rail-earned (that you have opened one of the Sky Map’s tools in this tab, so its tool rail stays on a computer, reloads included).

KeyWhat it holdsWritten when
whatthestar:progress Persistence.ts Your guide progress and the drills you passed, your observing place (latitude, longitude, label, IANA time zone), pinned reminders, the last twenty places (to a tenth of a degree) where you answered the map’s note that its sky is darker than the light-pollution atlas expects, and the day Tonight first offered you three things to start with and whether you put that away When you finish a guide or pass a drill, set a location, pin a reminder or answer that note, and when Tonight first shows that offer or you put it away
whatthestar:seen ObservingLog.ts Your observing log: each thing you marked “I’ve seen this”, when, its position on the sky, and the place you had chosen When you mark something seen, or unmark it
whatthestar:clouded-out NightsOut.ts The dates of nights the cloud forecast rated clouded out, so a cloudy week does not end your run of nights out — dates only, no place When Tonight shows a clouded-out forecast for tonight, with the forecast turned on
whatthestar:birthday BirthdaySky.ts The birthday you gave for “Your birthday sky”: day and month, and the year only if you typed one When you ask for your birthday sky on the Guides page; removed by its “Forget my birthday”
whatthestar:clouds CloudForecast.ts “1” once you have turned the cloud forecast on; absent otherwise When you turn the forecast on or off on Tonight
whatthestar:bortle BortleScale.ts Your sky-brightness setting, 1 to 9 When you move the Bortle slider
whatthestar:horizon ObserverHorizon.ts The horizon you traced — a preset’s name, or sixteen heights in degrees, one per compass point; absent while it is flat When you change “Your horizon” under Change place
whatthestar:layers DisplayPanel.astro Which map layers are on: figures, boundaries, the Milky Way, the grid, labels When you toggle a layer
whatthestar:optics FramingPanel.astro The telescope, eyepiece or camera you have described, for the field-of-view overlay When you change the framing panel
whatthestar:sound sound-setting.ts “1” while you want guides read aloud; absent otherwise When you turn a guide’s voice on or off
whatthestar:guide-views GuidePreferences.ts Per-guide view preferences, kept apart from progress so clearing one does not disturb the other When you change how a guide is displayed
whatthestar:night-mode Persistence.ts “1” or “0” — whether the red night-vision theme is on When you switch night mode, on the map’s bar or in Settings
whatthestar:contrast ContrastRoot.ts “more” or “standard” — whether you turned high contrast on or off; absent follows your system’s setting When you switch High contrast under Tools or in Settings
whatthestar:motion MotionRoot.ts “instant” or “base” — whether you turned Reduce motion on or off; absent follows your system’s setting When you switch Reduce motion under Tools or in Settings
whatthestar:dimmer ScreenDimmer.ts The screen brightness you chose for night mode, 20 to 100 (%); absent at full brightness When you move the screen-brightness slider under Tools or in Settings
whatthestar:frame-cap Persistence.ts “30” when you have turned on the battery saver, which caps the sky’s frame rate; absent otherwise When you switch Battery saver under Tools or in Settings
whatthestar:describe Persistence.ts “full” when you asked D to describe the view in full; absent for the one-sentence description When you choose Short or Full under Spoken view, in Tools, or in Settings
whatthestar:sky-sounds Persistence.ts “1” while you want the map’s sounds (the clock’s tick, a chime for what you pick); “0” once you turned them off or said no to the tour’s offer; absent until you choose When you switch Sounds under Tools or in Settings, or answer the showcase tour’s offer
whatthestar:coach-marks CoachMarks.astro Which of the map’s three first hints (drag, tap, set where you are) you have already been shown, so each is shown once When the map shows one of those hints, or you do the thing it teaches first
whatthestar:map-intro-seen coach-marks.ts “1” if you dismissed the map’s old first-run card; read so the hints that replaced it are not shown again, and no longer written By earlier versions, when you closed the map introduction
whatthestar:clock ObserverTime.ts “12h” or “24h” — the clock you chose on the time bar; absent until you choose, when your locale decides When you tap the time bar’s clock, or choose one in Settings
whatthestar:rail-peeks InstrumentBar.astro How many times the map’s tool names were shown on arrival; read by nothing now that the names are always printed, and no longer written By earlier versions, on your first two visits to the map with a mouse
whatthestar:readout-collapsed zoom-control.ts “1” or “0” — whether Zoom’s Exactly where is folded When you fold or unfold them
whatthestar:iss-tle ISSPasses.ts The space station's orbital elements and the time they were fetched — public data about a spacecraft, nothing about you On any page that predicts station passes
whatthestar:iss-tle-failed-at ISSPasses.ts When the last attempt to fetch those elements failed, so a network that cannot reach CelesTrak is not retried for half an hour Only when that fetch fails
whatthestar:aim-calibration point-at-sky.ts How far your phone’s compass and tilt were off when you last lined the map up with it, how closely, and when. Ignored and deleted after a week, and never carried in a backup When you use Line up while aiming with your phone
whatthestar:clouds-cache CloudForecast.ts The last cloud forecast and the rounded point it is for, so Tonight can show it with no signal. Deleted when you turn the forecast off When Tonight fetches a forecast, at most once an hour
whatthestar:tle-48274, whatthestar:tle-20580 ISSPasses.ts The same, for the Tiangong station and the Hubble Space Telescope — one key per catalogue number On any page that predicts satellite passes
whatthestar:tle-48274-failed-at, whatthestar:tle-20580-failed-at ISSPasses.ts When fetching that satellite’s elements last failed, kept per satellite so one missing element set never holds up another Only when that fetch fails
whatthestar:whats-new-seen seen.ts The date of the newest release note this device has been shown, for the dot on the footer’s “What’s new” link On your first visit, and when you open What’s new
whatthestar:outing GoingOut.ts The checklist for a night out: when you started it, the five things it picked and when each is at its best When you press “Going out” on Tonight
whatthestar:going-out-howto GoingOut.ts “1” once the night-out checklist has explained itself The first time you open the checklist
whatthestar:guide-filters GuidePreferences.ts The filters you last left on in the guides index; absent when none are on When you change a filter on the Guides page
whatthestar:touch-cursor-known, whatthestar:touch-cursor-hint-shown TouchCursorHint.astro Whether you have used the touch cursor, and how many times its hint has been shown (it stops after three) When the hint appears, and when you first raise the cursor
whatthestar:exterior-hints-used ExteriorHints.astro How many times the hint for the view from space has been shown (it stops after three) When you go out to the view from space
ph_whatthestar analytics/track.ts A random visitor id for PostHog analytics, the current session’s id and last-activity time, and the page and referrer you first arrived on — so a return visit counts as the same visitor, and that is all it can tell. Written even with Do Not Track on, but then nothing is ever sent On your first page view, and refreshed on each event after
wts:single-keys single-keys.ts Whether the map’s single-letter keyboard shortcuts are on When you change “Single-letter shortcuts”

What the analytics sends

Three kinds of event are recorded for every page: a page view when you open it, a page leave when you go, and a press when you click or tap a control. A press records the kind of control and where it sits in the page's structure, never its text or what you typed into a field. Addresses are sent without the part after the ?, which is where the map keeps the view's coordinates and time. Besides those, these are the only events the site sends. Each carries the properties listed and nothing else: never text you typed, never a coordinate or a place name. This table is printed from the same list the code that sends them is checked against, so an event cannot be added without appearing here. Nothing is sent until the page has finished loading or you first tap it.

EventSent whenCarries
guide_start You begin or resume a guide slug: which guide; from_step: the step it starts from; drill: whether it is a one-step review; sky: whether it opened on your own sky tonight, or on another: the night the guide was written for, or a night or place you picked (not where you are); from: whether you opened it from the home page, from Tonight, from the card of something you tapped on the map, from the guides page, from the “Next for you” card, from a path’s page, from the end of another guide, or another way
guide_step A guide step opens slug: which guide; step: the step number
guide_complete You reach the end of a guide slug: which guide; drill: whether it was a one-step review; sky: whether it ended on your own sky tonight, or on another: the night the guide was written for, or a night or place you picked (not where you are)
tour_play You play a guide outside: red light, the screen kept awake, each step read aloud slug: which guide
tour_complete You reach the end of a guide you were playing outside slug: which guide
drill_passed You find what a drill sends you to by your own hand, not with SHOW ME slug: which guide; step: which of its steps the drill was
mission_shown A finished guide sends you out to find its subject slug: which guide; status: whether it is up tonight, this week, later, or never from where you are
predict_answered A guide’s question is answered or skipped slug: which guide; step: the step number; kind: multiple choice, a slider, or a pin on the sky; correct: right or wrong, for multiple choice; miss: how far off a slider or pin was
seen_logged You mark something “I’ve seen this” kind: star, planet, constellation…; from: which panel you marked it from
path_open A path’s page opens path: which path; from: whether you came from its card on the guides page or another way
star_found Something a guide is about is found in your sky for the first time slug: which guide; path: which path the guide is on; from: where you marked it, or a drill you passed; eureka: whether you found it before finishing the guide
guide_known You mark a guide as one you already know, or undo that slug: which guide; undone: whether it was the undo
location_set You choose where you are observing from source: a city from the list, your device’s location, or coordinates you typed
reminder_set You ask to be reminded of an event from: which control set it; slug: from a finished guide, which guide; status: from a finished guide, whether its subject is up tonight, this week or later
calendar_download You add events to your calendar events: how many
calendar_subscribe You subscribe to the sky calendar feed: the world’s calendar or your region’s (not which region); app: which calendar the link was for
share_card You share or save a picture of your night kind: which card (tonight’s sky, your birthday sky, or a guide you finished; not the date or the guide); via: the share sheet, or saved as a file
share_card_open A page is opened from the link on someone’s shared picture kind: which card it came from
birthday_sky You ask for your birthday sky on the Guides page year: whether you gave your birth year (not the year or the date)
aim_started The map starts following your phone’s pointing Nothing more
aim_calibrated You line the map up with your phone by tapping something you are pointing it at residualDeg: how far off the view still is afterwards, in degrees
aim_target_found You hold the thing you are looking for inside the circle for two seconds while aiming your phone from: whether a lesson step or your selection named it
a11y_mode_used The first time in a visit that you use the map without looking at it, or with a display setting for access — once per kind mode: which: the Sky list, the D or N key spoken, high contrast, forced colours or reduced motion (not why)
sky_ready The sky first finishes loading on a page ms: how long it took, in milliseconds
cold_open_first_tap You first tap something in the sky the map opened on, when the map was the first page you opened ms: how long after the sky loaded, in milliseconds; held: whether the map was still on tonight’s dusk, shown because you opened it in daylight; first_visit: whether it was your first time on the map in this browser
time_to_first_action You first do something on the home page: open the Sky Map, Tonight or a guide from it action: which of those it was; ms: how long after the page opened, in milliseconds; returning: whether this browser had begun a guide, logged a sighting or chosen a place before
webgl_context_lost Your browser takes the graphics context away from the map Nothing more
map_return You press one of the map’s ways back, in the list of what is different above the clock or in Search kind: which one: back to now, to the ground, to the horizon, to normal layers, the last thing undone, or Start over
context_menu You close the Sky Map’s right-click menu, whether or not you pressed anything in it on: what you opened it on: a star, a planet, a deep-sky object, a satellite, a constellation, bare sky, the ground, the compass, or the sky from above; from: whether you opened it with the mouse or with the keyboard; pressed: which part of the page the row you pressed belongs to (the card, Layers, the clock, Zoom, Tools and so on), or none
menu_bar You close one of the menus along the top of the Sky Map on a computer, whether or not you pressed anything in it; moving along to the next menu counts as the same opening menu: which menu: Place, Time, View, Layers, Object, Tools or Help; from: whether you opened it with the mouse or with the keyboard; pressed: which part of the page the row you pressed belongs to (Layers, the clock, Zoom, the card and so on), or none
web_vital Once a page has measured how fast it was metric: which measure (LCP, INP, CLS, FCP or TTFB); value: the measurement; rating: good, needs improvement, or poor; page: the path of the page it measured
js_error A script on the page fails (at most five per page) name: the error’s type; message: its message, cut to 120 characters; source: the script file, without its address’s query; line: the line number

Every event also carries a rough description of the device, so that a slow page can be told apart from a slow phone: dpr (screen pixel density, to the nearest half), memory_gb (the device memory the browser reports (it caps at 8)), cores (processor cores, capped at 16), net (the connection type the browser reports (4g, 3g…)), save_data (whether data saver is on) and gpu (the graphics chip’s maker only (Apple, Adreno, Mali, Intel…)).

Location

A star map is wrong everywhere except where you are standing, so the site offers to ask your browser for a position. That is always a deliberate click, and your browser will ask you again before it answers. The coordinates go into whatthestar:progress, rotate the sky, set your sunset time, and go nowhere else. The label saved beside them is the nearest city from the same list the picker shows, if one is within thirty kilometres, and otherwise the literal string “My Location”; that match is made on your device against a file this site already serves, so the coordinates are not sent to any geocoding service. If you would rather not, pick a city on Tonight instead.

Until you do either, the sky is drawn from the largest city in your browser’s time zone — a guess made from a setting your browser already exposes to every page, which asks no permission, is labelled as a guess wherever a place is named, and is never stored.

The cloud forecast

Tonight can show the hourly cloud forecast across the dark hours, and the sky map can draw its clouds over the sky. It is off until you press “Check clouds?” on Tonight or “Show the forecast's clouds” in the map's Sky panel, because it is the one request that carries where you are off this device. When it is on, the page asks Open-Meteo for the cloud cover — in all, and low, mid and high — at your position rounded to a quarter of a degree — about 25 km, a region rather than an address — at most once an hour. Nothing else goes with it: no name, no identifier, no cookie. Open-Meteo sees that rounded point and your IP address, as any server you contact does. “Turn off” beside the forecast stops the requests and deletes the last forecast, whatthestar:clouds-cache, which named the rounded point.

Your observing log

“I’ve seen this” on anything you select writes it to whatthestar:seen — the name, the date, where it is on the sky and the place you had chosen — so Tonight can point out what is new to you, and your observing log can list it by night. It is in this browser only, it goes with a backup code, and the erase button below removes it. With the cloud forecast on, Tonight also notes the date of a night it forecast as clouded out, in whatthestar:clouded-out, so a cloudy week does not end your run of weeks out.

Finishing a guide, passing a drill or marking a guide as one you already know is kept in whatthestar:progress too, with the date it happened, so “Back in your sky” can offer first the skill you practised longest ago. The dates stay in this browser like the rest of that record.

Backups

Settings can copy a backup code: the keys above that are yours (not the cached satellite data or forecast), encoded as text — your progress, your settings (sky brightness, layers, optics, guide views, night mode and the horizon you traced) and the rest, such as your observing log. It is made in your browser and put on your clipboard; nothing is uploaded, and where you keep it is up to you. Restoring reads a code back into this table and nowhere else — a code carrying any other key is refused. Opening Settings also asks your browser to keep this site’s storage rather than clear it when space runs short; browsers decide that quietly and it sends nothing anywhere.

Reminders

A pinned reminder uses the browser's own notification API: it needs your permission and fires from the page while it is open. There is no push service and no subscription endpoint, so nothing is registered with Google, Apple or Mozilla. The reminder lives in whatthestar:progress with everything else.

“Add to calendar” makes an .ics file in your browser and hands it to your device, where your calendar keeps the alarm even after this page is closed. The file holds the event, its time, a link back to the map and the name of the place you chose; it is not uploaded anywhere, and what happens to it after that is your calendar’s business.

“Subscribe to the sky calendar” is a link to a file this site publishes for everyone — one for the world and one for each of a few dozen cities — and your page picks the city nearest the place you chose. Your calendar app then fetches that file by itself, the same file every other subscriber gets, so the site learns nothing about who subscribed or where they are. Whether you subscribed to the world’s calendar or a city’s is counted (below), never which city.

Erase everything

This deletes every key in the table above and the site’s two tab-scoped keys, plus anything else on this origin whose name begins whatthestar: — or wts_, the prefix older versions used before they were renamed. Your guides and saved place go with it, and there is no copy anywhere else.

Last reviewed 18 October 2026