Ever wonder which flights are passing over your house? Sure, apps like Flightradar24 exist, but I’ve always found them bloated—too much data, unnecessary features, and often locked behind subscriptions and ads. So, I thought: why not build my own simple web page to identify where the people flying overhead are coming from and headed to? Here’s how I did it—with a “little” help from Claude, ChatGPT, and some tinkering.


It started with a basic idea: show live flights near my location. I asked Claude for help, and it immediately pointed me to the OpenSky API, giving me some initial Python code to fetch flight data. That first version was simple—flights in a specific radius around my house. But I wanted more. Adding details like the type of aircraft and its manufacturer, the flight origin, and destination was a challenge. After some digging, I found an ADS-B API that could fill the gaps. At that point my prompt was looking like this:

Prompt:
Help me create a simple python app do create a overhead flights monitor. The output should look like the following example:

CALLSIGN AIRLINE TYPE ORIGIN DESTINATION ALT (m) SPEED (kn) HEADING ------------------------------------------------------------------------------------------------------------------------------------------------------ RPA4585 Republic Airlines Embraer 175 John F. Kennedy Intl (JFK) Miami International (MIA) 9144 450 → UAL123 United Airlines Boeing 737 Chicago O'Hare (ORD) San Francisco Intl (SFO) 9753 470 ↗

- focus solely on flights that are within a 10 km radius of the reference point (REDACTED, REDACTED) and that have an altitude above 50 meters.
- fetch flights info from https://opensky-network.org/api except the origin and destination cities that you fetch with https://api.adsbdb.com/v0/callsign and the airplane type that you fetch from https://api.adsbdb.com/v0/aircraft/
- let me know if you have questions

Claude helped integrate it, but I had to hold its hand, feeding it the API documentation and guiding it step by step.

Python output of flights overhead

Eventually, I hit a wall with Claude. Bugs popped up, and the fixes weren’t coming (and I ran out of credits with my free version). So, I turned to ChatGPT (and my Plus subscription). The Canvas mode was a game-changer (I didn’t know about Claude Artifacts at that point). I’d paste in my code, tweak instructions, and watch it evolve in real-time. It felt like pair programming with an endlessly patient (and surprisingly smart) buddy. It even produced dummy datasets that saved me from hitting API limits during testing!

With a working backend in place, I wanted to use this on my phone, so I had ChatGPT convert the Python code into Javascript. Initially, it generated a Node.js app, but as I had nowhere to host it, so I requested the app be converted into one standalone HTML file, with plain javascript, that I could just run in the browser or upload on my FTP server.

Prompt: make the whole thing into an HTML file (allowed to include javascript) that I could just upload over to my ftp server. A self contained web page displaying all that dynamic data and refreshing every minute.

From there, I styled it using Pure.css and the Dracula theme (thanks to ChatGPT again) and even added arrows showing flight directions using SVGs. That was fun—it guided me step by step on calculating and applying the right angles. I even had it add a map using Leaflet and free OpenStreetMap tiles.

Struggling with styling and HTML tables

Of course, it wasn’t all smooth sailing. Both tools struggled with building HTML tables how I wanted them, so I had to piece them together myself. And while they were great at generating bigger sections of code, debugging those later could become a headache.

In the end, this project taught me a lot—not just about coding (quick disclaimer here—I’m not a developer but a product manager), but about working with AI tools. Here’s what I learned along the way:

  • Be specific. Vague prompts lead to vague code. Precision makes all the difference (especially if you have a specific vision in mind of what you want to build).
  • Use tools together. When one hits a wall, the other might have a solution. Their strengths complement each other.
  • Stay hands-on. It’s tempting to copy-paste big chunks of code, but stepping through it yourself saves headaches later - one thing I liked is that both did comment their code really clearly.
  • Iterate and experiment. Those tools are fast and flexible—try new approaches and tweak until it works the way you want.

Now I have a lightweight app that does exactly what I need, and the process was honestly a blast.

Tracking Flights Over My House With ChatGPT and Claude

Whether it’s a hobby project or something more ambitious, these tools are like having a patient, curious coding buddy by your side, and I feel that’s what I’ve been missing all these years. Using LLMs allows me to finish my side quests / pet projects when my ADHD usually doesn’t allow me to. This wasn’t just about tracking flights—it was about seeing what’s possible when you combine curiosity with the right tools. And I think there’s a lot that’s possible.