Look mom I have a blog now
I swear to you all that by the end of today, I'll have a blog. I will not be waylaid by styling, or building Hakyll in a Nix environment on Apple Silicon, or writing my own static site generator. I will use Adobe Dreamweaver if I have to. Cyberbully me if I don't follow through
This website represents my follow-through. If you have complaints about the layout, typography, accessibility, bundle size, etc. please keep in mind that the alternative was Adobe Dreamweaver hosted by GoDaddy.
🔗 Why are you like this?
I have wanted a blog for so long. For years I’ve scattered my writings across the Web in completely inscrutable locations, wallowing in envy as my friends with the good blogs expressed themselves with rich technical content, beautiful styling, and readable URLs.
So why haven’t I made a blog? Because for someone like me, standing up a blog is one of the most ontologically-fraught tasks of the modern era:
-
If you ask a normal person, “How should I represent a bunch of documents and render them on the internet for public consumption?” they will come up with a reasonable answer like Substack, Medium, WordPress, Ghost, Posthaven, Notion (disclaimer: I work there), GitHub Pages, GitHub Gists, GitHub repos, Vercel, Jekyll, Hakyll, Scribble, plaintext files on an HTTP server, or writing your own static site generator using pandoc (disclaimer: I don’t work there but you’d be forgiven for thinking I do).
-
If you ask me the same question, I will open my mouth and an enormous stream of bats will come flying out, followed by the entire Internet Explorer 7 binary in UTF-16.
And that is why I haven’t made a blog until today.
🔗 What did you end up using?
To get this blog up in one day (including writing all of the initial content), I have imposed the following rules to prevent yak-shaving:
-
I write all my posts in production Notion. (While I’m using Notion as an off-the-shelf editor, I will concede this arguably violates the yak-shaving principle, since I built and shipped inline equations expressly in preparation for my future blog. But that was in 2020, so the statute of limitations has expired.)
-
I generate a static site using this framework written by my friend and coworker Jordan Scales. I am not allowed to modify any of the code, except to comment out lines when something breaks, and update hard-coded metadata containing his name and email.
-
I deploy the output directly to GitHub Pages. Eventually I will have a shell script to handle deploys, similar to the one I wrote for my personal homepage. For now, everything is manual.
🔗 What’s next?
There are a lot of things I’d like to tweak about this blog, ranging from the design (typography, spacing, colors) to the build structure to adding support for more block types to rewriting everything in Rust. But since my overarching goal is simply to write more, even if it’s absolute brain slop, I’ll probably establish some inane rule like “1 post = 1 cosmetic improvement” to goad myself into compliance.
🔗 Thanks to our platinum sponsors
-
Jordan Scales for the static site generator and providing high-quality telephone support
-
Ty Overby for providing room, board, and motivation while I cut a ten-year procrastination habit in one day