pgx
PGX — Lightweight Postgres for AI agents. Written in Rust. Thousands of isolated databases in one runtime. 🐘
Translation pending
Śledzenie wojskowych samolotów nad Polską i Europą.
Translation pending
DataJavaScript · CSSGitHub @mporeba16OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Samoloty wojskowe, śmigłowce służbowe i duże transportowce nad Polską na żywo — PWA z mapą i powiadomieniami push (ADS-B)
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Live military aircraft, emergency-service helicopters and the largest transports over Poland — with a push alert when one comes close to you.
The app itself is in Polish.
Each category can be switched off — it then disappears from the map and stops sending alerts.Read the full README ↗Live military aircraft, emergency-service helicopters and the largest transports over Poland — with a push alert when one comes close to you.
The app itself is in Polish.
| Military | aircraft tagged as military by adsb.fi, plus ones the app identifies itself — by ICAO address blocks, callsigns (RCH, SAVER, DUKE…) and squawks 7777 / 7400 |
| Service helicopters | air ambulance (LPR), police, border guard and foreign rescue services — confirmed rotorcraft only |
| Heavy aircraft | Boeing 747, An-124, An-225 |
Each category can be switched off — it then disappears from the map and stops sending alerts.
| Source | Used for |
|---|---|
adsb.fi /v2/mil | global list of military aircraft |
adsb.fi /v2/lat/…/lon/…/dist/250 | all traffic over Poland — catches military aircraft that /mil does not tag |
| OpenSky Network | fallback when adsb.fi is down (no type or registration) |
| Planespotters.net | aircraft photos |
| Wikimedia Commons | freely licensed type photos shown when no photo of the individual airframe exists (credited on the card) |
| OpenStreetMap | airfield and training-area outlines |
| PANSA AUP/UUP | daily airspace use plan — which military zones are reserved, when and by whom (informative only) |
| adsb.lol | second global military list (different receiver network — each source has its own gaps) and lookup by aircraft type |
| adsbdb | flight routes by callsign — ADS-B itself carries no destination |
ADS-B does not carry a take-off time, so flight time counts from the earliest trail point the server knows — a lower bound, not an exact value.
flowchart LR
A[adsb.fi / OpenSky] --> F[aircraft<br/>on request, every 5 s]
A --> C[collect<br/>cron every 2 min]
F --> B[(Netlify Blobs<br/>4 h trails)]
C --> B
F --> P[PWA<br/>React + Leaflet]
B --> P
A --> N[notify<br/>cron every 1 min]
N -->|Web Push| P
| Function | Role |
|---|---|
aircraft | fetches and classifies traffic, returns the trail of a selected aircraft |
collect | records trails in the background every 2 minutes |
notify | checks every subscriber's radius each minute and sends push alerts |
airspace | proxies and trims the PANSA airspace use plan (no CORS upstream), cached 10 min |
inbound | serves 747s and An-124s bound for Rzeszów or Kraków |
inbound-collect | refreshes that list every 10 minutes (adsb.lol + adsbdb) so page traffic never reaches those services |
subscribe / status / test-push | subscription storage, diagnostics, test push |
npm install
npx netlify dev # Vite + Netlify Functions
Plain npm run dev starts only the UI — the map stays empty and the status mark in the corner turns red.
Push notifications need VAPID keys (npx web-push generate-vapid-keys) — see .env.example.
npm test # vitest
npm run lint # eslint
npm run build # production build to dist/
Deployment: every push to main is built automatically on Netlify.
netlify/functions/ aircraft, airspace, collect, notify, subscribe, status, test-push
lib/ military classification, Poland boundary, security
src/
components/ map, aircraft card, panels, SVG silhouettes
data/ airfield and training-area outlines
lib/ palette, geometry, type names, photo matching
airfields.js airfields: Polish military, civil, NATO bases
test/ vitest tests
Code: MIT © 2026 Maciej Poręba.
Map data and the airfield and training-area outlines in src/data/ come from © OpenStreetMap contributors and are available under the ODbL. Aircraft data belongs to adsb.fi and OpenSky Network, the airspace use plan to PANSA (Polska Agencja Żeglugi Powietrznej), photos to their authors on Planespotters.net — each under its own terms.