SKYWATCH: Build a Real-Time Flight Tracker
Build a full-stack, real-time ADS-B flight tracker from scratch, using Next.js, Fastify, Postgres, WebSockets, and a live map, module by module, from an empty repository to a fully-featured, tested application.
Let’s build SKYWATCH, a real-time flight tracker that pulls live aircraft positions onto a map, watches for emergency squawks, logs who’s flown over your house, and can play back anything it’s seen. Not a toy version. A real, working app, built from an empty repo to a finished product, one module at a time.
⚠️ Prerequisite: Comfortable with TypeScript and React. We move quickly through the basics and spend the time on the real-time parts instead.
Built with: Next.js · TypeScript · Fastify · PostgreSQL · Drizzle ORM · WebSockets · Zustand · Leaflet · Tailwind CSS
![]()
No “here’s a bug, now let’s fix it” module: the default watch region, the detection engine, the two different pub/sub mechanisms, all of it gets built correctly the first time, because that’s how the real app works.
By the end, you’ve got a complete real-time app: a schema with real database-level invariants, a background poller and detection engine, a WebSocket layer, a four-theme frontend, watch regions with history playback, and a full feature set on top, tested end to end.