Watch a named aircraft leave a named airport
Pick an airport, point a fence at it, and name the aircraft you care about by tail number or callsign. The page reads a public flight feed every ten seconds and tells you the moment one of yours is airborne — with a browser notification if you want one. Everything runs in this tab. There is no account, no key, and nothing to install.
- It is honest about the hard part. An aircraft sitting on the apron is only heard by a receiver a few kilometres away, so a departure is usually detected seconds after it is airborne, not at the moment of rotation. Every row says which of the two you got, in its phase column.
- Your watchlist stays in your browser. Tail numbers you type are matched locally and never sent here or to Google.
- Free and open data. The feed is adsb.lol, published under the Open Database License.
Starting…
1 Where you are
Where you are — search for a place by name, or let the browser find you. Everything below follows from it, and the map is fitted so your gap fits whole. A place name or a position is sent to this site's own server to be looked up, and is not stored.
Your location
Airports around you
Loading the airport list…
2 Filter and select
The aircraft that actually fly here, measured from the feed. Filter by kind, maker, era or when it was last seen; starring a row selects it. Heritage is short on purpose: many military aircraft never transmit at all.
Loading what the feed has been showing…
Loading what the feed has been showing…
3 What you are watching
Everything you have picked, with the way to stop watching each one, and a map of where those aircraft are right now. The map is the list now: your aircraft are drawn where the feed reported them.
Last refreshed now.
How it works
- Where the position comes from. Aircraft broadcast who they are, where they are and how high they are, on 1090 MHz. Volunteers with a cheap receiver and an antenna hear those broadcasts and pass them to adsb.lol, which republishes the merged picture for anyone to read.
- What you are looking at. One map, and it is the list. Every aircraft you are watching that the feed has heard in the air inside the distance you chose is drawn where it was last reported, named in full, with the path this page has heard behind it. The circle is your fence, the code beside each ringed airport is one you picked, and nothing is drawn twice in two places. Press an aircraft — on the map or in the list of what you are watching — and the map goes to that flight alone; press it again, or press Show all flights, and it comes back to the whole fence.
- Why there is a proxy in the middle. The feed sends no cross-origin headers, so a browser is not allowed to read it directly — the request goes out, the answer comes back, and the browser discards it. Every call this page makes therefore goes to /api/… on this domain, and a small proxy passes it on and adds the header the browser needs. The map squares and the photographs of each type are fetched the same way, so this page asks no other site for anything.
- How a departure is decided. Every twenty seconds at first — more slowly if the feed refuses, and never more often than every fifteen seconds, and not at all while the tab is in the background — the page asks for every aircraft inside the distance you chose. Each reading is classified as on the ground, airborne, or unknown, and compared with the same aircraft's previous reading. Ground to airborne inside your fence is a departure; seen only once it is already climbing is a probable one; already airborne is ignored; a reading too old to compare proves nothing. A departure is what can set off an alert — but only for something on your list: a type you starred, or a tail number you named. A delivery on its way on the ground is not a departure, and neither is one whose climb this page never caught.
- Where it is kept. Nowhere on a server. Your watchlist, the place you gave, the airports you aimed the fence at, the distance you set, the filters you chose, the tails you highlighted and your answer to the cookie question live in this browser's own storage, and they go when you clear this site's data — or when you press delete my data, which does the same in one step.
Privacy
This policy governs planewatch.nodejavascript.com, and it is written from what the code does rather than from a template. It was last changed on 22 September 2026.
- There is no account and no server-side store. Your watchlist, the place you gave, the airports you aimed the fence at, the distance you set, the filters you chose, the tails you highlighted and your answer to the cookie question are kept in your own browser's storage. Exactly one thing leaves your browser so it can be looked up: a place name you search for, or a position you ask the browser to find. It is turned into a place and is not written down by this site.
- All of it can be deleted, by you, at any time. The row that shows your location ends with a delete my data link, which asks you to confirm and then clears every one of those settings — your place and the community inside it, your distance, your airports, your starred types, your alerts, your tails, every filter, and your answer to the cookie question — and reloads the page as a first visit. There is no copy on this side, so nothing has to be requested from anyone.
- Google Analytics loads only after you say yes. Google's script is not in the page. It is added by consent.js when you press Accept all, and if you press Reject all then no request is made to Google at all and no cookie is set. What it would record is anonymous: the page you are on, which controls you press, how far down you scroll, the distance and the filters you chose, and the airport code the page worked out for you. It never records a tail number, a callsign, or the place name you typed.
- The only cookie is the analytics one, and it exists only if you accepted. Your answer itself is remembered in your browser's local storage, not in a cookie — setting a cookie to record a cookie decision would be its own small joke.
- You can change your answer at any time with the Cookie settings button in the footer. Rejecting after accepting reloads the page so that counting genuinely stops.
- What leaves your machine while the page is open. Every request goes to this domain — your address reaches this site's server, as it does for any page you open — and this site's own server passes the request on, so your browser asks no other site for anything, whether or not you accept cookies. Three things travel that way: a request for the aircraft inside your fence every twenty seconds or so, passed to the flight feed adsb.lol and carrying the centre and the distance you chose; the place name you search for, or a position you asked the browser to find, passed to OpenStreetMap's Nominatim and Photon lookups to be turned into a place; and the map squares and the photographs of each type, passed to OpenStreetMap and to Wikipedia. Those services are asked by this site's server and are not given your address. The flight feed is under the Open Database License, the map squares under OpenStreetMap's own, and each photograph under the licence named beside it.
- Aircraft data is about aircraft, not about people. The feed carries no passenger information, and none is available from it.
- Notifications are sent by your own browser, from your own machine, and only if you pressed the button that asks for permission. Declining them changes nothing else on the page.
- To contact anyone about this site, or to ask what is held about you: the answer is nothing, and the way to prove it is to clear this site's data in your browser. Questions can be raised through the contact form on nodejavascript.com.