Nice Registry
The nice registry is a collection of tools that make it easier to work with the npm package registry and learn things from it.
These projects seek to answer questions like:
- Who are the most prolific package authors?
- What English words are not already taken as package names?
- What are the most popular GitHub API clients?
- How many packages exist?
- How many scoped packages exist?
- What are some popular tools for managing pull requests?
- Which packages are downloaded the most?
- What are the GitHub and Twitter handles of a given author?
- What are the most popular CLI tools?
- How many packages have a GitHub repo?
- How many packages have a GitLab repo?
- What packages are depended on most?
Why?
There is a wealth of useful information in the npm registry, but it's difficult to access.
npm Incorporated does not have a public API for collecting or querying registry metadata. Back in early 2015, they created a private internal registry API that is accessible exclusively to the npm website and npm CLI, and after more than two years there are still no signs of that API becoming publicly available.
Datasets
Some of the projects in this org are not really tools, but datasets collected by conusming the entire registry and filtering for various criteria.
Code of Conduct
This project adheres to the Contributor Covenant, a code of conduct for open source projects.
be overt in our openness, welcoming all people to contribute, and pledging in return to value them as human beings and to foster an atmosphere of kindness, cooperation, and understanding.
Contributing
Projects in this organization follow the open open source contribution model:
Individuals making significant and valuable contributions are given commit-access to the project to contribute as they see fit. This project is more like an open wiki than a standard guarded open source project.
Many of these repos also adhere to the Scripts To Rule Them All pattern popularized by GitHub:
If your scripts are normalized by name across all of your projects, your contributors only need to know the pattern, not a deep knowledge of the application. This means they can jump into a project and make contributions without first learning how to bootstrap the project or how to get its tests to run.
The intricacies of things like test commands and bootstrapping can be managed by maintainers, who have a rich understanding of the project's domain. Individual contributors need only to know the patterns and can simply run the commands and get what they expect.
Automation
Many of the modules in this org are self-updating. They have release scripts that run hourly or daily using Heroku Scheduler, on dynos that have npm and GitHub authentication credentials baked in.
For more details on this automation technique, see the Sweet Sensation of Automation blog post.