Project

brandkit

0.0
The project is in a healthy, maintained state
BrandKit is a Ruby CLI that helps check domain availability via Namecheap API and social media username availability across multiple platforms.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

~> 11.1
~> 3.10

Runtime

~> 2.0
~> 0.8
~> 0.18
~> 0.23
~> 0.12
 Project Readme

BrandKit

BrandKit is a modern, interactive CLI tool designed to help entrepreneurs, developers, and creatives quickly check the availability of domains and social media usernames β€” all from the command line. It combines domain availability checks via the Namecheap API with username availability checks on popular social platforms, helping you secure your brand identity in one place.


Features

  • Domain Availability Check
    Checks if a domain (e.g. example.com) is available to register using the Namecheap API. If a domain is not provided with a TLD, it suggests popular extensions like .com, .net, .io, etc., and shows their availability in a table.

  • Social Username Availability Check
    Interactively checks if your chosen username is available on multiple social media platforms including GitHub, Twitter, Instagram, TikTok, LinkedIn, and more.

  • Interactive CLI Experience
    Powered by TTY::Prompt for user-friendly menus, multi-selects, and prompts, plus colorful terminal output for better readability.

  • Clean & Extensible Codebase
    Modular design with dedicated classes for API communication ( NamecheapClient), domain checks (DomainChecker), and social username checks (SocialUsernameChecker).

  • Dockerized for Easy Setup
    Runs inside a container for hassle-free installation and dependency management.


Getting Started

Prerequisites

  • Ruby 3.x installed locally or use Docker
  • Namecheap API credentials (API user, API key, username, client IP)
  • Internet connection to query domain and social media availability

Environment Variables

Before running, set these environment variables in your shell or .env file:

export NAMECHEAP_API_USER=your_api_user
export NAMECHEAP_API_KEY=your_api_key
export NAMECHEAP_USERNAME=your_namecheap_username
export CLIENT_IP=your_client_ip

Installation

Clone the repo and install dependencies:

git clone https://github.com/yourusername/brandkit.git
cd brandkit
bundle install

Alternatively, use Docker:

docker-compose build

Usage

Run interactively

Launch the CLI with an interactive prompt experience, guiding you step-by-step:

docker-compose run cli

Or locally:

ruby bin/brandkit

Run with command-line arguments

Provide a domain upfront to skip prompts:

docker-compose run cli ruby bin/brandkit --domain=example.com

This will check the domain immediately and display availability, with an option to check social usernames.


Code Overview

BrandKit

The main CLI application class coordinating user input, output formatting, and flow control. Uses:

  • TTY::Prompt for interactive prompts
  • Artii for ASCII banners
  • Colorize for colored terminal output

DomainChecker

Handles domain availability checking logic:

  • Uses the NamecheapClient API wrapper to query domain status
  • Suggests popular TLDs if no extension is provided
  • Displays results in a neat table format

ApiClients::NamecheapClient

API client encapsulating communication with the Namecheap XML API:

  • Authenticates via environment variables
  • Handles building query parameters and HTTP requests
  • Parses XML responses and handles errors gracefully

SocialUsernameChecker

Checks username availability on popular social platforms by performing HTTP GET requests to profile URLs and interpreting the HTTP response status.

  • Supports GitHub, Twitter, Instagram, Facebook, YouTube, TikTok, Pinterest, LinkedIn, Reddit, Threads
  • Allows querying single or multiple platforms interactively

Demo

  ____                      _ _  ___ _
|  _ \                    | | |/ (_) |
| |_) |_ __ __ _ _ __   __| | ' / _| |_
|  _ <| '__/ _` | '_ \ / _` |  < | | __|
| |_) | | | (_| | | | | (_| | . \| | |_
|____/|_|  \__,_|_| |_|\__,_|_|\_\_|\__|


πŸš€ Welcome to BrandKit

     The fastest way to check domain and
     social media username availability!

────────────────────────────────────────────────────────────
🌐 Enter domain (e.g. example or example.com): examplex

Top Domain Extensions:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Domain         β”‚  Status       β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  examplex.com   β”‚  βœ” Available  β”‚
β”‚  examplex.net   β”‚  βœ” Available  β”‚
β”‚  examplex.org   β”‚  βœ” Available  β”‚
β”‚  examplex.io    β”‚  βœ” Available  β”‚
β”‚  examplex.dev   β”‚  βœ” Available  β”‚
β”‚  examplex.app   β”‚  βœ” Available  β”‚
β”‚  examplex.co    β”‚  βœ” Available  β”‚
β”‚  examplex.xyz   β”‚  βœ” Available  β”‚
β”‚  examplex.tech  β”‚  βœ” Available  β”‚
β”‚  examplex.site  β”‚  βœ” Available  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

✦ Domain Status

πŸŽ‰ Great news! Many domain extensions are available for β€˜examplex’.

────────────────────────────────────────────────────────────
πŸ“± Check if the username is available on social platforms? Yes

βœ” Select platforms to check (space to select): 🌍 All supported platforms

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   πŸ“‘ Platform   β”‚    πŸ” Status    β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚     Github      β”‚   βœ” Available   β”‚
β”‚     Twitter     β”‚   βœ” Available   β”‚
β”‚    Instagram    β”‚   βœ” Available   β”‚
β”‚    Facebook     β”‚   βœ” Available   β”‚
β”‚     Youtube     β”‚   βœ” Available   β”‚
β”‚     Tiktok      β”‚   βœ” Available   β”‚
β”‚    Pinterest    β”‚   βœ” Available   β”‚
β”‚    Linkedin     β”‚   βœ” Available   β”‚
β”‚     Reddit      β”‚   βœ” Available   β”‚
β”‚     Threads     β”‚   βœ” Available   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
πŸ‘‹

          Thanks for using BrandKit!
      Start building your brand today. ✨

────────────────────────────────────────────────────────────

Contributing

Contributions are welcome! Please fork the repo and submit pull requests with descriptive commit messages. Make sure to follow the existing code style and add tests if applicable.


License

MIT License Β© Rajan Bhattarai


Acknowledgments