You can head to https://flightoverme.pages.dev/ and check it out and then come back to read this blog post.
Why
Whenever a flight is about to pass over me, I’ve always wondered which flight it is, which airline it belongs to, and where it’s going from and to. I also try to keep track of all the flights I’ve taken in the Flighty app, and I frequently use sites like Flightradar to see which flights are going where and what other flights are at the airport I’m sitting at. Some of these websites and third-party apps do have an option to see flights near me. However, I wanted a website where, along with the flights, I could also learn cool facts about the flight or airline, the speed at which it is travelling, and have a clean interface without any ads. This way, I can easily view which flight is flying over me.
I also wanted to build an app entirely with minimal interference from me, so I thought this would be a good project to make use of AI. I wanted to see how far I could go without writing a single line of code.
How
First, I started building a PRD using ChatGPT. I entered the list of features I wanted and future enhancements I might make, and it helped me prepare a Product Requirement Document (PRD) that I planned to use alongside Cursor. ChatGPT itself helped me finalize the tech stack for my project.
Regarding infrastructure, I was primarily interested in a serverless setup to run this entire website, so I gave that input to ChatGPT. That was the only hard requirement from my side. Out of the options presented, I chose to go with Cloudflare because I’ve always been amazed by how the company has grown and how it essentially powers a majority of the internet today. Even though I had interacted with Cloudflare multiple times previously, I had never explored Cloudflare Workers or its serverless functions.
Once the PRD was finalized and contained all the technical specifications, it was time to move on to building the website. I started playing around with Cursor, got the hang of it, and then asked Cursor to build the website based on the PRD I had created earlier. It hashed out a very decent version of the website locally, but I did have to make a few iterations and changes using AI to get it working end-to-end by calling the OpenSky API.
Learnings
I always made it a point to commit changes after getting each major milestone working. I found that sometimes, while working on another feature, certain things would break in other flows, and the LLM did not always do a great job of reverting to a previous state, at least in my personal experience.
Ask AI to test things within the prompt itself. This can avoid unnecessary back-and-forth.
Learning opportunity: Instead of always telling AI to write code in a very specific technical way (unless you have a strong reason), you can explain the product requirement instead. AI can often suggest better technologies that you may not have been aware of.
One of my reasons for vibe coding this was to see how far I could get without writing a single piece of code. Cursor, being a developer-focused tool, makes writing code feel almost seamless, but some technical know-how still goes a long way in getting it deployed using the right cloud service in a secure way. For someone with minimal technical skills, it’s better to get started by deploying on no-code app builders such as Lovable and Emergent Labs. When the product matures or requires more control, they can switch to more traditional development tools with the right knowledge.
We live in exciting times, where such small curiosity driven projects could be built in very short time, with AI acting as the ever ready teammate.