Jon Roig

@runnr_az How I Built This

Weird One Character Domain Superstore aka ツ.ws… A web app for weird unicode single character domain names… A weekend project that got out of control…

TLDR; I built a Weird One Character Domain Superstore. It was a lot more work than expected and totally ridiculous, but it’s done. Enjoy!

What is it? is exactly what you’d expect: a place where you can go to shop for weird single character domains. While the x.coms of the world might belong to Elon Musk and his ilk, you don’t need to have your own electric car company to own your own single character domain.

You just need to make some choices. Bad choices. 𐋐.army choices.

In this article, I’ll try and describe the process by which I came to create and some of the technical challenges. It ain’t rocket science, but there’s more to it than you think.

I’m a guy who loves a stupid hackathon. I’m, like, a professional web developer on a big project during the day, but at night, I like to work on things that make me laugh.

A weird unicode domain superstore. Why not? I love it when talented people devote way too much energy to something dubious. A bad idea, fully executed.

Or at, least, minimally executed.

Weird One Character Domain Superstore MVP

Why didn’t a market like that exist already? These are things you need to build a minimum viable weird one character domain superstore:

  • A good domain name
  • A sense of what characters are valid and visible in your reference browser, Chrome for Mac OS
  • Metadata about every character: language / category / name / etc…
  • A way to check domain availability
  • A database of available domains
  • A webapp to sort and display domain listings and data. You have to show visitors the domains that are available, they won’t just guess.
  • A way to make money

No particular step is hard, but there’s enough to it there that no reasonable person would spend on something so stupid unless they’re already done a lot of the hard work on some other half-baked project.

Who Would Do Such a Thing?

I’m Jon Roig, the guy who brought you emoji domains. We were just on Vice News… how cool is that?

Emoji Domains on Vice News

I didn’t invent emoji domains… I just helped to make them popular by providing the first really easy way to register them at i❤️.ws. It’s been a big hit and we’re trying to find ways to push it into the mainstream in 2018.

Anyway, while I hunt around for new emoji domain partners — hit me up if you’re a ccTLD interested in chatting about selling emoji domains — I’ve got a couple of other projects brewing. My day job is working as a Developer in the Productivity Apps group for GoDaddy, but my weird side hustle is the Domain Research Group. Our main project right now is i❤️.ws, but I’ve been been looking for ways to extend my expertise in… uhh… unusual domains.

There’s a Vibrant Community of People Who Buy and Sell Domains

If you want to talk weird domains and find other the people who are organized and want to chat, the only game in town is the domain aftermarket… you know, where people buy and sell domains. There are, like, forums and stuff where people talk about domains.

Of course, the presence of domainers in the market is somewhat controversial — developers tend to view them as squatters — but given that they’re literally invested in domain names, they can be both great partners and a wealth of knowledge. And man, there are some interesting characters in that bunch.

When you’re trying to launch a new domain project like I was with emoji domains and i❤️.ws, you want to make friends.

To that end, I built an emoji domain marketplace a few months ago, retrieving data out of the GoDaddy Aftermarket system and doing various things to enhance / reveal the current availability of emoji domains, some of which are quite valuable, especially if you know what to look for, where to buy and where to sell.

I’m not sure how much actual money the Emoji Domain Marketplace has made, but it’s a useful tool for the community, low maintenance and it’s interesting to see all the different domains people have registered and are now trying to sell.

The Genesis for a Really Bad Idea

Let’s talk a little about how one gets the content for an emoji domain marketplace and you’ll start to see how this descended into madness…

  • You grab a list of domains on auction, a set of large CSV files, from GoDaddy
  • To speed processing time, you ignore as much of that data as you can in some easy, programatic way. In our case, since we’re only looking at IDN domains, you can ignore everything that doesn’t begin: xn-
  • You go through the remaining data, picking out the items you’re interested in. In this case, emoji domains… and there are thousands. Items you’re not including in the marketplace, you send those to the console to make sure you’re not ignoring something you should include.

