My favourite application of new technologies is when they reduce the BS and let us spend more time doing what we love. In the recent weeks, I’ve been feeling exactly this about the recent wave of AI tools. I want to share the story of two side-projects of mine, and how LLMs made them successful.

Making this blog work with AI

Many people use LLM tools for writing, but I am not interested in that. I really love writing, and I want to be doing more of it, not less. To me, writing is a really creative process, where most time and effort should be spent on figuring out what to write about and what angle to take. Once you know this, it’s really not much hassle to turn that into text!

Due to life constraints, I do not write posts regularly, instead working in bursts every few months 1. One of the most annoying situations I encounter is when I sit down, having finally found the time to put some long-lingering thoughts on paper, only to find my blog’s IT screwed up, and to have my writing session turned into a debugging session. Unfortunately, a few months delay tends to be enough for some dependency/config to get out of date (you can say it’s the coherence time), and it just ruins the fun of occasional hobbies.

One of these issues came up right before Christmas, where the blog refused to build locally on my mac. This time, however, I had my AI-assisted code editor to hand. I only had to copy-paste the problem to Cursor’s Composer tool, and then proceed to watch as it correctly diagnosed it (issues with pre-installed Ruby on MacOS), fixed it (installed all the correct software and dependencies), and updated the code to work with recent versions of Ruby. After I verified success, it even committed and pushed the changes upstream - all I had to do was click “approve”.

Web development with AI

For a while now I’ve been dabbling into web development, becoming more familiar with CSS, React etc. However, especially for a beginner, the complete process of building and deploying web apps is very time consuming, again incompatible with my personal life. The reason is again largely IT crap! There are a great number of resources and tutorials on how to use pre-built components and combine them into functioning web apps - but in practice, one tends to get stuck on some mysterious bug - e.g. something only appears in production but not in local deployment - that ends up sucking up more time than fun and important things like UI design.

Last week, I returned to web development, this time with the help of Cursor. To my great joy, I was able to spin up a little website I dreamt about for a while from scratch in 2 days, with AI helping me to get rid of every single bug. Sometimes I had to feed it ideas about where I thought the issue was, but it always fixed it independently.

One of the larger issues I encountered during release was that the remote-deployed site failed to fetch the exercises from the SQLite database where they were stored. The AI tried to fix it in 5 different ways, each time coming short. Eventually, it decided to change tactic, essentially telling me that SQLite is a toy tool anyway, and that serious people use more serious database types, such as PostgreSQL. It then helped me migrate from a local SQLite database to a cloud-hosted PostgreSQL solution, a process which took less than 10 minutes in total.

This was pure joy - if I were on this project alone, I might have given up at this stage (I’m on holidays after all, this was supposed to be fun!). But I was not alone, thank God! I was also very amused and impressed to see AI tools using this very human technique of “I don’t know what the issue is, so let’s try a completely different approach in case it just works”.

The future looks exciting.

  1. This reminds me, I still forgot to upload some of the posts I wrote on the plane to the US last August!