What sort of writing could you create if you worked on it (be it ever so rarely) for the next 60 years? What could you do if you started now?
I am going through a serious disenchantment with the concept of content. The first time I seriously blogged it was because I was a junior in college who suddenly discovered Hacker News, and was convinced that the most expeditious way I had to break into the industry was to, like, blog about list comprehensions in Python and stuff. That turned into blogging about new Swift APIs and blogging about side projects and tweeting the same zeitgeisty things that a horde of other junior engineers were. I don't mean that as a negative thing — writing those blog posts gave me an early following, a foothold into a world in which I felt (and still feel, to some extent) an outsider, and strengthened my skills as a writer and engineer.
But the process feels empty now. As I write this, a solid portion of my social graph is spending their time investing in Substack content that will be abandoned in much the same way Medium content was abandoned in 2015.
Let me put this another way. Have I told you about why I stopped listening to podcasts? 1
I used to listen to a bevy of 'em — news podcasts like The Daily, tech ones like Accidental Tech Podcast. They weren't mindblowing, but they felt good — it felt virtuous and pragmatic to keep abreast of the zeitgeist, whether that zeitgeist was cultural events or technical discussions or NBA draft rumors.
One day, though, I made the mistake of accidentally messing up my syncing on my podcatcher of choice by pulling out my iPad that hadn't been touched in a few months for a plane ride. For a few bizarre moments, I caught myself listening to episodes that was three months out of date. What started out as a minor annoyance (oh no, I need to spend the next three hours doing crosswords to the sound of silence!) turned into fascination and finally into horror as I realized just how irrelevant the content was — entire swaths of how I spent my day had the shelf-life of a mere fortnight or less.
Anyway, I'm getting off track. 2 I want to do a better job of writing things and thinking about things that don't have creation dates or publication dates. That's what's motivating this site.
These are goals for the site, but not exactly goals for myself in building it: sure, building something that is quick, durable, honest, and accessible is meritous in of itself, but anyone who has built and rebuilt their own static site knows that most of the fun is in the journey, rather than the destination. A reader recently informed me of the Dutch word prutsen:
We have a favourite foreign word. And while we love hygge, it’s actually prutsen. It translates loosely to doing something of very little significance that only looks like work. Only to us, it’s quite significant – not the kind of significance that changes the world, but the kind that changes ours (and hopefully yours) and how we feel in it. It’s a surprisingly useful way to clear our heads. Little bits of rearranging, picking up wild pieces on dog walks and putting them in vases or bowls, prutsen the details because it makes our hearts warm and gets our creative juices flowing. Do Inhabit
I have spent a lot of time bemoaning the fact that I may spend more time in a given year building my site than actually populating it with content. One goal for myself is to treat this site as both a surrender and an antidote to that notion: that the joy of building the site is not something to feel guilty over, and that I should build it in a way to enhance how fun it can be to spend a quiet Thursday evening messing with Liquid filters.
Why is this site called "arcana dot computer", you ask? That is a somewhat odd name! Why wouldn't you just do firstnamelastname.com, and dispense with all this weird "naming your personal website" nonsense?
Honestly, there's no good reason. I have a bad habit of buying silly domain names and this was one of them. In a prior life, I wrote a newsletter called Minor Arcana; the word "arcana" has always felt a little fun and incongruous to me, perhaps indicative of my slightly askew relationship with technology. 3
I am a sucker for this genre of page. I think it is really fun to read through how other blogging technologists (and yes, I am cringing at my employment of that term) approach building their software. Some particular entries I enjoy:
Writer | Reason |
---|---|
Aaron Z. Lewis | Emphasis on multimedia |
Andy Matuschak | Built primarily for the author |
Gwern | Wonderful design; obsessive level of depth |
Jonnie Hallman | Tone & cleanliness |
Julian Shapiro | Commitment to evergreen content |
Paul Stamatiou | Nice use of affordances |
Think about blogging for a second: the fact that a list of posts is ordered chronologically by publication date, by default, is a bug in our incrementally-correct worldview. Blogging tools don't create any incentive to go back and edit previous ideas or posts. Or, at the very least, the default ordering has a de facto side effect of fewer people being aware of revisions or reversals to previously-published ideas.
You have probably noticed that the index page of this site has something of an aspirational table of contents: there are published posts, there are drafts of posts, there are outright placeholders for posts. (There are, too, posts that will never be finished, like my catalogs of books.) 4 5
This accomplishes two things that are important to me:
You know, for all the flak that we levy at the concept of "timelines", I think they are fairly useful and illustrative. The part of this site that I've spent the most time on are my various catalogs: I've cataloged the books I've read, the games I've played, the movies I've watched, and so on and so forth.
There is a lot of interesting writing about spaced repetition to better recall your past. I am not super interested in that: you will not find me hunched over a bunch of Anki cards of quotes that I read in a random book 2016 so as to get my mental juices flowing or whatever. But I think there is merit in two things:
Honestly, I don't think there's that much to say about the design of this site. I think it is fairly boring; if I were to describe the general philosophy behind it, I would say "use as little CSS as possible and make it as likely as possible that this site is renderable and pleasant in the year 2040." I don't know if I succeeded — I certainly have had those lofty goals in the past, and fallen desparately short — but I'd like to think that I came closer to the mark than usual. A previous iteration of this site sported less than 500 lines of CSS; it's hard to count now, because I'm using Tailwind, but there's nothing particularly fancy or clever going on here.
A brief sidebar on dark mode, by the way: when first building out this site, I had no idea how many people actually used dark mode. I recognize that it's a fact of life that many people ostensibly enjoy, but it exists as a massive testing blind spot. Thankfully, SCSS makes it easy to tweak color palettes, but apologies if anything looks particularly wonky on dark mode: I am happy to fix it but I offer no promises about it not happening again in the future.
I spent a non-trivial amount of time tinkering around with fonts, eventually landing on a pair that seemed to work well in concert with one another. (Typographers reading this I'm sure are cringing.)
Part spreadsheet, part database, and entirely flexible, teams use Airtable to organize their work, their way. Airtable's slightly less generic marketing site
Airtable is a SaaS for interacting with structured tabular data. If you’ve got a long memory, you can think of it as “Microsoft Access for millennials.”
I really like Airtable. I use it to store a lot of data, mostly around content consumption:
In general, if something I’m cataloging can or should be tied back to the content in which I encountered it, I’ll put it in Airtable.
There are a lot of risks with using Airtable: I’d prefer to be using something open-source and plaintext-friendly if possible. But the advantages of Airtable — really robust filtering/searching, a UI I can use from my iPad or iPhone, and support for foreign links — outweighs the risks thus far. 7
I think the right long-term solution here is to migrate this to either an SQLite database or a very cleverly formatted YAML scheme, but there aren’t any satisfactory solutions for doing either on iPads yet.
For around three years, Buttondown was built on Jekyll. I liked — like! — Jekyll a lot, and have spent around eight years tooling around with it, off and on.
I ended up making the transition to Next.JS for a couple reasons:
I like Next.JS for many of the same reasons I like React; a lot of the decisions its made jive very naturally with my mental model for programming. I like building functions that return data. I like the ability to work with Markdown through MDX, and it feels like a very du jour framework; it is not so modern that I am dealing with breaking changes every month, but it's modern enough that when I need to figure out how to do something I can find Stack Overflow answers within the past few months.
Vercel is... fine. I don't mean this in a dismissive sense; I like it! I'm a happy paying customer. I also use it for Buttondown's documentation and in the future I want to migrate Buttondown's marketing site to it too.
But the main reason I use Vercel, both for this project and for the aforementioned ones, is just because the Next.JS integration is really good. This...is a little problematic, in the sense that I am willing to bet $20 that Vercel is in the same position ten years from now that Heroku is in today (extant, but a zombie) and I won't have a lot of non-trivial egress options.
Anyway, feel free to use Vercel. They have a nice free tier; their analytics are good; the developer experience, at least for my very basic use case, is top-notch. But that's the part of this stack that feels the most of the year 2022 to me, and probably the most rickety. I am thankful that NextJS has a purely static output mode, so that when I am properly motivated at some point in the future I can just point this at some self-hosted box that regenerates every day.
Obviously, I use Buttondown to handle newsletter subscriptions for this site.
There is an irony in how little I use Buttondown despite working on it so much; my goal with arcana.computer is to get at least a little bit better with that.
Do I really need to write about why I chose Git? Are you expecting me to be, like, "well, I considered Subversion, but the changeset model really doesn't jive with my editing and publishing process?"
Git was the default choice. I wanted to be able to store this information somewhere that wasn't my rusty Mac Mini and I wanted to be able to publish at a regular cadence.
The site, as mentioned above, is open source and will be for the interminable future. The commit log reflects my own rambunctious use of version control in trivial projects, which is equivalent to that of blindly smashing the Save button every few hours. There's a world in which I am reasonable and diligent and work on new posts in feature branches and merge them in once they are completed; I don't see that world merging with our own, both for reasons delineated above in terms of "drafting in public" and also the much less interesting reason of my own overwhelming sloth.
Fathom is a simple, light-weight, privacy-first alternative to Google Analytics. So, stop scrolling through pages of reports and collecting gobs of personal data about your visitors, both of which you probably don’t need. Our website stats show up on a single, blazingly fast dashboard so you can make business decisions quickly. Fathom's rather well-designed marketing page
The pull quote says it all, right? I am a nosy, metrics-loving simpleton at heart and I want to see how popular this site gets. I am also not a fan of Google Analytics; there are all of the boring and valid privacy considerations, sure, but also the interface is incredibly annoying to use and more than anything else I just want a scalar that tells me how many uniques I'm getting. Fathom does that very well; I originally discovered it as the analytics engine that powers Buttondown.
(There is also Simple Analytics, which has a nigh-identical value proposition and boasts a bevy of testimonials from folks who I generally trust. At some point it might be fun to tinker around with it, but I literally cannot think of a single reason why to switch over at this point.)
Nothing is ever finished.
This site is more of a garden (or a campus) than a real project. I do not think there is ever going to be a point at which I can step back and say "okay, this is done", and that is by design: I may strive for a sense of finality in other projects, but that's an anti-goal here.
As of this writing, here's an unabridged list of what I'd like to bring to fruition over the coming years:
These things may never come; I'm not sure. My own garden — in my backyard, a mere four feet by four feet — has lots of seeds that I haven't yet planted, and perhaps never will. That's okay, too.
I sincerely hope you enjoyed this solipsistic lens into the site. If you've got any questions, please email me; I'm always happy to talk shop.
I'd like to give thanks to the following folks (and if you're not on this list and should be, let me know):
Person | Reason for gratitude |
---|---|
Haley Burton | Putting up with me, just, like, in general |
Brian Lovin | Fixing a broken link |
Andrew Healey | Fixing a broken link |
Jason Li | Pointing out dark mode issues |
Philip C. Davis | Pointing out dark mode issues |
Altay Demir | Pointing out dark mode issues |
Stefan VanBuren | Teaching me the word "prutsen" |
Ryan | Beta testing the second version of this site |
Joe Fabisevich | Beta testing the second version of this site |
Jamie Crisman | Pointing out that internal links were broken if JS was disabled |
Lastly, if there's anything I can convince you of: you should build a personal site, you should obsess over it, you should meticulously document it, and you should have quite a bit of fun doing so. (It's worth it.)
A perhaps entertaining rejoinder to this section is my post five years ago on why I liked podcasts: "Podcasts feel good because they’re novel, and they’re disparate, and they still feel so undiscovered. I suspect this won’t always be the case – but for now, there’s nothing quite like them." ↩
And for what it's worth, I still listen to podcasts. Zach Lowe and Dan Carlin are very good. ↩
There is no more inspirational piece of programming writing to me than Hexing the technical interview. ↩
I resent myself for using the noun "post" here, as I think that insinuates a lack of gravitas from which I'm trying to run away. ↩
I can't remember the first place where I saw this notion: the most recent one, and the one that comes to mind most immediately, is on Will Larson's guide for staff engineers. ↩
My friend Harrison calls this action "book reports for grown-ups", which I find equal parts apt and endearing. ↩
I will warn you that the iOS apps are... not particularly good, at least at the scale of content that I'm using it with, and I end up dropping down to the browser for most use cases. But at least they don't do the "you cannot use the web version at all if we detect you are on an iOS device" thing! ↩