Assumed Audience: web development nerds like me.
Those of you subscribed to my RSS feed most likely saw a bunch of posts again earlier this week. That’s because the canonical URLs for the posts on my site changed: from
www.chriskrycho.com/<year>/<title slug> to
v4.chriskrycho.com/<year>/<title slug>. So, for example, my announcement that I’m speaking at All Things Open 2019 moved from
v4.chriskrycho.com/2019/all-things-open-2019.html. I spent much of this past Wednesday working on getting this migration done, after spending a fair bit of time over the last week planning it. Over the course of the next few days, you’ll see v1 and v3 start working; v2 is already up as I write this.1
But why, you ask? Because I now have—at last!—a stable URL design for my website, which will never have to change again. (“At last” I say because I’ve been thinking about doing this since 2015. It feels great to finally have it done.) I care about stable URLs. I want a link to my content to work just exactly as well in 10 years as it does today. Don’t break the web! Don’t break all the documents that aren’t on the web but which point to places on the web! Historically, that has meant that every time I launch a new website design, I have to do a bunch of work to move the previous version of the site and create redirects for it.
No more! From this point forward, my content will always live at a versioned URL. This site is
v4.chriskrycho.com. When I launch the redesign I’ve been working on (very soon!), it’ll be
v5.chriskrycho.com.2 When I launch another redesign in 5 years, that’ll live at
v6.chriskrycho.com—and so on. All I’ll have to do at that point is change where
www and the root
feed.xml redirect to, and everything else will just keep working.
The idea isn’t new to me—I got it originally from someone else; but I don’t remember who because it has been such a long time since I first saw the idea. I had done something somewhat similar when I launched the last version of my site, archiving the previous version at
2012-2013.chriskrycho.com, but I failed to start the new version at a similarly specific location. What this means is that I had to take and redirect every piece of content that lived on what is now
www.chriskrycho.com to its new home. Now, as I’m preparing to do the
v5 launch, I had to do the same again, but this time for what is now at
I don’t want to do this again! Even with building a small tool to generate either file-based or Netlify redirect rules, getting it right is both time-consuming and error-prone, especially when also needing to do a DNS migration to create
v4.chriskrycho.com and get myself off some old shared hosting and… it was a pain and a lot of manual work.3 The new approach means I will never have to do this again, and I cannot express just how happy that makes me.
v4 it is for now, and
v5 coming soon. When that happens, you’ll see an announcement post in your feed, and then you’ll automatically be switched over to the new root feed on the
v5 site, without having to do anything at all. 🎉
For very long-time readers: I also used this as an opportunity to get my old 52 Verses site off of Blogger’s infrastructure and into a purely-static-HTML setup as well. Happily, that one doesn’t involve any URL tweaking—just extracting the content from Blogger and pushing it to a static site host.↩
Feel free to watch that space as I iterate on it! It’s coming together nicely but still has a long way to go.↩