Submit a library
How to get a JavaScript library into the plainjs.com directory: what qualifies, what to send, and what the script checks before it is listed.
The directory lists JavaScript libraries that work in the browser from a script tag or an import, without a build step. Anyone can propose one, including its maintainer. Listing is free, and there is no paid placement.
What qualifies
- It runs in the browser. Node-only packages, framework components and build-tool plugins are out of scope.
- It is published as a file a page can load as it is: a plain script, an ES module, or both, on a CDN such as jsDelivr or in its repository.
- Its source is public, on GitHub, under an open-source licence.
What to send
Email [email protected] with the subject “Library:
- The repository address (
https://github.com/<owner>/<repo>). - The npm package name, if it has one.
- One sentence saying what it does. This is the only text on the entry written by a person.
A form that does this without email is planned; until then, email is the way.
What happens next
The directory’s script fetches the facts from GitHub, npm and jsDelivr: size, licence, dependencies, last release, stars, whether it ships types. It then applies five gates: no runtime dependencies, a file that loads in a browser as it is, no compile-only entry points, an open-source licence, and a project that is not archived or deprecated. All five earn the “No-build verified” badge; a library with one small dependency that passes the rest is “Buildless”. The editors do not decide by hand, and a library that fails a gate is not listed until it passes. The libraries page explains the badges.
An accepted entry appears with the next monthly refresh, with the date its facts were fetched. The same refresh updates every listed entry, so a new release or a changed licence shows up without a new submission.
Already listed
If a fact on your library’s page is wrong after a refresh, or you want the entry removed, write to the same address with the entry’s address. A library whose project is archived, deprecated or gone is retired at the next refresh, and its address leads to the category page.