Anyway, I’m looking at this output of domains people are trying to sell and I go, “Whoa. People really registered some pretty weird shit.”

Some weird unicode domains rejected by my emoji filters… a lot of them are essentially phishing sites

Home for the Holidays

A lot of interesting projects are born during the holidays, when Developers are away from the office and the pace of commerce slows for a few weeks. Linux came about that way, according to legend. I assume that will find its place somewhere among that pantheon of great projects.

I was home, by my self… my family was back in Philly and I had a few days to build whatever I want.

“Use the whole buffalo,” I said to myself. “I’ve got all the data already, I just need a new way top present it. I’ll just build a little marketplace for those weird unicode domains that I’ve been rejecting.”

“If nothing else, there should probably be a market for the single character domains.”

The Best Worst Domain Name is a given. Ironic in its length, it’s so uncool, it’s cool. I think. Right? There can be no doubt what site you’re visiting when you stumble on

I couldn’t really have a Weird One Character Superstore without an alternative single character domain. “Dogfooding” as they say.

ツ.ws came a bit later, picked up as an expired domain on the GoDaddy Aftermarket. Traditionally — before the WeirdOneCharacterDomainSuperstore — there hasn’t been much competition for these domains, since they’re not easily viewed in the native GoDaddy interface. To even enter the market, you have to do the type of domain auction data processing I talked about earlier. Still though, there was a bit of competition for it.

ツ.ws wasn’t my first choice. Originally, I’d planned on going with ❶.ws and bought that on the Aftermarket as well — I still think it’s pretty good — but people know the ツ character beyond it’s value as “HALFWIDTH KATAKANA LETTER TU.” It makes people smile.

ツ.ws displays properly in unicode my target browser, Chrome for Mac. It doesn’t turn to punycode. Pretty sweet.

Also: .ws stands for “Weird Superstore.”

So there’s that.

With both URLs active, I can use the longer one for social media sharing which doesn’t like Unicode — Facebook, for instance — while keeping ツ.ws for Twitter and the like, where the character count really matters.

I pointed each domain to different IP addresses. I hope the spiders enjoy that shit.

🤑 Making Money

WeirdOneCharacterDomainSuperstore doesn’t have any ads or take any money from anyone.

Given that this is my weird side project, I always need to keep an eye on my priorities. I have a family and friends and hobbies. I can’t manage customer service and passwords and credit card payment gateways unless it’s really worth my time. is essentially an ad for domains purchased through GoDaddy. The whole interaction is facillitated through the CJ Affiliate Program, so I get a percentage of all the money spent by users clicking through the app.

It’s a pretty good arrangement and i❤️.ws works the same way. Theoretically, I could make more money managing my own registrar and handling everything myself, but the effort required is significantly higher.

No Managers, no Frameworks

Ain’t nothing fancy about It’s a pretty basic web app built on Node.js/Express with a SQLite backend db.

All day at work I toil away in React and Ember and whatnot… and while there’s something to be said for these complicated frontend frameworks in a “serious” setting, I didn’t want to spend any more time than necessary with the webpacking and the linting.

Lean and mean. is all about server side rendering through handlebars.js. The upshot of delivering fully rendered HTML pages with no extra bullshit is that you can be super SEO friendly.

Feels so wrong… but it’s so right.

A Distinguished Character

Some of the characters supported by Weird One Character Domain Superstore

You can’t just list any weird one character domain name on a site specializing in weird single character domain names: you have to determine whether there’s a reasonable chance it’ll display in the browser.

This isn’t ‘Nam. There are rules. Lines in the sand have to be drawn.

To begin with, you have to choose a browser to use as a reference and say, “If character’s don’t display properly in this browser, I won’t include them.”

To get a sense of what’s generally valid on Mac Chrome, my reference browser, I visited the Wikipedia list of Unicode Characters to figure out what displayed and what didn’t. It doesn’t make sense, though, to try and copy each set of characters and trim out the non-visible ones by hand. That would be a monumentally tedious task.

… which is to say, the type of things where computers excel. We just need to point our machines in the right direction.

