back online

In recent years I've become rather allergic to self-promotion. I was never very active writing on this domain anyways, but I gave up completely around COVID when I stopped speaking at tech conferences.

This neglect has introduced some challenges during my current job hunt. Almost everything I do is proprietary: I don't have extensive open source contributions to point to, or recorded conference talks, or personal coding projects. Most write-ups of my technical work are in private chats for friends, or ephemeral threads on Bluesky.

Not promoting my work has limited both its reach to others and its benefits to myself. But I've been wanting to re-engage with technical project work and with writing, so rebooting this blog has been on my TODO list for a few years. I've come to realize that I actually want a full rethink: hosting, aesthetics, content and above all purpose.

I've always pushed against specializing my bsky account. In the span of five minutes I'll jump from shitposting to talking about ATProto protocol design to sharing US politics news to some obscure technical discussion about AI model serving. So why was my blog just a static site of my conference talks? It deserves to be a record of everything that I'm thinking about and working on, large or small, in a polished and indexed format that stands on its own yet also encourages discussion.

ruling out tools

For a long time, this site has been hosted on GitHub Pages via a static site generator. This is free and easy to update with tools like GitHub Codespaces to avoid any on-laptop install requirements, even using VSCode-in-browser to truly write from anywhere. It's been predictable and stable, and it's heavily customizable using coding tools that I know well. And it's also tied to a company with failing infrastructure and leadership that feels like it could come apart at the seams any day now.

It would be easy to just move the hosting to a more general cloud provider, like I do with my portfolio site on AWS Amplify - but static sites aren't really intended as a blogging tool anyways. There's no built-in search, or emails, or comments, or social features, or analytics. I have the skills to add any of those, but each one reduces how "simple" and "maintenance-free" the site really is. At a certain point, you start asking why you're spending any of your free time on this rather than on writing blog posts.

There are many managed blogging options, of course. I cut my web development teeth on CMSes, and that's one of the reasons I've never had much love for them. I could not fathom looking at the WordPress codebase and wanting to host anything you cared about on it!

I do have a higher opinion of Ghost, which I use for a different personal project and highly recommend for a mainstream audience. But it swings a bit too far in the "overly-managed" direction, where I wind up waiting on the maintainers to add new features because it doesn't feel realistic to even write a "basic" plugin or extension.

committing to ATProto

I've been active on Bluesky for over three years. I joined within the first 25k users, way back in the invite code days. And unlike a lot of others, I joined primarily on the strength of the protocol design rather than just a desire to migrate social networks. I'm a true believer, I'm afraid.

View post on Bluesky

If I had the time for larger-scale personal projects, I would absolutely want to be working in the ATProto space. As it is, I've tried to do my best to raise awareness of the capabilities, to promote interesting projects, and to weigh in on protocol design discussions where I can. I even implemented (fairly basic) ATProto social integration inside my 7DRL project.

In the early days, there weren't really serious options for long-form writing on ATProto, but the launch of standard.site marked a new phase of ecosystem maturity. On this blog relaunch, I decided to put my money where my mouth is and commit to using a natively ATProto-based solution:

I want native ATproto, not a "Bluesky integration". Ghost and Mastodon are very underwhelming in this regard, relying on awkward bridging.

While any site "can" integrate with standard.site directly, I'd like it to be the primary editing flow and not syndication.

I want to blog mainly via ATProto records to encourage me to invest more in manipulating the raw data layer via automation, which is foundational to other projects that I want to do.

In general, I'm willing to accept some rough edges to get closer to self-hosting.

I did seriously consider hosting my own implementation of standard.site, especially after this blog post detailing just how easy it is. But in the end, I decided that Leaflet is a better starting point for me:

They've been great players in the ecosystem so far and I trust their approach.

I have limited time for coding projects. Launching another static site means another opportunity to fall down a rabbit hole of things-that-aren't-writing.

Leaflet has support for emails, which are incredibly annoying to self-manage.

Paying for Leaflet Pro helps fund the overall ATProto ecosystem, and demonstrate to others that it can be financially viable.

The experience so far? Great! It took less than 30 minutes to get this site launched, configure DNS, design this (extremely unpleasant) theme, and subscribe to Premium.

but why?

It feels odd to recommit to (micro)blogging in a time when mainstream social networks are plateauing or even shrinking, and when perhaps even overall consumer demand for tech is about to self-correct. But even in a landscape of decline, I think that there's more than enough space for a new blogging ecosystem to thrive.

It may not feel like it, but human writing is actually in a great position to matter again. Every drop of slop makes what isn't stand out more. Caring about your work has always mattered, has always been good for you - but now it's a countercultural activity too. And even the staunchest AI maximalist ought to admit that human language:

Has been the most productive training set in history

Is the most successful way of providing instructions to models

Is crucial to effectively receiving information from models

Is the most successful way to interpret models via CoT

Of course, this isn't the first time a bunch of overeducated nerds thought that writing was having a moment. Consider a generation growing up with the Ender's Game series, where (to paraphrase) two teens post so good that they get elected dictator.

For a moment, the moment seemed to be here. Bloggers got TV spots and shitposters got book deals. Serious thinkers told us that microblogging would be key to future political revolutions. Google Reader was an influential social network!

Years later, it feels like a fever dream. Who benefited from all that? Gambling addicts like Nate Silver, stenographers to power like Kara Swisher, bootlickers like Bari Weiss. Choose any platform and you'll find that clever writers and moral luminaries are trivially drowned out by scientific racists and supplement peddlers. Their behavior is as bad as any of the newsroom old boys, but without any of the moderation that would come from having to keep bad behavior out of public view.

If embracing the fusion of technology and writing failed that badly last time, why bother? What makes it different this time?

I think what matters is that it isn't different, and that enough of us have realized that. Those of us who have been around the block on social media have a deeply learned sense of humility or cynicism. I don't think most bloggers and ATProto-heads are naive enough to think that this will fix the world, or go viral, or make them famous or rich. Indeed, I believe that more people than ever understand that these aren't even sensible things for an open source publishing protocol or a personal blogging ecosystem to aim for.

And I think that opens a lot of space for clear-eyed development on technology that works for our immediate needs. There's a lot of space to question legacy tech and built-in assumptions, but with a focus on practical and shorter-term needs: what do centralized systems and bigtech algorithms actually prevent us from building? How can we move past critique and on to construction?

The structure of ATProto makes it possible to efficiently build something just for you, and if it makes sense, to allow other people to use it too without placing a huge support burden on you. You can build something new without the need for it to become your day job or to get you famous. It doesn't need to be totalizing all-or-nothing, you don't need to convince all your friends for it to work, and it doesn't need to scale to everyone on the planet. It just needs a baseline of infrastructural support to keep the lights on, and then after that - to be rewarding enough for you to stick with it.

And for me, right now, that looks like picking up blogging again.