Skip to main content

Finding available domain names

Project description

brand

Tools to find names for things.

Both to generate names, but also check if they're "available" (e.g. as domain names, project names, github organization names, etc.)

To install: pip install brand

How to use

Check out this demo notebook.

Name Availability Check

from brand import is_available_as

Check out the available categories you can check (this will evolve over time, as we add methods).

list(is_available_as)
['domain_name', 'github_org', 'npm_package', 'pypi_project', 'youtube_channel']
>>> is_available_as.github_org('thorwhalen')
False
>>> is_available_as.github_org('__hopefully_this_one_is_available__')
True
>>> is_available_as.pypi_project('numpy')
False
>>> is_available_as.pypi_project('__hopefully_this_one_is_available__')
True

Generate English Words

from brand import english_words_gen

# all two letter words starting with 'z'
list(english_words_gen('^z.$'))
['zr', 'zn', 'zb', 'zu']

ask_ai_to_generate_names

from brand import ask_ai_to_generate_names

ask_ai_to_generate_names(
    'For a company that will develop AI-based tools for the financial industry'
)
['FinAI',
 'MoneyMind',
 'InvestBotics',
 ...
 'FinanceComradeAI',
 'WallStWizardAI']

More examples

Example script

search_names.py shows an example of how to assemble brand functionalities to write a script that will search names of the form CVCVCV (C for consonant, V for vowel) with no more than 4 unique letters and where either the consonants or the vowels are all the same.

...
(10)12:49:07 - 2255: nesebe
(10)12:49:08 - 2256: nesede
(10)12:49:09 - 2257: nesefe
---> Found available name: nesefe
(10)12:49:09 - 2258: nesege
---> Found available name: nesege
(10)12:49:09 - 2259: nesele
---> Found available name: nesele
(10)12:49:11 - 2260: neseme
---> Found available name: neseme
(10)12:49:11 - 2261: nesene

name_is_available

name_is_available checks if a name is available using the system's whois command.

from brand import name_is_available
assert name_is_available('google.com') is False
assert name_is_available('asdfaksdjhfsd2384udifyiwue.org') is True

The store

First, you'll need to provide a "store". That is, a dict-like object that will hold the names you've checked so far, under keys available_names.p and not_available.p (which contains the names that were checked, but not available).

The functions use this both to not check what you've already checked, and to store its results as they check names.

A store can be an actual dict, or a dict-like interface to files or a DB.

We advise to use py2store (which is installed with brand) to make dict-like interfaces to your storage system of choice.

When you ask brand to make a store with no further specifications, it makes a directory and places files in there for you.

import brand
s = brand.get_store()

Now you can use that store to see what's already available from past work (if anything).

available = brand.available_names(s)
not_available = brand.not_available_names(s)
len(available), len(not_available)

process_names

process_names will take some names (specified as an iterable, generator function, or pickle file) and check if each is available, saving the results in the given store.

try_these = ['google.com', 'gaggle.com', 'giggle.org', 'asdfiou3t.org']
process_names(try_these)

Motivation

Choosing a good name for companies, products, or projects is crucial because it forms the foundation of your brand identity, making a lasting first impression on your audience. A well-chosen name can communicate your values, evoke the right emotions, and set you apart from competitors. It needs to be memorable, easy to pronounce, and relevant to your target market. Moreover, ensuring that the name is available across key domains and platforms avoids legal issues, protects your brand, and maintains a consistent presence online. In short, a strong name is vital for building recognition, trust, and loyalty.

Finding a good name is challenging because it must balance a range of constraints and objectives. It may need to reflect the values, sentiment, or aspirations of a targeted audience, while avoiding associations that might alienate others. Even when choosing a name with semantic flexibility—keeping it vague to allow the brand to evolve—you still want it to be pronounceable, visually appealing, and memorable. On top of these considerations, the name often needs to be available as a domain, social media handle, or product name, which can be frustrating when your ideal choice is already taken. These constraints can slow down the creative process, leading to compromises and sometimes resulting in names that lack inspiration or are later regretted.

The brand package is designed to streamline the often difficult and time-consuming process of naming by automating both name generation and availability checking. With its name generation feature, the package helps users come up with creative, relevant, and flexible names that align with their brand's goals and target audience. It offers options to create names that are memorable, pronounceable, and visually appealing, while also allowing for semantic flexibility.

In addition to generating names, the brand package integrates powerful tools for checking name availability across important platforms such as domain names, social media handles, and other key online spaces. This automated checking saves users the hassle of manually searching for name availability on each platform, ensuring that the chosen name is free to use without conflicts. By addressing both the creative and logistical challenges of naming, the brand package accelerates the process and helps avoid the pitfalls of last-minute compromises, ultimately leading to stronger, more meaningful brand identities.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

brand-0.0.7.tar.gz (14.3 kB view details)

Uploaded Source

Built Distribution

brand-0.0.7-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

File details

Details for the file brand-0.0.7.tar.gz.

File metadata

  • Download URL: brand-0.0.7.tar.gz
  • Upload date:
  • Size: 14.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.13

File hashes

Hashes for brand-0.0.7.tar.gz
Algorithm Hash digest
SHA256 d11e3a4436f4ab5ccce064edbf72a131c1b6e6335fd9088e3d454e9317853b56
MD5 16238d0b2ce3c8deb5c046c33fec7682
BLAKE2b-256 2ebf0ae48c707a303b04c9544abc5d800e6563d959b7225ca1bed105c416bd3d

See more details on using hashes here.

File details

Details for the file brand-0.0.7-py3-none-any.whl.

File metadata

  • Download URL: brand-0.0.7-py3-none-any.whl
  • Upload date:
  • Size: 12.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.13

File hashes

Hashes for brand-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 94ac51b5d886855c34a23c7a95f30274fa54cf77034cf326bcc8fb7c8848db01
MD5 cbd4d28e90b526191d85f03e0573a496
BLAKE2b-256 984fdc660cca2d5ea3c9a2d74d6a366904a01b0dca3b7658ff95757da8bc9a09

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page