So… uhh… how do you do that?

Gather Your Symbols

It doesn’t make sense to just scan through all of Unicode, one code point at a time. For one thing, there are billions of potential hits. Second, you’re going to need to eventually categorize each character, put it into a proper subgroup.

Luckily, there’s Mathias, an engineer at Google who’s done a lot of great Unicode work. His iconic library, unicode-10.0.0, contains all the various characters one needs to get started. Thanks man!

Yay! The code, which could certainly be a lot cleaner, looks something like this:

Generate a list of all the Unicode 10.0.0 characters

Cool. Now what?

How can we figure out which characters the browser can actually display?

Do you see what I see?

After going down a few wrong avenues involving Google’s Noto font library and some weird data extraction techniques, I hit on a really simple solution — just render all the characters one at a time to canvas, convert the resulting image to png, and compare it against a list of known “bad” characters: blank, boxes, “tofu,” and the like.

The downside is that you have to actually run this in the browser to get it to work. Also, it takes a few minutes.

Not gonna make any claims of code quality here — it’s a one shot script — but here’s how I did it.

Figure out which characters display in your browser

With that done, we’ve got a clean, categorized list of all the visible characters in Mac Chrome for OS X 10.13.2. Sweet!

I’ve thought about breaking that out into it’s own thing: a simple web app which helps automate the process of determining which characters work in which browsers and recording / publicly sharing the results, but I’m not sure anyone cares but me.

We can archive all the character renderings! Make a gallery! Anyone? Bueller?

Pardon Me, is that Domain Available?

A little bit of js code…

Another recycled bit of technology from i❤️.ws: the domain checker.

GoDaddy provides a Domain Availability API at, so that part was trivial. Works pretty much like you expect: feed it a domain and an API key, it spits back some JSON to tell you whether the domain is available and how much it costs.

If a domain is available and is in my list of approved characters, the app adds the domain to the database. If the price has changed, it updates it in the db. If the domain is now taken, it gets removed.

You know: CRUD stuff.

Once this is up and running, you can begin to fill your superstore with weird one character domains.

Finding the Weird Domains

Since the app can populate itself, loading it full domains was just a matter of building a little script to scan through all the possible characters on a given TLD and point it at the weird one character domain superstore. I started with the big ones: and added some of the ones that I know are always tolerant of weirdness: .tk and .ws. From there, I’ve been adding TLDs that make me laugh: and .pizza.

Maybe more to come… we’ll see.

There are API usage limits on the GoDaddy discovery API, so one must pace oneself, filling out the listings over a period of weeks.

Rest assured that even as you read this, some VM somewhere is trying to find out whether ω.academy is available.

Keep it Simple

Weird single character domains have a discoverability problem: you don’t know which weird Unicode character you want until you see your new favorite weird Unicode character.

I’m not the best Web Designer in the world, so I try not to be too clever. The goal was to make the characters stand out and do the hard work of being interesting.

I settled on a big chart as the main way into the single weird character domain experience:

Display of Carian domain names, front page of ツ.ws

I wrote a bunch of basic search and sort functions to provide a half decent, if messy, interface to all the domains. Still not sure what to with massive character sets, like CJK. Right now, I just cut them off.

There’s also a totally dubious FAQ.

Finishing touches include SEO metadata and social media sharing — a little trickier than normal, since URL paths containing unicode that have to URLEncoded. Not that hard… just another thing to keep in mind. Unicode sometimes needs a helping hand.

I made my amazing logo at I wonder if that site makes money… kinda goofy, but works well enough. Thx!

There are probably other features I could add, but I’m not sure it’s worth it. Open to suggestions, of course…

And Now…

There it is… in all its glory.!

I initially expected to bang it out of four or five days, but it ended up taking about two months between Thanksgiving and New Years 2018.

In the end, I’m not really sure than anyone wants this thing. That said, it totally makes me laugh.

It’s a thing that should exist and now it does.

Enjoy! ツ.ws

Topics of interest

More Related Stories