This site looks strange. It's unstyled. Some of the content doesn't look right. I'm redesigning this site in public. If you're so inclined, you can follow along: subscribe to my feed.

Designing in public

Work is done for the day. Cooking's done. Dinner devoured, kitchen clean. and I'm seated here, laptop on lap and tall glass of water at hand. And I am excited.

It's been four years since my last blog post. There are reasons why, and they're hard to express. I'll do that in time. Well, I can tell you about one of them right now: a bit of software called WordPress.

Writing my own static site generator

This website, which at the time of this writing has only the default browser styling, used to be published via WordPress. I would log in and type out a post in a rich text editor that I didn't like. Said post would be displayed in a slightly modified WordPress template that was made by someone else. Because I couldn't be bothered to wrestle with WordPress when what I wanted to do was write something. As a designer, I also like to design, but I'm particular about the constraints I'm willing to accommodate for personal projects.

Now there's nothing wrong with WordPress. But for me personally, it created enough friction that I didn't want to design on it, and I disliked writing on it (or copy/pasting into it). It didn't feel like self-expression to me.

I wrote on my now page (which, yes, I need to update) that I would use Eleventy. But I decided that writing my own generator would allow me to keep it as minimal as I like, program it to do exactly what I want it to do, and it would allow me to learn along the way.

Self expression, learning, and writing about it

Ethan recently redesigned his website. I think he did a wonderful job of it. It inspired me to finally pick this project idea up and dust it off.

I've been pondering what the most important part of creative work is to me. It's the making that matters. The end result is great, but I'm most happy making.

In the mire of social media, even making seems performative. I don't really see that as making. It's curated. There are no doubts, no mistakes. The kind of making I want to do is the kind that makes me struggle and learn. The kind that feels good when I've tackled something difficult. And I want to log it. For myself, as a kind of journal, but also for anyone who's interested in following all the little considerations and decisions involved in making something for the web slowly, by hand. Why would one do that? For the fun of it. So, I'll be designing this in public, and putting my process into writing.

Is writing performative? Eh, maybe a bit. But I'm also a writer, so I get to do two things I like to do.

First bites

This first post is already longer than what I'll usually be writing, but there are a couple of cool things I want to note before we get this party started. First, I've always loved how Derek Sivers uses short URLs (though I'm using a different method). So, while I've kept the old WordPress URLS (because cool URIs don't change), all my new ones will be short, including this one.

Second, I'll write more about my static site generator in the future. But for now, just know that it's written in Emacs lisp, and this is the build function:

(defun haystack-build ()
  "Build The Haystack website."
  (interactive)
  (message "Starting build...")
  (haystack-load-templates)
  (let ((db (haystack-build-db)))
    (mapc #'haystack-render-post db)
    (haystack-build-archive db)
    (haystack-build-feed db))
  (haystack-copy-assets)
  (haystack-copy-static)
  (message "Build complete!"))

The fun feeling that gives me is mildly disconcerting. But I'm learning Emacs lisp as I go by building this website.

And finally, why Emacs lisp? Mostly because Emacs is the editor I've been using for over 10 years. And I like writing in org-mode more than in Markdown.

I was going to put a screenshot here showing how this post looks in the editor, but I'll do that another time. I don't want to break anything 😉.