Skip to content

Repository files navigation

Satlas

🌐 English · 한국어

See which satellites are flying over each country, in real time.

Quick Start

🛰️ Live: satlas.space

License: MIT Live ADRs

Satlas demo — click to play on YouTube
▶ Watch the demo on YouTube


Why Satlas / Motivation

Existing satellite tracking tools answer one of two questions:

Perspective Representative Tools Question Answered
Observer-based Heavens-Above, Stellarium "Can I see this satellite from my location?"
Ownership-based UCS Satellite Database "Which country built this satellite?"

Satlas takes a third perspective — country-based: "Which satellites pass over this country, and when?"

Before Satlas, answering this required walking through each satellite's orbit manually or fitting coordinate-based tools to a national boundary. Satlas reduces it to a single country click.

This project was inspired by an aircraft surveillance display I came across during my service in the Air Force, which shows aircraft activity around a country in real time. The framing — what's flying over our sky right now — stuck with me. Years later, on a night walk, I noticed bright dots moving overhead. Most of them turned out to be satellites. Searching online, I found 3D globes that placed satellites in orbit and 2D tools that traced individual orbits, but nothing that answered the same question in satellite terms: which satellites are over this country right now. With launches accelerating, the gap felt worth filling.


Features / Usage

  • 🗺️ Click any country on a 2D world map → every satellite currently overhead
  • 🏷️ Filter by category — Starlink, GPS, weather, science, military, ...
  • 📅 Upcoming passes for the next 24 hours, grouped by 1 h / 6 h / 24 h windows
  • 🛰️ Track a satellite — its real-time footprint and 95-minute ground track on the map
  • 📊 Global dashboard — active catalog totals, category breakdown, most-overflown countries today, recent launches

Screenshots

Overhead satellites for a selected country
Click a country — every satellite currently overhead, with category filters and a 24-hour pass schedule.

Global dashboard
Dashboard — active catalog totals, category breakdown, most-overflown countries today, recent launches.

Tracking a single satellite
Track a satellite — real-time position, footprint, and 95-minute ground track.


Tech Stack

Layer Technologies
Backend Python 3.11 · FastAPI · PostgreSQL · Redis · Celery · APScheduler · SGP4
Frontend React · Vite · TypeScript · Leaflet · satellite.js
Infra Docker Compose · Fly.io · Vercel · GitHub Actions
Data CelesTrak (TLE + SATCAT) · Natural Earth (country polygons)

Architecture Decisions

Every significant architectural choice is recorded as an ADR — what was decided, what alternatives were rejected, and what trade-offs were paid. Full index: docs/adr/ (25 ADRs).

Selected highlights:

  • ADR-005 — TLE storage strategy: twice-daily snapshots + phased pre-computation
  • ADR-014 — Deployment platform: Fly.io (backend) + Vercel (frontend)
  • ADR-018 — Overhead refresh: server-side window prediction + client-side gating
  • ADR-024 — Chunked recompute + Redis list schema (fixes the OOM cliff past 15k satellites)
  • ADR-025 — IP-geo language pick + per-locale OG image variants

Data Sources

Source Purpose License
CelesTrak TLE orbital elements + SATCAT metadata (operator country, launch date, object type). Fetched twice daily as GP JSON Free public service, no API key
Natural Earth Country boundary polygons for satellite-over-country intersection Public Domain

Space-Track.org (US Space Force) is being evaluated as a supplementary historical TLE source and may be added in a future phase. Registration is free but required.


Recent Milestones

  • 🌐 Custom domain (satlas.space) + locale-aware OG image previews + first-visit IP-geo language pick — ADR-025
  • 🔍 SEO baseline — robots.txt, sitemap.xml, JSON-LD WebApplication schema, Google Search Console
  • 📋 /about page — friendly intro, sources, limits, privacy
  • 📊 Dashboard — global catalog, category bars, top-overflown countries, recent launches
  • 📅 24-hour pass schedule — 1 h / 6 h / 24 h grouping, panel tab toggle
  • 💧 Chunked recompute + Redis list schema — bounds memory regardless of catalog size — ADR-024
  • 🚀 Public launch — Fly.io + Vercel + GitHub Actions push model

Target Users

  • Space and satellite enthusiasts curious about what's overhead right now
  • Students learning orbital mechanics, satellite operations, or space situational awareness
  • Researchers analysing satellite pass patterns over specific countries

Contributing

Contributing guidelines will be available in CONTRIBUTING.md. Bug reports and feature requests are welcome via Issues.


License

MIT

About

Open-source platform for satellite pass and dwell data by country

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages