On Enjoying the Process
Yep, another "I rebuilt the blog" post.
Apparently, the most likely time for me to update my own corner of the web is when I need to update how I post things into my corner of the web.
This post is intended less as a "life status" post, and more specific to the core details around the blog itself, and the new process that I've been building to manage it. It may get a little tangentially philosophical, too, so be warned ahead of time. :)
Reaching for simplicity, stability, joy
In the last iteration of the blog engine, I was still using a static site generator (zola) to upload the contents of the site to Netlify. This worked, but as mentioned in the previous post, I've been enjoying the community over at omg.lol. One of the things that has resonated with me is the sense of simplicity: a lot of what is made in that community is small, single-focused and simple sites that serve mainly to be enjoyable.
I realized that reaching to simpler processes would make the time spent with my own space on the web would make working in it something to look forward to, instead of something that I need to prove myself with. I've been missing the joy in software and computing, and I needed to shove off a lot of added baggage to get to a point where I can find some fun again. This led to finding more ways to simplify, and keep what I'm doing close to the standard workflow that I've already built out for myself. There's no sense in me trying to learn a new suite of tooling for this. It's just for me, so I might as well let it live where I do. The end goals here:
- If you enjoy doing it, you'll do it more often.
- Don't feel pressure around adding things, nobody's judging you.
- Open up and be more authentic.
When I'm on a computer, I more or less live within an Emacs session. I've seen other blogs that are made solely from Org mode documents, so I decided to make this site in the same method.
David Duncan: I blame you for being the starting point of all this. :P
Blogging in Org Mode
This site/blog/space to throw my inanities is now fully built from Org mode. While designed as a way to handle tree-style note taking, it is a full markup language like Markdown in terms of flexibility. On top of that (and relevant for this space), it can also be used as an environment for literate programming, which is useful given both my profession and occasional interest in hosting advent of code1 solutions here.
I did a fair amount of diving into research on how best to establish my use of Org mode as a full blogging platform, so I want to throw out links to the blogs that gave me inspiration for building mine out in the way I did:
- https://systemcrafters.net/publishing-websites-with-org-mode/building-the-site
- https://www.ereslibre.es/blog/2019/09/building-a-personal-website-with-org-mode.html
- https://pavpanchekha.com/blog/org-mode-publish.html
- https://zwpdbh.github.io/emacs/org-to-blog-using-org-publish.html
- https://llazarek.github.io/blog/2018/11/org-export-processing.html
- https://commonplace.doubleloop.net/setting-up-a-literate-publish-el-with-org-babel?stack=my-publish-el-configuration&stack=how-i-publish-my-wiki-with-org-publish#org94967b6
Building the blog by talking about building the blog
Taking that literate programming mentality into account, I spun up an org file explicitly designed to describe how I wanted to build out the blog. Starting in January, I went through a number of iterations in how I wanted to approach building the site:
- Org -> Hugo -> some host/cdn/etc.
- Org -> markdown -> weblog.lol
- finally: Org -> Html -> CDN
While attempting building these out, I used the org file to not only describe the tasks that I still had to accomplish, but also embedded the code that was used to generate the site itself. Having both together allowed me to plan ahead for things that aren't complete yet and discuss approaches before trying them out.
You can find the full contents of the file here2, but both as a way to see if I can do it usefully, and as a way to give you a taste without leaving, here's an excerpt:
** DONE Make the HTML not ugly
I want my templated theme back. :'(
There's arguments on whether to use overrides for parts of the html template
baked into org-publish, or to just override the entire template.
First off, let's load our CSS:
#+begin_src elisp :tangle bpc-blog.el
(defun bpc/stylesheet-link (path)
(format "<link rel=\"stylesheet\" type=\"text/css\" defer href=\"%s\" />" path))
(defun bpc/highlightjs-head ()
(with-temp-buffer
(insert-file-contents "templates/head.html")
(buffer-string)))
(setq-local bpc/html-head-extra
(string-join
(cons (bpc/highlightjs-head)
(mapcar #'bpc/stylesheet-link
'(
"/assets/styles/styles.css"
"/assets/styles/catppuccin-frappe-pre.css"))
)
"\n")
)
#+end_src
Applying a ~#+TITLE: <page title>~ to the pages grants each a nice H1 heading.
I've added that to the relevant pages.
Syntax highlighting there is a little odd, but I don't blame the highlighting tool.
Migrating the old content
Because the previous iteration of the blog used Markdown as a format for the contents of the blog, moving to org wasn't terrible. Each file required tweaks, but they weren't major.
Frontmatter had to be handled in a different way - instead of using a block at the top of the page, Org mode uses metadata values like this:
#+title: Page Title Goes Here #+date: <2026-03-17 Tue>
The other major thing was syntax changes around links. Fortunately, my years in vim prior to Emacs taught me how to do quick macros. Switching from
[link title](https://example.com)
to
[[https://example.com][link title]]
wasn't too bad.
The positive benefit to only posting a couple of times every few years: I didn't have many posts to fix. :)
Things left to take care of
I have some things left to do to polish all the features that I want to get done:
- RSS Feed(s)
- Tags pages
- Better metadata rendering on posts
- Supporting images better
I'll get to them, and because I'm making it myself, and I'm not putting too much stress on myself to complete it, it'll get there when it's needed.
Footnotes:
Once I have support for tag pages, this would be a great place to link to those posts.
Caveat: this copy is pulled from the actual repo, which is private. It may not be up to date. If you're bothered about it, poke me via my socials and I'll update it.