The Garage Manifesto: channeling the spirit of the early internet

Thoughts on what it means to host a website in 2022

Published on Jun 05, 2022

Reading time: 5 minutes.

This website, as well as several other personal projects and utility servers, lives in my garage. It talks to the internet over the same pipe I use to watch streaming videos and upvote Reddit posts. Once, this was how huge swaths of the web worked; individuals hosting their own websites on computers they owned, or at any rate had access to. Even before the web as we know it today, computer users connected on bulletin board systems that were usually also hosted from garages, basements, closets, and the like. These BBSes were thriving communities despite the severe technical limitations, including disk space (prices for disk space being around $1/MB in 1993, near the peak of BBS use), slow connections (powered by dial-up modems with upload and download speeds in the days-per-Gigabyte range), anemic hardware (many early BBS servers ran on Commodore 64, a computer that shipped with a 0.001GHz CPU and 0.000064 GiB of RAM), and usually no ability to handle more than one user connecting at a time (each user session requiring exclusive use of not only the server’s modem but its phone line, which was often shared with parents trying to make Important Phone Calls). Later, we had the free web hosts, places like Geocities that’d host your (tiny, typically limited to the single-digit megabytes) website for you for free, at the cost of injecting an in hindsight quaint and unobtrusive single banner ad into the header. How that website looked and worked was, more or less, up to you, and there weren’t yet agreed-upon standards for what constituted a “good” website so we saw an explosion of creativity and exploration as millions of people interacted with the internet for the first time by staking out a little piece of it for themselves, where they could express what they wanted to express and interact with those with whom they wanted to interact. Even though these were the first centralized web platforms, with thousands of users under the aegis of one central company, they largely continued the ethics and aesthetics of the pre-Web internet. Users, not UX designers at megacorps, decided how their ideas were presented and which other people they would collaborate with online.

This was the fertile ground from which the first social media platforms sprang. Mark Zuckerberg had an Angelfire page in the 90s that contains the germ of the idea that would eventually spawn Facebook and a thousand other multibillion dollar companies. Even this was nothing more than an extension of a previous idea, the webring. Zuckerberg replaced the linear chain of a webring with a branching structure meant to model the social network of the users on it, wedded that to a homepage template that looked slick even if you had no idea what HTML was, and made 70 billion dollars.

Today, it’s sort of generally accepted that individuals, even individual businesses, don’t host internet services on the same premises they live or work in. Certainly it’s a terrible idea if what you’re looking for is guaranteed uptime, consistent performance, or straightforward ways to accomplish a business objective. However, what we’ve given up to the platforms is not only our ability to express ourselves freely in digital space, but our ownership and understanding of the means of that expression. If you host your own website (or web service) on your own computer, you had to learn how to set up a web server, what can bring it down, and everything you need to know to eventually move that project to more robust hosting (hyperscaler, colocation in a data center, &c) if and when the demand justifies it. But most things people might want to put on the internet aren’t necessarily relevant to millions and billions of people, and are probably well enough served by either a single home server, or by a hyperscaler free-tier cloud instance.

Of course, if you grew up with this sort of internet and watched it evolve into the internet we have today, and if you had a technical bent, you might ask yourself if it is necessary that this is the case. Computer hardware is no longer improving at the rate it once was, but thirty years of near-exponential improvements in hardware and connection bandwidth have still made even low-cost, underspecified computers more-than-adequate web servers. Most people living in major cities (which is to say, most people) in industrialized nations have access to gigabit-or-better always-on broadband internet connections, perfectly adequate to the task of serving up 30 second videos of your cat or a picture of what you had for lunch that day. Surely individuals can simply host their own web presences, in the tradition of our ancient caveperson ancestors?

This website runs on a Kubernetes cluster hosted on (at time of writing) 7 single-board computers on a shelf in my garage. 2 Raspberry Pi 4s, 4 Jetson Nanos, and one Rock64 board, comprising some 30GB of RAM and 28 ARM64 processor cores. Specifically, it is an OpenFaaS serverless function, running the Hugo template, with the site design itself courtesy Sam Robbins’ excellent hugo-developer-template. It might be running on any one of those seven machines, or possibly several at once in the unlikely event my personal site sees enough traffic to cause the replicas to scale up. HTTPS certificate fetch and renewal, load balancing, and failover are all done for me, and this without the assistance of any cloud provider. I develop and run on ARM64 despite never having owned a Macbook, M1 or otherwise. In short, building a cluster at home has given me the ability to understand what is happening in larger, enterprise-grade infrastructure in a way that I could not if I was only exposed to the abstracted, public layer of such systems. And, as a bonus, I can host websites on it, and other small software projects.

Zuckerberg’s Angelfire homepage says of his prototypical early social network project, “The Web,” that “This is one of the few applets that require your participation to work well.” Today, the web is more something you consume than something you participate in. But it is at its best when people are doing both; when they allow the new ideas and diverse perspectives of a global conversation to influence them as they create new things.