Summer Vibes
I hope you all had a great weekend! And for any fellow dads out there, I hope you had a great Father’s Day! I spent time with all four of my kids watching movies, grilling outdoors, and of course, celebrating over some ice cream on these hot summer days. Now, to be fair, it doesn’t take much to need to celebrate in our household. Life is full of excuses that merit a need for a soft serve dose of that dairy goodness, but this weekend seemed particularly poised for that indulgence.
We love movies! As part of this weekend’s festivities, we had a full playlist of cinematic magic streaming on our living room screen. You all know me by now, so it probably doesn’t surprise you to know that I have my garage-based AI system curate our movie selection. It sends out text suggestions on what to watch. It keeps track of our viewing habits and has a good idea of what we like to see. But despite all that tech, my wife wasn’t quite satisfied. She suggested that it should consider recommending movies celebrating the anniversary of their general theatrical release. For example, “Incredibles 2” was released on June 15, 2018, so it would be a great one to watch on Sunday. I loved that idea! So, I went to work adding that context to our resident AI. I just needed data.
Good luck! I tried finding a good data source, but everything I found was driven more toward discovery, and most of it was flawed, including bad release date information. I finally landed on TMDB as a good listing of movies, with references to IMDb that could pull more official release dates from OMDb. Yeah, it was confusing, but sadly, there wasn’t a clean way to get this data. I needed a web service to aggregate all of this for me and my AI.
I’m going to stop now and just acknowledge that many of you are probably tired of hearing me talk so much about Vibe Coding. If that’s you, you can stop now. I won’t be offended. For the rest of you, yes, buckle up, here is another vibe coding story.
I launched VSCode with my GitHub Copilot-powered assistant. I switched it to agent mode (super important, by the way), and began having a chat. I told it about my vision to create this web service, how I wanted to build this dataset and APIs for easy access. It created a movie_db folder and went to work on a script. It ran right away and pulled down the data. I suggested a high-speed way to process the data, and it suggested caching the API calls to prevent overloading the providers. That was a good idea because the free tier of API access was rate-limited.
Finally, I had a good dataset to use, and it had compressed it into a serialized object for fast access. I then switched to having it create the Python web service and gave a general idea of the APIs I wanted. It suggested some routes to use and it wired together a Python Flask app. I told it that I wanted to use FastAPI and that I wanted to build all the tests before we built the APIs. It complied and had me run pytest to verify. All good. Then the fun began. It started churning on the code for the APIs.
At this point, I should acknowledge that I was very tempted to jump in and code some lines myself. You can definitely do that, and it does co-develop with you, but I wanted to see how far I could go just vibing my way along. It turns out, a long way. The APIs were looking good, and it was extremely fast. I decided I wanted a nice UI, so I told it to build a web page and gave it a general idea of what I wanted to see. It spun up some templates, added some tests, and plumbed in a new route for the landing page.
“Show the movies that were released on this day in history and sort them by popularity.” Boom! In less than a minute, it had a basic screen up and running. I asked to tweak the colors and make it more modern with a date navigator. It did, but I didn’t like some of the placements, so I asked it to nudge things around a bit more and adjust the style. I must confess, this is where I spent probably too much of my time. It was too fun and easy to ask it to make minor tweaks to scratch my curiosity itch. But it never complained; it just kept coding and plodding along. I even had it add additional pages for Search and About, which had nothing to do with my original goal.
About eight hours later, I was done. Yes, that is probably about four times longer than I needed, but I was having so much fun! Fun? Yes, legitimate, awe-inspiring fun! I finished up the project by asking it to build the Dockerfile and help me launch the app as a public website for others to use. It complied. In case you are wondering, I even spent the $11 to get a domain: https://moviesthisday.com. I still have a non-stop list of updates spinning in my head, not the least of which is a MCP server for AI.
When I launched my first startup, we spent over a year getting our business and first website launched. There was a lot of development time for that. I can’t imagine how different that story would have been if we had Vibe Coding to accelerate our efforts back then. This is a game changer! I want all of you to get a chance to vibe too. If you tried it in the past and weren’t impressed, please try again. The advances they are making are happening on a weekly basis now. I’ve seen it myself. They just keep getting better.
Technology amplifies human ability. Vibe Coding feels like digital adrenaline. I’m a little addicted. But it feels great! It has definitely helped bring the fun back into coding again for me. I wonder if the same could happen for you?
Now, for those of you who managed to actually stay with me through today’s way-too-long blog post, thank you! I’m excited for you. We are living through an amazing time in technology. Let’s get busy putting this great tech to use for the betterment of ourselves, our companies, and our world. Lean in! Try your hand at this ice cream of coding. The scoops are amazing!
Oh, and in case you are wondering what movie to watch tonight…
