


When I started experimenting with React, it seemed like a good idea to create a website that would list projects built by the community. This catalog has been manually kept updated for 9 months now and currently lists 3,519 packages.
JS.coach is a new project that is not as React-specific. It is still very opinionated and currently only includes a handful of collections. Some basic features, like sorting and filtering, have been added to the interface, and most of the back-end work has been automated. Here are some of the difficulties that are faced:
- 20% of NPM packages don’t have a repository property in their package.json and so, even if hosted on GitHub, it’s not always possible to establish that link. That link is important to measure popularity.
- Some NPM packages are forks or clones. Most of these are not that relevant because they only contain temporary fixes, that have meanwhile been added to the original repository, or are simply minor variations.
- Many packages are created out of experiments or to solve the problem of a specific team. They are not meant for public consumption and may not even have a README. It makes sense to ignore them in this kind of catalog.
- Creators care about how their project’s READMEs look on GitHub, but don’t pay as much attention on the associated NPM profiles. As a result, relative links and images are sometimes broken outside GitHub.
- Support for free-form keywords is great, but for exploring, a strict set of categories may also be helpful.
- All projects have constraints and it’s helpful to filter out packages that don’t match certain dependencies, don’t support some platforms (eg: Android in React Native) or follow approaches incompatible with the project you are working on (eg: Inline Styles in React).
Keep in mind that this is the first beta release. All feedback is welcomed!