Vibing site gen

May 11, 2026 · site-admin · 3 min read

Its a bit since I've updated these sites, and for a few different reasons. The old site was built with Hugo, and it generally worked, but it wasn't my favourite. It worked, but it was generally different to my default workflow with emacs, plus I missed being able to write in org mode and having to use markdown instead. I saw a few sites that used alternatives; ikiwiki looked interesting, but I couldn't get it to work, and it was probably overkill given the single user nature of my sites. Instead, the other day I tried out using a LLM to build an org-publish pipeline. I saw a few other sites online that used emacs to generate the site, and was interested to give it a shot. While I could generally follow the logic to generate a site, I couldn't get the "web" stuff to work, as I really have no experience with html or css. This is really where having an LLM step in helped out.

Why use emacs though? It is a text editor after all. Emacs is a pretty good text editor, with great git support with Magit. This makes the writing side a breeze. Org mode is a great feature, one that some people, non-programmers, use emacs for. It provides great markup ability, with support for everything you could want. Additionally, there is also org-publish which can render a collection of org pages into a project in any export format supported. Here I am making a html export, which is one of the natively supported exporters. This gives me support for code, images and all the other nice things that the text format provides. Using an LLM here helps write the scripting in generation, theming and general site features. While the LLM rarely gets things right on the first go round, it is still fast enough to give something, and with additional prompting can give a decent output.

LLMs seem well suited to these tasks, being something relatively non-techinical (web static site design), and for which there is a lot of reference data. I have seen their performance fall off as the task becomes more difficult, and they do tend to throw code at the problem. Appropriate prompting still is necessary in order to get good output, but once a good idea is given, they can implement it faster than I can by hand, especially for tasks I'm less familiar with.

Overall it made for a fairly enjoyable experience. Revising my sites has been a long time coming, and being able to change them over easily and quickly has been a fun thing to do while watching TV. Its always interesting to see how LLMs are evolving, especially the small models which can run locally (and are free). We'll see how I end up using this in the future to update my sites, and what I end up adding with them.