I built my website using AI. Not a site builder or a drag-and-drop interface, but actual HTML, CSS, JavaScript, and a custom WordPress theme, written and structured with the help of AI tools.
When I lost my job last year, I needed to pull together my portfolio quickly. I tried a bunch of tools like Squarespace for ease of use so I could just focus on my case studies, and Framer to build something modern with no-code tools, but I thought using AI would make for a more interesting experiment. At first I just used AI to help me generate some ideas using HTML, CSS and JS, but I knew I had to use a CMS and ended up using WordPress. I had not built a theme in a while and the last time was before the block editor was in use. This part was fairly easy, simple prompts in both ChatGPT and Claude gave me all the foundational templates I needed to start from. I was really impressed with the ease at which this could be done so I kept going.
I wrote a list of features I wanted my site to have based on ideas I had played around with before, and I used Claude, Perplexity and ChatGPT. None of them alone could output consistently enough to build what I wanted. At first things were really frustrating because I was prompting and making headway and then out of the blue the AIs would hallucinate or just forget everything and stop working sensibly. It drove me mad and I rediscovered what I consider as close to road rage as I had ever experienced, I would never speak to a human the way I furiously typed my distaste for the AIs messing things up.
There are limits to how much AI can output. There is also only so much you can do in a session before things start to collapse. Often AI forced me to take a time-out. I was making good progress and then out of nowhere it would break something that was working perfectly or introduce some random failure. One of the most infuriating behaviours is when it decides to delete huge chunks of code without telling you, entire features just vanish. You only notice much later when you are too far into a new flow to remember what was lost and that one flaw nearly broke me.
I still do a lot of the coding myself. I lean on AI to give me structure, clean things up, check my logic and handle the grunt work. But AI does not do the thinking. I still have to understand the problem, design the solution and make judgment calls. It is not a replacement for my own skills, it is a faster way to scaffold, clean up and iterate, but the mental heavy lifting still needs me.
But it was me who had to learn a valuable lesson. If nothing else let this be the ultimate takeaway from this article, you need to break up tasks like you would if you were building or designing something yourself. One thing at a time. AI cannot handle large prompts even well structured ones without dropping parts. I had to learn to break everything down. That does not mean I was not outraged again. No all the AIs were excellent at fixing one thing and breaking a few others and it got infuriating. I am certain my neighbours must have been terrified of me. I even took a trip to Bali while working on the site and I am sure that while I kept my composure in coffee shops my typing might have scared some of the nomads sipping on their coconuts in the co-working space. But I persisted and chipped away until I had something close to what I have now. I recently did an update aligned to my new branding. But here are some of the features of the site.
I went with a mobile-first approach and scaled up accordingly. WordPress adds some nuances I am still working through but mostly it works.
Snap to scroll and full width and height for content unless the content is longer than that area and then it allows natural scrolling. It is not perfect. Something I do not understand is making it not nearly as smooth as I would like.
The sections throughout the site change colour on scroll. Instead of having solid background blocks, each section smoothly fades from one shade to the next. It adds a more dynamic and polished feel to the scrolling experience.
I’m a huge performance nut, so I rely on CSS variables to reduce redundant code and system fonts to minimise load time. On Apple devices the site uses San Francisco fonts, which feel native and sharp. Android users also get a clean and legible experience thanks to optimised system fonts.
I also implement viewport-aware background images. These automatically adjust based on device size to maintain visual impact without wasting bandwidth. After a recent hosting migration I lost some of these image files, so I’m in the process of re-rendering and re-optimising them now.
The sections have bite-size amounts of information because lets be honest who reads. There is a bunch of scripts for time of day, day of the week, random case studies on the homepage etc.
I originally had different themes load based on time of day but now that I am introducing my brand colours I have only one theme with different colours based on the section you are in.
I am now spending more time refining the content for AI search results and it is challenging every day I learn something new and have to adjust.
I still add features but Ive learned to break them up. A big one I want to work on after all the recent bug fixes is animation. I had some but found it caused browser lag. I used js frameworks but they seem so bloated for me, so looking at an alternative approach.
I am also considering a new navigation which is still my typical floating on the top right on desktop and bottom on mobile I think there might be something fresher I could add. Feel free to share any new user friendly options you might have seen.
Working with AI is not easy. I’ve also tried Bolt, Lovable and a few others, as I’m constantly bombarded with builders, but honestly none of them offer the refinement I can get with just ChatGPT and similar tools when I keep things simple and focus on one task at a time.
A personal site is never truly finished. It grows as your skills grow. For me, building this version with AI wasn’t just a way to ship something fast. It pushed me in ways I never expected despite frustrating me so badly. But I have gotten used to this being the way I work now.
P.S. I am aware there are some bugs, I’ve recently changed servers and I’m updating the content on my site.