Blog of a data person

Time for a bespoke blog engine

2025-03-29

I had been using a hacked together variation of mkdocs for my personal blog for a few years now because it did about 80% of what I wanted out of a personal blog. But given the advent of "vibe"-coding I figured it was time to really work on something bespoke. That is why my blog now looks like this now:

CleanShot 2025-03-28 at 10.39.17.png
The new site

It looks a bit more like an archive than a blog and that is partially the point. There was a time when I might try to write something long form, but now I just want to make it fun to write anything. Especially the short stuff that I might otherwise forget if I don't write it down. The blog is still available for folks to read but I also really want it to be an source of memories for myself too. I find my self writing more TILs than longreads and honestly ... I like that!

This is in part because some of my longer-form ideas are more easily expressed in a YouTube video (I can whip those out pretty quickly) but also because I want to have a blog that has an extremely low barrier to write on. Similar to what Simon Willison has set up for himself.

The best feature that I added to the static blog is that there is a flask app nearby that serves as my text editor. I can type make write from the terminal and it will start up flask with an interface that looks like this:

CleanShot 2025-03-28 at 10.51.47.png
My new blog editor.

This editor comes with a few bells and whistles too! I can click and drag screenshots and GIFs into the post and it will automatically figure out the right path to put the asset.

CleanShot 2025-03-28 at 10.52.17.gif
Click and drag, very nice!

But besides that it can also handle link insertion. I can select text in the editor and when I paste a link it will automatically handle the markdown.

CleanShot 2025-03-28 at 10.56.49.gif
Link insertion, also very nice!

I can also add posts normally by adding a folder and a markdown file, which is great for some javascript stuff that I do, but the short form stuff is now super easy to write and be done with.

Even better

There is so much to like about this setup.

  • My workflow did not adapt to the tool, I now have a tool that can suit my ideal workflow.
  • I can always change it too! Want to add dark-mode? I could! Use an LLM to spellcheck? Same! RSS? No problemo!
  • It's all markdown files. I can add custom javascript demos and don't need to worry about a CMS. Sweet!
  • I now have working software that I can study! I am very eager to learn more about the frontend side of things that being able to inspect/learn what's been created is honestly half the fun for me. I wasn't aware that paste events could be caught in the browser but through building my own tools with an LLM I am also able to actively learn!

LLMs really helped me get this set up quickly and I wish more folks would follow me and do something similar. Not just in studying the LLM generated code but also in working on publishing tools that make it easier for you as a human to keep on contributing to the internet. We need to keep creativity flowing and make sure good ideas don't get lost. It would really be a shame if we're missing out on great ideas simply because blogging is less fun than it should be!