Inspiration can strike at any moment. A few days ago, I read a conversation on Twitter where those involved were discussing project names and domain availability. And that sparked something in the back of my head.
So I created Domainion - a tool to randomly generate a domain name. But it's more than just a random word generator. It uses the WhoIsXMLAPI to make sure the randomly chosen domain is available, and if it's not, it will choose another.
The user is able to add some custom properties to their domain, such as the number of words, how to separate those words, remove vowels, and what the TLD (Top Level Domain - e.g. .com, .net, .io) should be, or leave it random.
The project was incredibly fun to build and tinker with. It started as a plain html page with a single button that would randomly generate a word. This was originally going to be from a predetermined list of words, but that was way beyond the scope of the project, so I utilized the API, a tool to generate a random word, and use this as the foundation of the project.
But simply getting a random word and adding .com to the end won't be sufficient for this project. I wanted to make sure it could generate a domain name that wasn't already in use. And that is where WhoIsXMLAPI comes in to save the day.
I won't go into how exactly WhoIsXMLAPI works, but it contains a record of registered domains. So when you make a request to WhoIsXMLAPI, it will tell you if the domain provided is available or not. It's simple.
In the event the domain is already taken, Domainion will just keep trying random combinations until it succeeds. While the API call is limited to how many it can make in a short time, in my testing, this hasn't been an issue, especially when you start adding additional customizations and words.
Domainion also lets users input their own domain. If I got a random domain which was pretty cool, but just needs that little push, I could edit the domain and check it's availability. Once the user is happy with their domain, they can copy the domain to their clipboard and use it with the domain provider of their choice.
The project took a few hours to build, from experimenting with different random word generators, and domain availability tools, to putting it all together in a nice little page, that I think looks pretty good (thanks in part to ColorHub.app) but it serves another purpose.
This simple tool utilized third party APIs to do something, and is presented with an easy to use interface, designed for mobile first and responsiveness. It's clean, it's quick, it's simple to use, and provides some explanation at the bottom of the page, so the user can just get on with it, without having to see how it works first.
It's fun little projects like this that you probably won't find on any web dev courses, that can really elevate your portfolio above and beyond the rest.