Getting Published

Step 1: Provide good documentation and metadata


Add a file named to the root of your project. A good readme should at the very least answer the following questions:

  • What is it?
  • What state is it in?
  • How do I install it?
  • How do I use it?

Furthermore, providing an example, a change log and explaining how to contribute is a bonus.

NOTE: The readme and other metadata together must total less than 10k bytes in order to be indexed by the search engine. To avoid going over that limit, please keep the contents of the readme to only the essentials, and put extensive documentation and such in a separate markdown file linked to from the readme. This also has the added benefit of improving search relevance., making it easier to find your package when searching for relevant terms.


Fill out the following fields in package.json:

  • description - A short sentence describing the package
  • license - The SPDX License ID of the package license
  • keywords - A list of keywords describing the package
  • homepage - The URL of the project homepage
  • repository - The URL of the source code repository
  • bugs - The URL of the bug tracker

Additionally, a number of other factors are taken into account when calculating a score for the package, which primarily is used as part of search result ranking. This data is blatantly stolen from, who are nice enough to detail the factors taken into account here.

Step 2: Publish to NPM (optional)

Follow the documentation on NPM

Publishing to NPM is not a requirement. If your project is incomplete, experimental or otherwise not yet ready for primetime, it might be easier to just depend on the master branch of the source code repository. You can still submit your package to redex, where it'll then be marked as unpublished. This is not only intended as a warning, but also to highlight opportunities to contribute.

Step 3: Submit to redex

Submitting published and unpublished packages both follow roughly the same process: Add the package to the appropriate collection in sources.json and submit a PR.

  • To submit a published package you should enter the npm name of the package into the published collection.
  • To submit an unpublished package hosted on GitHub you should enter the owner/repository pair into the unpublished collection.
  • To submit an unpublished package hosted elsewhere, please make an issue, so we can add support for the host first.
Submissions are checked manually (with a little help from a linter script). Any remarks will be noted in the PR.