Moving to MinnichAwesome.com: Goodbye Hyphens, Hello Permanence
Why we retired minnich-awesome.uk for minnichawesome.com, how edge-level 301 redirects preserve every bookmark and search link, and why a real .com changes how a project feels.
If you typed minnich-awesome.uk into your browser this morning, you probably watched your address bar silently rewrite itself to minnichawesome.com before the page even finished loading. There was no downtime, no interstitial "we have moved" warning screen, and no broken links.
It looks effortless from the outside, but dropping that hyphen and switching top-level domains has been on my mind for months. Getting here required untangling DNS routing, edge web server rules, subdomain architectures, and hardcoded config strings across dozens of files. Here is the story of why the old domain drove me crazy, how the 301 migration was engineered under the hood, and what having a permanent .com means for the future of this site.
The curse of the hyphenated domain
When I first launched this project, I needed a domain in a hurry. I had a working prototype of our first few games, an early Flask backend, and a desire to see it live on the public internet. I opened a domain registrar, searched for a few variations, and found minnich-awesome.uk. It was available immediately, cost next to nothing, and at the time I told myself, "It's just an experimental hobby sandbox. The name doesn't really matter as long as the code works."
That was a mistake. If you've ever owned a domain with a hyphen in it, you know the exact friction I'm talking about. Try telling someone your website over voice chat in Discord, across a room at a meetup, or in casual conversation with family. It goes something like this:
"Hey, check out that highway racer game I made, it's on minnich dash awesome dot u k."
"Wait, did you say dot com?"
"No, dot u k."
"Is it minnichawesome.co.uk?"
"No, just .uk. And don't forget the hyphen between minnich and awesome."
"Why UK? Aren't you based in Pennsylvania?"
Beyond the verbal awkwardness, hyphens carry an unfortunate visual baggage on the modern web. In the minds of most people, hyphenated domains feel like spammy affiliate blogs from 2007 or temporary disposable testbeds. Furthermore, a country-code top-level domain (ccTLD) like .uk sends confusing geographic signals to global visitors and search engine crawlers alike. People assumed the site was either restricted to United Kingdom visitors or hosted on European servers with high latency.
The target was always minnichawesome.com. No punctuation. No regional confusion. Just the clean, classic, universal .com extension that people naturally guess when typing a web address into their browser bar. When the domain became available to acquire, I didn't hesitate for a second.
The migration challenge: Leaving no player behind
Buying a domain takes two minutes. Migrating an active web platform without alienating your existing visitors or tanking your search indexing is a serious technical undertaking.
Over the past year, people have bookmarked specific games like Day Rider, Top Ace, Solitaire, and Chess. They've saved direct links to our Devlog essays, shared downloadable desktop tools on Reddit and developer forums, and saved high score leaderboards. If I simply switched DNS records and let the old .uk domain drop dead, every single one of those incoming visitors would land on a generic DNS resolution error. They would reasonably assume the project was abandoned and close the tab.
Worse still would be redirecting all legacy traffic to a generic homepage splash screen. Imagine clicking a link expecting to read a specific devlog post or jump directly into a game of Perilous Stacks, only to be dumped unceremoniously onto the homepage with no explanation. It's jarring, confusing, and disrespectful to the user's intent.
The requirement was strict: absolute path fidelity. If someone visits http://minnich-awesome.uk/games/day-rider?track=night, they must be redirected automatically and seamlessly to https://minnichawesome.com/games/day-rider?track=night, with HTTPS upgraded, parameters preserved, and zero friction.
Why HTTP 301 matters (and why not to do it in Flask)
In the HTTP specification, there are two common status codes for redirection: 302 Found (temporary) and 301 Moved Permanently. Using the correct one makes all the difference in the world.
A 302 tells browsers and search engine crawlers: "This resource is temporarily over here, but keep checking the old address in the future." When you use a 302, search crawlers do not transfer historical domain authority or indexing ranking to the new destination. Old links remain in the index, and your new domain is treated like a brand-new stranger.
A 301, on the other hand, tells the entire internet: "The old address has permanently vacated the premises. The new address is the authoritative home. Update your bookmarks, update your search index records, and pass all earned link equity directly to the new URL." Modern browsers will even cache a 301 response locally, meaning a user who visits an old link once will have their browser automatically route to minnichawesome.com in the future without even hitting the network for the old host.
The next architectural decision was where to execute this redirect. It can be tempting to write a small Flask middleware hook:
@app.before_request
def enforce_new_domain():
if "minnich-awesome.uk" in request.host:
return redirect(request.url.replace("minnich-awesome.uk", "minnichawesome.com"), 301)
While that works, it's wasteful. Handling domain redirection inside Python application workers burns CPU cycles, consumes Gunicorn worker threads, and requires a full TLS handshake and socket connection to hit our backend server just to send back a three-line redirect header.
Instead, we terminate and rewrite the redirect entirely at the edge network layer (via Cloudflare Page Rules and Nginx edge blocks). When an HTTP request hits the edge node for minnich-awesome.uk/*, the edge server immediately returns an HTTP 301 response pointing to https://minnichawesome.com/$1 before the request ever touches our Linux origin server. It responds in single-digit milliseconds from an edge datacenter geographically closest to the user, completely insulating our core server from redirect overhead.
The subdomain puzzle and codebase cleanup
The apex website wasn't the only piece that needed attention. We also host standalone web applications on subdomains, such as our AI note-taking and journaling platform, Journal AI.
Previously, Journal AI lived at journal.minnich-awesome.uk. As part of this transition, we provisioned new SSL certificates, mapped DNS records, and transitioned it cleanly to journal.minnichawesome.com, with matching 301 wildcard redirects for all legacy journal links.
Going through the entire repository to scrub legacy domain references also uncovered a few fascinating artifacts. For instance, in our templates/privacy.html and templates/terms.html documents, an earlier editing pass had accidentally produced duplicate href attributes on the same anchor tag—one pointing to the old domain and one to the new. Catching and fixing these small glitches is one of the quiet pleasures of doing a thorough domain cutover audit.
We also performed a deep sweep of our core configuration:
- Email verification and transactional mail: Updated default sender addresses in
webapp/__init__.pyto[email protected], aligning SPF, DKIM, and DMARC DNS records to prevent password reset emails from landing in spam folders. - Sitemaps and canonical tags: Ensured the dynamic
sitemap.xmlgenerator and all page templates renderhttps://minnichawesome.comas the canonical base URL, signaling to search engines that our new domain is the true source of truth. - OpenGraph and social cards: Verified that Discord, Twitter, and messaging app link unfurls pull images and metadata directly from the new domain over secure HTTPS.
- Homepage structure: Polished the category hero grid on the homepage, eliminating redundant experiment callouts and locking in our three core pillars: Games, Desktop Software, and Web Tools.
From temporary sandbox to permanent home
There is a subtle psychological shift that happens when your project moves from a hyphenated side-channel domain to a real .com.
When you're building on an awkward domain, there's always a quiet voice in the back of your head treating everything like a temporary experiment. You tell yourself that messy code or unpolished corners don't matter as much because you haven't really "arrived" yet. But owning minnichawesome.com feels like moving out of a temporary rental apartment and buying a permanent home. It invites craftsmanship. It demands that the foundations be solid, the performance be crisp, and the user experience be respected.
Minnich.Awesome is here to stay. With our new domain locked down, our redirect pipelines running quietly at the edge, and our infrastructure on solid ground, I'm more excited than ever to get back to what matters most: building great indie games, compiling useful desktop tools, and keeping the indie web alive and playful.
Update your bookmarks, check out the new URL, and as always, thank you for stopping by and playing.