Welcome to my blog where I write mostly about technical things!

Why I don't Use Odd.af Anymore

The last few days, I have been pretty busy migrating my domain from “odd.af” to “ungra.dev”. I posted a bit on Social Media about the story, but I wanted to wrap it up in detail in this blog post.

What Happened

ℹ️ The top-level domain “AF” is Afghanistan's country code top-level domain. A country that the Taliban took over in 2021.

A few weeks ago, my domain provider, Vercel, wrote me that my domain will not be able to be renewed. It's due for auto-renewal on the 22nd of April. They stated they have issues with the authorities in Afghanistan.

Due to factors that are out of Vercel’s control, we are no longer able to accept or renew .AF registrations, similarly to most registries today. CcTLDs (country-code Top Level Domains), like .AF, are managed by bureaus from the country, sovereign states, or dependent territory. An attempt to register a ccTLD will open a series of requests to the managing entity. We have made this decision due to the uncertainty Afghanistan continues to have with an evolving political situation. The .AF registry has been unresponsive and payments to them have not been possible, disrupting process renewals and new registrations.

So, long story short, the Tailban did not create a bureau being able to handle domain registry. I'm, however, still not sure whether this means every single domain provider is in the same boat and all “.AF” domains will expire sooner or later. On one hand, it sounds like this. On the other hand, this would be huge. Like, imagine not holding a silly domain for private use but for a big company with its HQ in Afgahnistan.

What I had to do

Vercel recommended I get a new domain ready.

We recommend you prepare another domain and are here to help you with that process.

To be honest, at first, I thought about talking to other providers in order to keep “odd.af”. I love that domain and didn't want to go through the pain of migration.
The longer I slept about it, the clearer it was that I had to move away. I had several good reasons.

Reason One: The Expiry

Well, that one is easy. Since my domain cannot be renewed, I have to do something. A possible solution to the problem is to ditch it and use another.

Reason Two: Language Barrier

A problem I always had with “odd.af” was that it was hardly understood in Germany. Not only was it a different language, but you also needed to know basic “internet slang”. Especially for older folks, it was quite confusing.
Admittedly it was rather short and very easy to spell out.
Also, not that I really cared, but many people are not keen on profanity in – at least somewhat – professional domains.

ℹ️ “af” is an internet acronym for “as fuck”. The domain meant “odd as fuck”.

Reason Three: Uncertainty of CcTLDs

The first reason I didn't like to use a ccTLD anymore was simply that it was semantically incorrect. I have nothing to do with Afgahnistan, especially because AF is not a ccTLD with a “Commercial License”.
Such domains (e.g., “me”, “am”, “fm”, “sh”) adopt policies to be not reliant on the infrastructure of a country. For example, “.co” is not managed by the Colombian Government but rather a Colombian and US company.
The second reason is, well, that it's a ccTLD, thus dependent on the particular country. 😊 What happened to my domain is seldom enough but can happen anytime. I don't want to have this unnecessary risk anymore.

What I did

At first, I gathered a list of potential domain names.
A screenshot of a note-taking app. The headline is Domains and it is followed by a list of potential domain names that are odd.dev, odd.am, oddest.me, odddev.codes, iodd.dev, iodd.de, odd.zone, ungera.de, odd.law, oddi.am, ungra.de
The problem was to find one that had not a ccTLD (see previous chapter), was affordable, and was not too boring. I pretty much liked the idea of translating “odd” to German. Among others, it means “ungerade” or “ungrade”. Then “ungra.de” came to my mind. However, first of all, that domain was already taken, and second, it still relies on a ccTLD. (I mean, “DE” would've been not too bad since I'm a resident of Germany, but well.)
Finally, I went with “ungra.dev” it's a portmanteau of “ungrade” (German for “odd”) and “dev. I pretty much like it, and it's only 15 $ per year.

Now came the hard part: migrating. It was a bit easier than I initially thought to be honest, but still pretty much painful. At first, I went through all accounts using an “odd.af” mail address. I just filtered for “odd.af” in my password manager. Surprisingly, they were very few since I use masked e-mails for most of my credentials.

After I changed all the addresses in these accounts (not to my new “ungra.dev”, but rather “masked e-mails”), I went on and checked my mail account. I informed everyone I had contact with that my mail address changed.

Then I updated all the links on my social media profiles and my website. Nothing should point to “odd.af” anymore.

The last step was to redirect the old domain to the new endpoints technically. In most cases, this was just a case of adding “ungra.dev” to the project and installing a 301 (“moved permanently”) redirect to the “odd.af” domain. One redirect was a bit more complicated. It was blog.odd.af. I changed the custom domain configuration in write.as, but I can only provide one, meaning I needed to create a redirect at Vercel.
This is also surprisingly inelegant, as you have to create a repository with a certain configuration file and then assign the “to be redirected” domain to it.

    "redirects": [
        { "source": "/", "destination": "https://blog.ungra.dev/" }

Or in other words, I needed to create a nearly empty project and assign “blog.odd.af” to it. I found this blog post explaining this approach.


I'm so glad that I'm through with this truly unnecessary workload. It's super hard to find the time and energy to do this. It's quite a relief that I think I have it off the plate. Keep your fingers crossed that I didn't forget about anything. 🤞