The overengineering continues. But I'll probably put it down for the weekend. Good progress made. I've also ripped out the SQLite bits so everything is rendered on the fly and cached in memory for two minutes. https://git.gmem.ca/arch/gabrielsimmer.com/commit/8a65ef8cb481903617393765cc8d1914a7cd0bc2