A New Rust HTML Site Generator
Some Housekeeping
2026 marks a new year and with it the time and opportunity to re-visit my personal website. I have been using some version of R Markdown for quite some time now. Initially, I started with the vanilla R Markdown website in 2017 or thereabouts and it worked very well with limited blogging functionality. From there I went to the first initiation of distill, then known as "radix". Radix worked well and had much of the early functionality that Distill made more robust. Yes, there were some limitations (e.g., the search feature didn't exist) but the ideas were certainly there.
While mostly seamless, there were some hiccups but nothing serious. Then I moved to the quarto generator from R Markdown. This was not without some issues, mainly that I didn't do a great job at ensuring that old blog posts were 100% reproducible and future proof. A lot of what I wrote about in the early days was about new packages that I had come across or early ideas. Obviously as time went by not all of these tools were maintained so when I went to render everything, quarto choked on me.
This problem with backwards compatibility only increased with time. As my log of blog posts both grew and became dated (or integrated more Bayesian workflows that took a long time to run and built a cache that I couldn't continue to host on the shrinking storage space on my old computer), quarto failed more often. Once those failures happen enough, you start to look for alternatives and do things different.
New Approaches
I realised that I needed something a little lighter than a full quarto blog going forward. There were some initial forays into simpler websites (including this php generated blog fed by markdown documents) that didn't go too far. Last year, I started in earnest looking at a custom Rust generated blog. I liked the idea of having something custom with limited features that was static-ish. Constant development and addition of features is fantastic if they are backwards compatible, but that's not often the case with software that isn't your own (and especially build for a public looking for new innovations). That idea led to this website iteration which is based on arne's work. The look isn't quite what I wanted, but it gave me some ideas for really nice features like fully text search powered by sqllite, a mixture of md, jmd (julia), and R Markdown. It also helped me formalise a strategy to try and keep each blog post relatively self-contained and render to an index.md to ensure that they would be renderable.
Rather than continue to iterate in 2026, I just started with a few Claude agents and vibe-coded this new blog together. It took several days and some manual tweaks, but I really like it. It provides much of the major functionality that I want and should be fairly stable while accepted a variety of inputs. We'll see how far this goes and I will continue to work through re-directs. What this has taught me is that you can build some pretty slick products with AI, but the power comes in knowing what you want (e.g., I know enough Rust, a good bit of html, css, javascript, etc) and being able to communicate implementations to make something. Not knowing how these things work and using the AI resources can be fraught because you can't figure out where things go wrong and what the approaches are to fix them. Maybe this won't matter as much, much these tools are like expensive powertools--if you don't know how to use a table saw you can cut your arm off, but in the hands of a craftsman you can make a nice table.
Cheer's to 2026.
Reuse
Citation
@online{dewitt2026,
author = {Michael E. DeWitt},
title = {A New Rust HTML Site Generator},
date = {2026-01-08},
url = {https://michaeldewittjr.com/blog/2026-01-08-a-new-rust-html-site-generator/},
langid = {en}
}
Michael E. DeWitt. January 8, 2026. "A New Rust HTML Site Generator". https://michaeldewittjr.com/blog/2026-01-08-a-new-rust-html-site-generator/.