Art and AI but not AI-generated art.

Updated Tech Stack

During this recent holiday break, I had some time to work on eskild.art, and I’m excited to share those updates here. Although I haven’t added any new art (yet), the site has been redesigned from the ground up.

The initial version was a FastAPI app on GCP Cloud Run using basic HTML Jinja templates; it was simple but got the job done. The new version is now running Django with Tailwind CSS using Postgres deployed on Google’s Kubernetes Engine (GKE).

It’s certainly amusing to see a basic web app deployed on a compute environment which is orders of magnitude more expensive than the previous environment. However, I wanted to take this opportunity to brush up on Kubernetes and GCP while leaving room to growth. Who knows, maybe one day I’ll deploying it on the Kubernetes cluster running on my homelab ;)

I chose Django because it has many great features “out-of-the-box,” such as the admin panel and because I resonate with their slogan: “The web framework for perfectionists with deadlines.”

Coding with AI

Going from an empty repo to a simple site deployed on GKE in less than three weeks is moderately impressive. That said, considering this was something I hacked on a few hours here and there, I quite pleased.

If I’m being honest with myself, this is something I don’t think I could’ve accomplished in this timeframe without the assistance of AI tools like Cursor and ChatGPT (o1). In fact, if I had to guess, I would say that about 90% of the code was AI-generated.

While I think tools like these are revolutionizing the software engineering field, I suspect it would’ve taken someone without development experience quite a bit longer, mainly because the infrastructure setup and app deployment can be confusing and a bit intimidating. Getting a local Django app up and running was the easy part.

Cursor is one of the most impressive AI tools out there, but it’s certainly not perfect. If you’re not paying attention, it will add unnecessary files and duplicate existing functionality; hallucinations (or rather confabulations) are problems I don’t see getting fully resolved anytime soon.

In general, these tools works best if you have a basic idea of what you’re doing. And as the codebase become more complex, these AI tools tend to require more guidance and specialized prompting.

Besides speed-to-market and other business metrics, this experience has me wondering whether security and reliability will be some of the key differentiators going forward. We will likely see a lot more apps deployed by non-developers in the coming years but I suspect once their app start gaining traction, professional developers will come in and ensure the site can scale, is reliable and adheres to security best practices.

Wrap up

That’s all for now! I hope you enjoy the challenges and the art!