How we got here
Wherein our hero, in this publication's inaugural, dates himself (as if others would) in a reminiscence of computers and websites past.
Wherein our hero, in this publication's inaugural, dates himself (as if others would) in a reminiscence of computers and websites past.
It is 1996, and I am eight years old, and I spend too much time on the fucking computer.
In retrospect, I never really had a chance to do anything else. Computers were cool. That's where TIE Fighter was, and Commander Keen, and SimCity, and all the other games everybody else knows and it's cool to remember--but also, for me, there was Moraff's World and Maelstrom and Dominus and Colonization (whose historicity, if not the gameplay, has aged like milk) and Uncharted Waters and lord, so many ZZT worlds. And it certainly didn't hurt that my dad owned a computer business and so there were a pile of them around; one of my first really clear memories is getting outraged when my dad fragged me in Doom--in co-op, no less. So I had my own computer for Literally Forever, attached to a massive 22" Hitachi SuperScan monitor that probably weighed more than I did at the timeMaybe. I was a Large Child., and I was on the thing all the goddamn time. Outside? Outside didn't have games, and outside didn't have AOL.
And what's that AOL account have?
Personal web space. Five kingly megabytes of members.aol.com, all to myself, and a built-in FTP client to steer her by. Or something. I don't remember what I did with it. At some point somebody clued me in to the shareware version of HotDog EditorAnd thus I began every programmer's lifelong habit of screwing with my development environment., so Notepad wasn't forever, but I've got brief sense-memory fragments fo Terminal-font-on-blasting-white screens with painstakingly typed-out all-caps HTML tags, and I distinctly remember planting "this site works best with Netscape Navigator" banners at the footer of the page despite only ever using the built-in Internet Explorer variant embedded in the AOL client.
I was a cool kid, I tell you what. Web-color templates inspired by the finest COLOR
palette in QBasic's SCREEN 13
and content edited by hand. Simple asks, solved simply. It makes sense--I was eight, for god's sake.
Anyway. Eventually we get a blistering fast 56K dial-up through a local provider and AOL goes away. Being of single-digit age, I don't back anything up, it all gets wiped, and I don't think about what was there for another twenty-plus years.
It is 2003, I am fifteen years old, and when my parents aren't taking away my computer access because I'm being a little shit, I spend too much time on the fucking computer.
At this point, I'm a connoisseur of all the programming languages most people don't cop to knowing today. World of Warcraft will be released in a year or so but I am hip-deep in MUDs and will be through college, so it goes without saying that I know C badly and C++ worse. This year or the next I'll put aside Visual Basic 6 for .NET (where, in an attack of good sense, I'll realize that VB.NET is going absolutely nowhere but this C# thing is kind of fun), but my weapon of choice at this point is PHP.
A lot of PHP.
And as it is 2003, a lot of bad PHP.
That may be redundant, but it probably isn't.
We are talking piles of PHP, ill-considered and dumb. Source control isn't a thing yet in these partsjust edit on the server in the cpanel box you coward, at best I've got archived zip files that might have dates on them if I'm thinking clearly. Every shared host and their dog (who also owns a shared hosting company) has MySQL, so now I'm a MySQL guy too.
And I will say for a third time: it's all bad. It is so bad. The first code review I ever got, courtesy of an internet buddy at the wizened age of 19 or so and working at a help desk somewhere--took the time to explain to me that you really should call this md5
function before storing a password, don't just store it as is, somebody might steal it.
But people paid me for this stuff! I was precocious, dammit. And I had a website. A real website! With a domain name and everything, I'd escaped those surly bounds of Angelfire and touched the face of...uh...I forget. Anyway. The tech. Have you ever heard of this Joomla shit, dude? You don't have to write HTML, you just write text in boxes and it shows up and--
--yeah, dude. I tried Joomla. But have you tried Drupal? It makes me so fucking cool I wear sunglasses indoors. Drupal is cooking with gas. Yeah you've got pages and posts, fine. Drupal lets you build your own content types! Have you seen these Views? Sure, it's so slow that it can handle literal zeroes of traffic at a time and I haven't yet figured out caching or even that that damned dog's shared hosting is running on a hamster wheel in a basement somewhere, but look how cool it is! It's easy! It's fun, even!
Then that dog and his shared hosting company go rogue, disappear into the night, and eat all my stuff because it's Drupal and you do everything on the host and what's a backup strategy?
So it goes.
It is 2013. I am twenty-five years old. I am trying to spend less time on the computers--there are girls Outside, after allIn hindsight I, being a generally unpleasant little shit in my early and middle twenties, probably did the world something of a service for inflicting this era of myself on relatively few people. I got better, though. I think. Reports vary.--but Crusader Kings II and the XCOM remake just came out and also I am paid to be a computer toucher now so it's a professional necessity.
So I feel guilty about it, but I still spend too much time on the fucking computer.
I've moved on from my past shames and onto new ones. I achieved PHP escape velocity years and years ago and since moving on from TripAdvisorI'm very fortunate this was my first job. They let me do anything I wanted and I learned a lot. I also learned that the JVM is a wondrous beast and that I cannot, in fact, redesign typeahead better than anyone else. I tried, though. I've (d)evolved from the Java doldrums--though I still think Scala is cool because I've never had to write it on a team with other people, and I am exactly that idiot who went all-in on the Play Framework 1.0 just to get clocked when 2.0 came around. A few years from now I'll be a Ruby prick--I don't drink coffee so I can't sip my latte and blog but what I do do is open-palm slam monkeypatches onto Object
because it's ergonomic. And as if I was predicting my own future, this is when I set up An Blog.
I'm not yet that Ruby guy, though. So I am not looking to artisanally write a blog from scratch. No way, I'm one of the Good Ones, I'm just going to go with something that already exists. We're gonna save time and effort, and that means--
--that means PHP fucking Kool-Aid Mans back through the door, shouting did you miss me?? at the top of its lungs.
Wordpress.
Thanks, Matt Mullenweg. ThanksActually an unironic thanks. Automattic becoming the home of much of the internet's history is an underappreciated arc..
And y'know what? Now that I actually have a credit card and economic autonomy, this ain't bad! My tiny little VPS (maybe DigitalOcean by now, probably not) is pokey but WP Super Cache is here and ready to help. This thing flies, so long as you don't look at it funny. But it is just using a default theme still, and while I'll pay for a server I'm not paying for a theme when I can just do that myself. So it's off to learn The Loop and bastardize skeleton.css and honestly, in retrospect, if I'm going to toot my own horn, the results aren't bad.
So it looks alright. The content? The content is...okay. Learning-one's-chops okay. I don't advise reading that old blog. But I'm gratified, skimming it now, that I only sound like a cocky idiot and not like the proto-chud I was, at the time, learning not to beThere but for the grace of, etc..
I still have backups of that site kicking around, but it stopped being 2013 at some point and we all stopped blogging and started Posting instead on Twitter. And I never really loved the domain name anyway. So I let it go, and copied the backups into the unmitigated mess that my future grandchildren will not know how to access after I die.
It is 2022, and I have a good excuse to spend too much time on the fucking computer, there's a pandemic you know!
Let's back up a bit, because at this point I am a stranger in a strange land. Ten years of backend development and running infrastructure teams have gone by, more or less sucessfully. But I can't leave well enough alone, so I learned React (and then React Native) and didn't hate it, and I was doing practically everything at the rowing machine company at this point and I'd talked to these dudes from Mux, who had a promising product that seemed really nice...just before my boss signed a two-year deal with Brightcove to keep using their godawful video product.
But they seemed cool, and I am tired as hell of the AWS mines, and Mux had a "developer experience engineer" role open, so why not?
Two months into the job, I was running live-stream production for Demuxed 2020, COVID EditionOne of the experiences of my life of which I am most proud., out of my office while a pile of dogs napped at my feet. Then Demuxed 2021, same deal, the year after. But when I wasn't doing that, and wasn't trying to build some kind of API governance process on top of some very shifting sands...I was trying to make the case to developers what they should do More Video Stuff. With React. And with this newfangled NextJS shit.
NextJS just seemed like a waste of time. I already had TypeScript and I already have create-react-app, I'm not even making stuff that needs SEO, go away. But while I backed the right horse in TypeScriptI do not think we have found TypeScript's final form yet, but I think it is a broad local maximum of developer ergonomics and productivity. Someday we're going to get what Deno promised and it's going to be awesome., I did not yet know that NextJS was the obvious choice for React. Had to use it at work, though, and I was having trouble learning NextJS; without a real project and with only nibbling at the edges of Mux's use of it, I wasn't having a good time.
"So", says I, "why not a blog?"
npx create-next-app
ensues.
Then I rapidly learn enough to realize what I was missing.
Then I get distracted and forget about the blog.
I've been making a point of reading more, in an effort to Be Less On The Fucking Computer. But for me, consuming creative work makes me want to do creative work, and so now I really, really do want that blog. (I think.)
"Jamstack" remains an insipid trend but some of the tools are good. MDX is an interesting thing, bolting React into Markdown, that could be an OK way to write An Blog or two and it keeps my data local, let's go with that.
I'm tired of React, though. SvelteKit seems cool?
The idea of SvelteKit here kind of takes a backseat, as does the blog. I took a tour through a bonecrusher of a startup that pretty much zeroed my appetite to work on even the simplest tech side project. Now I work at the phone company, and it alternates between being the most incredible (in the literal sense of the term) nonsense imaginable and actually really really fun. My brain is being crunched from all angles to solve actual problems, but in a good way, and they don't make me write code so I actually like the idea of writing code at home again. My wood shop is in full swing, too, though, so there's a balance, and I'm on the computer less than any any point in my life.
Dust off that NextJS project. Start updating for React Server Components. Realize that no, react-bootstrap
is not going to work here, not without a bunch of extra work.
Does that mean Tailwind? Ugh. I hate Tailwind. Fifty classes on an HTML element because people are scared of CSS and--and it's fine. I still think it's uglyIf you are Of A Certain Age, you might have grown up believing that a separation between presentation and content exists in HTML/CSS that does not actually exist. Tailwind bothers me in the same way. It's probably right. It also offends me., but it works. The port is pretty quick.
I get that far, though, and then I'm just--I'm not out on React Server components, but I am absolutely out on how NextJS handles them. Everything is a special case, it's too hard to meaningfully restrict what runs where, and I can't shake the feeling that NextJS is in the gunsights of an effort to no, really, you should be using Vercel to host your app, friend. Upside, though: modern LLMs make a port of what exists to SvelteKit super easy. And I like it. Svelte 5 makes me nervous; they seem to be moving my cheese. But I like Svelte 4 a whole lot.
So, finally, we have shaved that yak all the way down. Almost. Writing stuff--okay, maybe I've gotten soft in my dotage, but I just can't sit there and slam stuff out in a text editor. I like seeing my text being edited! Richly! The search for a system for managing content is a slow one. At first I'm the self-hosted-uber-alles guy, so I give Strapi a try, and I swear at it; its idea of text is Bad and it can't do footnotes or asides and the overall experience of trying to write code against it makes me long for MCEditor and flinging a string of maybe-sanitized HTML into a database somewhere. Then I try a few others that also claim to be self-hosting. They are worse.
Finally, thoroughly beaten, I go back to what Mux used and I never really had to deal with much, Sanity.io. Everybody I know likes it, but I am perverse and so my lip curls automatically: why are they holding on to all of my stuff? And what is this "content data lake" buzzword junk?
It's junk that works, is what it is. I'm still not thrilled about storing data in their "content data lake" and I'm keeping a protective backup close at handI'm rarely nervous about a startup like this doing an Our Incredible Journey and disappearing into the mist, but I am worried about pretty much every startup with any kind of a free plan going "and now we really do need revenue, so let's turn the screws." I get it, but I don't intend to be downstream of it.. But I'm typing this post in Sanity Studio right now because it does one thing nobody else I've found actually does well: it represents text effectively with PortableText, a text structuring standard everybody should just absolutely steal as of yesterday. The system of markers is Obvious, and without any special sauce allows me to have my margin notesYOOOOOOO, which I love so very very much for extracting my most egregiously parenthetical asides from the main body of whatever I'm getting at.
So now, at long last...do we maybe actually have a blog? For reals?
We'll see.
I shipped the blog in 2023. Then life came at me fast and I didn't do anything with it. Oops.
I was never satisfied with
–Ed