Inspiration

Coming up with package names can be a bit of a chore. There are so many long-dead and stale packages camping on the best names on platforms like npm. Scoping via organization helps but it can lead to confusion when there is too much similarity. That confusion can even extend to situations where a package exists in another language's registry.

What it does

"Is It Taken?" is a simple web app that allows users to search for a seed word. The web app then looks up synonyms via the Wordnik API and then checks the selected Registries for an existing package for the seed word and related words from Wordnik. Supported registries are: NPM, Maven, pkg.go.dev, Crates.io, PyPi, Packagist, Hex.pm, and RubyGems

The WebMCP implementation for this project has a couple modes. It can do the synonym lookup using the Wordnik API but it can also just inject it's own words and synonyms and check their availability.

How I built it

I did some simple discovery and planning using OpenSpec and turned the agent loose. Kepler was the main agent orchestrator. The architecture is an Astro site with Preact islands hosted on Netlify using server functions to fetch from most of the registries.

Challenges I ran into

Some of the registries have strict rate limiting and a couple others are strict about bot crawling. For those cases we needed to do Browser-based fetching as long as they supported CORS.

Accomplishments that I'm proud of

The project was spun up within a day on stream and seeing the WebMCP tools get automated the next day was a delight.

What I learned

A tool like this is still subject to rate limiting that could be hit if it were used by many users at once.

What's next for Is It Taken?

I plan on creating a CLI tool and Skills that would allow users to get around a centralized server-based rate-limit issue.

Built With

Share this project:

Updates