Going No Build
Over the last few years I've experimented with different systems and tooling to run this tiny site.
As a constant tinkerer, I like to try new CMSs, frameworks and methodologies but never really found one that I truly enjoyed.
I tried WordPress, Kirby CMS, Laravel + Filament combo, and Kirby again.
Out of the above, I probably liked WordPress the least but that was because I've built countless sites using it at work (and still do) and with any personal project you want to try new things, right? The beauty of using WordPress was that I knew how to achieve most things I wanted without too much trouble. Most functionality was only a Stack Overflow search away (or ChatGPT these days.)
Kirby is a CMS that I have never used for commercial work, but I bought myself a license a while ago and used it to power my site. I liked how it didn't use a database and your content was committed to the repository rather than being stored in a database like WordPress. Being able to work on different branches and then push to live when I was happy was a nice feature to have coming from WordPress.
Paralysis
I then moved on to Laravel as we were doing a lot of projects at work at the time using Filament as a framework for admin areas and it seemed like a good fit. I enjoyed building the site with Laravel as it meant the possibilities were endless but with all that freedom came a bit of paralysis when it came to making changes or even just adding content. I was constantly trying to invent new features, and it came to the point where I spent more time tinkering with how the site worked rather than creating content for the site. Its flexibility made me feel stifled.
All of the above also had some kind of build process for the frontend assets. Whether it be Vite, NPM, grunt the list goes on. All had a node_module folder that had countless packages in there. At first this was all exciting and seemed like progress. Being able to use some kind of framework that would give you consistent rendering across a whole bunch of browsers whilst also letting you use modern techniques was great.
I must admit, it took a while to realise that a lot of front end techniques I was leaning on using frameworks were actually now available natively in CSS. I feel that my knowledge had atrophied after constantly using frameworks. I'd forgotten how good browsers, CSS and HTML were at rendering modern web pages compared to the last time that I'd authored a static site, which honestly, I can't even remember but it was probably at least two decades ago.
Inspired by the no build movement after reading articles from people such as Simon Willison and DHH I started thinking about my own website and how I could implement the same methodology.
Handmade static site
The site you're reading now is a completely static site, it has no build steps, no CMS, no database, no server-side rendering, and no build tools. It's just a static HTML file. When I need to add a new post, I just copy and paste the last one I did and hopefully remember to update all the meta tags and other stuff.
If I need to add images, I have to export them from somewhere in a web appropriate format and size rather than just hoping that whatever CMS or tool I built would handle this for me. As pretentious as it sounds, everything is hand crafted
Having nothing to configure or NPM modules to download, install and manage, I'm free to do whatever I want. If I want a particular post to have a completely different layout or look, I can. If I want to add some kind of batshit crazy JavaScript functionality I can.
All I do to publish now is save the file I'm working on and then copy it to a server. I've just got a very minimal server setup that I use to host my other personal sites and it uses Caddy. It's working out well so far and appreciate the speed at which things can be deployed.
I'm enjoying the process so far and looking forward to publishing more content.