Backstory: I'm a product designer who's mostly worked for startups and now big tech, and I haven't really touched html/css for nearly a decade. I've worked closely with engineers my entire career but never really rolled the sleeves up and dived into a scripting language. I'd seen some engineers playing around with CodeGPT over a year ago when it launched–we huddled around a screen and tried to decide how quickly our jobs would be replaced by this new technology. At the time, we weren’t in any real danger, but I caught a glimpse of how well it understood prompts and stubbed out large amounts of code.
For the past four or five years, I've played a hacky trivia game with family and friends where I play a song, and they have to guess the movie that features the song; Guess the Needle Drop. After many passionate debates and over-the-top celebrations fueled by my generation’s nostalgia for popular classic songs and films, people often told me that I needed to “build an app for this.”
I started doodling in Figma before quickly starting to build the website in Node, and then read somewhere that it's a better approach to learn vanilla javascript before trying to benefit from frameworks like React, etc. So I started again with a static vanilla website and, piece by piece, built out each chunk of functionality I’d envisioned. My mind was consistently blown at how helpful ChatGPT was–far beyond my lofty expectations, even with all the AI hype. It was like having a 24/7 personal tutor for free. I rarely had to google console errors hoping that a Stack Overflow discussion catered to my exact scenario. With enough information, ChatGPT always knew what was wrong and explained in terms I could understand.
The workflow went like this: I would describe the desired user experience, parse the code GPT suggested, copy it to my editor, and paste back any errors I came across along the way. The errors were abundant at the beginning, but I got better over time at anticipating issues. Perhaps my biggest takeaway was that I had to learn how to converse with ChatGPT: sometimes I would spend 10 minutes crafting a prompt, forcing me to fully understand and articulate my own line of thinking about what I was trying to achieve .
Using ChatGPT to make a static local website is fairly trivial, but the deployment and automation stage is where I fully realised the scope of what I could achieve. As a product designer, I’ve had the luxury of listening to engineers discuss solutions without personally having to sweat the execution. Working solo I couldn’t stay in the periphery anymore. I kinda knew AWS was a whole thing. That git was non-negotiable. That having a staging server is sensible and that APIs could do a lot of the heavy lifting for me. I would sanity-check with ChatGPT whether I understood these tools correctly and whether it was appropriate to use them for what I was building. A few of the things that initially intimidated me but I ended up working out:
- GitHub Actions workflows
- AWS hosting and CloudFront
- Route 53 DNS hosting
- SSL certificates
- Implementing fuzzy search
- LocalStorage and JSON manipulation
- Even some basic python to scrub data
It’s a fairly basic game, and for anyone sneaking a look with the inspector, it’s a dog’s div soup breakfast served with a side of spaghetti logic. But it still goes to show how much AI seems like a learning steroid.
Yes, usually called rubberducking. Trying to explain a problem to someone else can lead you to the answer. Many times I've found the answer to something while trying to write the question in StackOverflow.