I just released NameQL, a tool to help you find a great name for your next product or company. NameQL considers thousands of potential names in milliseconds and shows you the best, and only the ones where [name].com is available. Did I mention that it is insanely fast?
It was built using React, Node.js, and Redis. I used Bloom filters extensively for performance and memory efficiency, and created a new open-source Bloom filter library to maximize speed. There are a lot of domains to check against, and a probabilistic data structure is the only way to store it in memory, which you need for performance. This has the small caveat that the tool will accidentally think a domain is not available about 0.1% of the time. However, it shouldn’t ever report domains as available when they are not. So that works quite well for a tool like this.
Suggestions are generated using machine learning: an n-gram model built from a huge corpus of English words and existing domain names.
This is just the start. I have lots of ideas for making super-smart suggestions using machine learning, more advanced searching, supporting other TLDs, mobile apps, etc. The next feature I really want to build is to check the app stores for similar names, and for relevant trademarks. That would save me a ton of time.