How dev-armaan/satellites works
Watched is a browser-based satellite-overflight and imagery explorer. A user chooses or locates a place; the app computes a week of satellite passes, searches public imagery archives and matches captures to passes, then presents verdicts, photos, and a timeline. Users can replay a pass and share it with a generated preview card. The globe visualizes satellites and pass geometry alongside the results. The README documents these product stages; sampled controller, state, imagery, and UI excerpts support the main runtime links. Some subsystems are represented at directory level because their implementation was not sampled.
Main entry points: controller.ts Flow controller · imagery Imagery archives · ResultsView.tsx Results panel · store.ts App state
Components 19
App workflow
- Place search
src/ui/landing/SearchBox.tsx - Flow controller
src/app/controller.ts - App state
src/state/store.ts
Orbit and imagery analysis
- Satellite catalog
src/engine/catalog.ts - Pass computation
src/engine - Satellite profiles
src/engine/profiles.ts - Pass report
src/engine/report.ts - Imagery archives
src/imagery - Cloud checks
src/imagery/cloud.ts - Pixel processing
src/imagery/pixels.ts
Globe and results
- 3D globe
src/globe - Results panel
src/ui/results/ResultsView.tsx - Pass timeline
src/ui/results/Timeline.tsx - Pass replay
src/ui/results/PushbroomReveal.tsx
Sharing
- Share sheet
src/ui/share/ShareSheet.tsx - Share card spec
api/_lib/cardSpec.ts - Preview endpoint
api/og.tsx
Other components
- Place seeker
- Public archives
Connections 19
- Place seeker → Place search: chooses place
README.md - Place search → Flow controller: submits place
- Flow controller → Satellite catalog: loads catalog
src/app/controller.ts - Flow controller → Pass computation: runs report
src/app/controller.ts - Flow controller → Imagery archives: searches captures
src/app/controller.ts - Flow controller → App state: updates state
src/app/controller.ts - Satellite catalog → Satellite profiles: resolves satellites
src/engine/catalog.ts - Pass computation → Pass report: computes passes
src/engine/index.ts - Pass report → Imagery archives: matches photos
README.md - Imagery archives → Public archives: queries archives
README.md - Imagery archives → Cloud checks: checks cloud
src/imagery/index.ts - Imagery archives → Pixel processing: decodes imagery
src/imagery/index.ts - App state → 3D globe: supplies scene state
src/state/store.ts - App state → Results panel: supplies report state
src/ui/results/ResultsView.tsx - Results panel → Pass timeline: renders timeline
src/ui/results/ResultsView.tsx - Results panel → Pass replay: offers replay
src/ui/results/index.ts - Results panel → Share sheet: opens sharing
src/ui/results/ResultsView.tsx - Share sheet → Share card spec: renders card fields
api/_lib/cardSpec.ts - Preview endpoint → Share card spec: uses card spec
api/og.tsx