The Infinite To-Do List
Sometimes, the craziest of ideas are born from a fleeting vision that won't let you go. Just ask, Rémi, one of our leading AI experts. His daydream, or rather a nightmare, happened to be a to-do list that never ends, perpetually adding new tasks as you strike off finished ones. Did he manage to put it out there? We’ll let him tell you.
The horror of an infinite to-do list and the beauty of the process
An infinite to-do list… Stuff of a Black Mirror episode? Yes. And my colleagues agreed - which made the chances of finding a co-creator for the app quite slim. This combined with my lack of front-end experience made the odds of this app ever seeing the light of day very slim. But not impossible.
With Github CoPilot Chat already finding its way into my Integrated Development Environment (IDE), I wanted to validate if I could push Generative AI to its limits and help me build something I myself wouldn’t be able to make alone. And, believe it or not, I succeeded.
How? Let me quickly run you through it, before sharing the link to my satanic infinite to-do list.
Chatting for code
Keen to start my crazy ride, I kitted myself out with several development tools. The birth of the infinite to-do list started out with just a design in Figma and the first Vue3 Boilerplate code I could find on GitHub.
Minutes later, I passed on the two main files that needed tweaking to ChatITP (our in-house ChatGPT Slack bot thingy): the parent component “todolist.vue” and its contents “todoitem.vue”. After a lengthy, but fascinating, dialogue of about 42 exchanges with ChatITP, I had the first working piece of technology in my hands!
But the coding saga didn’t end there. To make the matches succeed, it took me another hour of dialogue with ChatITP to link the app to a Python back-end. Eventually, every piece of the puzzle fell into place. Et voila: the app was up and running in a spun-up Docker container - ready to be deployed on the Google Cloud Platform. Not bad for someone with little to no engineering skills, no?
Not just a gimmick, but an interesting experiment
Did I really go through the effort just to create a useless, gimmicky tool? Only partly. No, the real reason was to find out how easily I could possibly create a working digital product out there with little to no knowledge of software development. Here are the 2 main things I found out:
- Tweaking to get nuances rights is hard, but also gives surprising results.
Sifting through 50 messages, attempting to comprehend the changes made by ChatITP and deciphering its logic, proved to be quite a challenging task. It demanded my full attention as I tried steering the tool in the right direction and reiterating my intentions. Nevertheless, I couldn't help but be impressed by the app's speed and efficiency. It felt like I was on a highly tailored learning journey, where I acquired knowledge along the way, all while building the app I truly desired.
One good example of this being a valuable learning experience occurred when I requested the removal of some highlighting on an input field. This seemingly simple change triggered a concise warning on accessibility:
- A welcome developing friend, but not a developer's substitute
Prioritising pragmatism over idealism, I emerged from this experiment with a reinforced belief that Generative AI will be an essential tool for developers, rather than replacing them. The tool proved capable of swiftly constructing the front-end application, a task that would have taken me far more than four hours. In contrast, the back end proved easier to construct myself, considering that describing the details of the task might have taken longer (though, perhaps, a bit of self-doubt here).
And who knows what future developments in AI will bring? Maybe then, I’ll find a way to develop the newest banking app or a better version of Google Maps in just a jiffy. Exciting times, that’s for sure.
Oh, and of course you can play around with the Infinite To-Do list now!