Future Proofing

development
rambling

There’s a type of website you don’t see as much as you used to. There used to be scores of sites devoted to a niche topic that were built and maintained by a single person. They had heaps of information and were often the go-to place to find what you needed. With websites that crowdsource their data (like Wikipedia), a lot of these information hubs were absorbed into giant centralized digital libraries. I enjoy Wikipedia, IMDB, and the scores of super-specific wikis out on the internet, but I feel like we lost a really charming part of the old web.

A lot of those niche, single-handedly maintained sites are still around. They haven’t been updated in a decade or two, but they’re still there. I’m in love with the idea of an eternal, personal information hub.

So I decided I wanted to be the change I want to see in the world and that I’d make my own hub built around a niche topic that I’m passionate about. Please excuse me for being vague, but I’m not quite ready to reveal what it is. For now, let’s assume it’s about Semi Trucks (which is another special interest of mine).

I’m building a site that is a hub for all you could ever want to know about trucks. But not the hub.

This site is going to span tons of pages with anything and everything I learn about trucks. It's going to be deeply personal and every bit of it will be covered in my fingerprints. I want to be part of the small web. I want to build up the small web.

But I'm stuck.

I want to make sure my site is future-proof

If my site is future-proof, it can live on for decades, just like the ones I mentioned earlier. But what does it mean to be future-proof?

Cheap and Portable

In my opinion, the ultimate future-proof website lives on forever because it can run on any web server and costs pennies to let it live.

What makes it cheap?

It's cheap when it doesn't need any special services. When it's just a bundle of files that gets served directly to the user.

What makes it portable?

It's portable when I can take the files, copy-paste them into some other host, and they’ll work without any further configuration or screwing around with settings and options.

What I'm building isn't cheap or portable

I'm halfway through building a fully custom CDN to support a fully custom CMS when I realize that I might be painting myself into a corner.

I mean, it's cheap, technically, in that I'm hosted on Cloudflare, which offers a lot of very generous services for free. But if I ever outgrow them, I'm committed to their services, because it's not portable.

I have a database, a serverless API, a bucket for assets, and a website. These things are all really cool and really fun to build, but they’re absolutely not portable. I’m locked into these services as long as the site exists in its current form. I don’t see Cloudflare going anywhere, but the doomer inside of me is a little anxious about putting all my eggs in someone else’s basket.

But it's going to be so convenient

Imagine being able to edit all the content of your website by logging in on the same site, from any device, and then just inputting text into some fields. If you’ve used WordPress, this is a very familiar concept. That’s essentially what I’m building: my own self-contained site that I can edit from within the site itself.

This is the most frictionless way for me to build up my site content

The easier I can make it for myself to edit and update all the good stuff on my website, the more likely I am to actually update and edit stuff. The site you're reading this on is very portable and very cheap, but adding and editing content requires me to edit the code directly and use special developer tools (git). And you can go see how often I update this blog.

Future-proof is a spectrum, I guess

There are a few ways I can build this site, each with its own pros and cons.

The most future-proof site is hand-written HTML and CSS with no JavaScript

Because of the way browsers work, anything written today in HTML and CSS will still work 100 years from now. It’s just text you want on screen and how you want to display it.

This type of site will run on literally every type of web host.

But it’s also the most tedious.

Writing longform text in HTML is a pain thanks to formatting that requires long tags like <strong> or <em>. Markdown solves the irritation by having shorthands for applying formatting to plain text (this very post is written in Markdown). But Markdown isn’t HTML.

If filling out the site content is tedious, I’m afraid I won’t commit to it. I know myself. I know that I’ll put off annoying tasks until I no longer think about the annoying tasks.

But I also really love the idea of hand-writing an entire website the same way our ancestors did back in the caveman times. (Love is not the same thing as discipline.)

The least future-proof is the most convenient

I’ve already described this version above. A website where all the content is managed from within the site itself is maximum convenient, but it requires building out a ton of infrastructure and committing to someone else’s services.

It’s also the most fun

I get to play with all the shiny modern toys: CI/CD, buckets, databases, serverless backends, front-end frameworks. It’s a blast, it keeps my skills sharp, and it’ll look really good in a portfolio.

The portfolio idea is part of the problem

A full-stack solution to a common real-world problem is probably the ideal type of project to include in a portfolio. At a time when there’s a lot of uncertainty in the world, I feel like a strong portfolio is never a mistake.

Maybe there's a balance

The website you're reading this on (unless you’re reading from my full-text RSS feed) is a balance. It has a big tech stack with all sorts of conveniences for developers, but it compiles down to a static bundle that can be served almost anywhere. I could build the new site just like that. All the assets and content live next to the code.

I could also build up the site with the plan of being able to ‘eject’ it somehow—dump all the assets from the bucket and database, stick them somewhere next to a static version of the site, and then shove that into a zip file. It’s a big “what if” and very much a digital version of a prepper mindset.

Or I can just put all my eggs in the Cloudflare basket and hope that if something ever happens to them in the future, I have the time and desire to migrate the site into something else.

The dilemma

Do I go fully future-proof and write everything by hand, knowing that it’ll be tedious?

Do I build my portfolio, have fun playing with modern technologies, and risk the site's future on today's choices?