title: Why?
url: https://4042302.org/why/
hash_url: 64f6381f9270b8b6c8eb1208336e052b

<p><a href="https://1997.4042302.org">My first web site</a> was hosted on <a href="https://en.wikipedia.org/wiki/Yahoo!_GeoCities">Geocities</a>.</p>

<p>Then <a href="https://web.archive.org/web/20040811232124/http://aral.tripod.com:80/">Tripod</a>.</p>

<p>Then it was a full Flash site that I coded from scratch.</p>

<p>Then it used <a href="https://web.archive.org/web/20020118200519/http://cafelog.com:80/">b2</a>.</p>

<p>Then it used <a href="https://www.wordpress.org">Wordpress</a>.</p>

<p>Now it’s <a href="https://source.ind.ie/aral/blog">my own hand-rolled static site generator in Node.js</a>.</p>

<p>Soon, it’ll be my own <a href="https://source.ind.ie/indienet">Indienet</a> site.</p>

<p>The Geocities site lives on only thanks to the <a href="http://archive.org">Internet Achieve</a> (thanks <a href="http://brewster.kahle.org">Brewster</a>) as does the Tripod page. I’m glad they’re still there (so embarrassing, but we all had to start somewhere!) But the original URLs today are broken. I couldn’t do anything about that because, just like my Facebook or Twitter profile today, they were never mine. I was just renting them from those companies and, when they went away, they took that part of the Web with them. My own site (and <a href="https://mastodon.ar.al">my Mastodon</a>), on the other hand, are mine and, among other things, I get to decide if they live or die.</p>

<p>Once I had my own domain, I was able to be more thoughtful.</p>

<p>I didn’t want to break the Web when I went from b2 to Wordpress. But that took some work. I had to write <a href="https://ar.al/588/">a b2 to Wordpress migration script</a>.</p>

<p>Then, when I went from Wordpress to my own hand-rolled static site generator, I had to again write code to process <a href="https://ar.al/archive/">my legacy content</a> and make sure I maintained the URLs. That took some work also. It wasn’t trivial.</p>

<p>(And, when I changed my domain from <a href="https://aralbalkan.com">aralbalkan.com</a> to <a href="https://ar.al">ar.al</a>, I had to keep a web server running at aralbalkan.com to forward the HTTPS calls to the new domain.)</p>

<p>Soon, my personal site will change completely as it becomes a federated personal site. So it’s going to go from a static web site to a Node.js application. I don’t want to break the Web but I also don’t want to burden the new system I’m building with a means to handle legacy static content. And yet, this is also an important use case that I cannot ignore.</p>

<p>So what’s a developer to do?</p>

<p>Here’s the simplest solution I could come up with:</p>

<ol>
<li><p>Serve the current site from a subdomain (e.g., <code>2017.ar.al</code>)</p></li>

<li><p>Make my 404s into 302s that point to the previous version of the site.</p></li>

<li><p>If I change the site again in the future, rinse and repeat.</p></li>
</ol>

<p>I call the technique <strong>404 to 302</strong>.</p>
