React Native Directory is a website where you can see all the libraries that are compatible with React Native.
- You made a repository on GitHub and you want the world to know it works with React Native.
- You want to submit a pull request to improve React Native Directory or libraries dataset.
- You want to report a bug or make a suggestion.
- Add it at the end of
react-native-libraries.json
file. - Submit a PR.
Please follow this format, fields order and indentation:
{
"githubUrl": "<GITHUB REPOSITORY URL>",
"npmPkg": "<NPM PACKAGE NAME>",
"nameOverride": "<PACKAGE DISPLAY NAME>",
"examples": ["<THE URL TO REPO>", "<THE URL TO A SNACK>"],
"images": ["<PUBLIC URL TO RELATED IMAGE>"],
"ios": false,
"android": false,
"web": false,
"expo": false,
"windows": false,
"macos": false,
"tvos": false,
"unmaintained": false,
"dev": false,
"template": false
}
Please skip any of the false
values and do not fill optional fields, unless it's necessary.
- (required string) - URL to the GitHub repository (currently other git hosts are not supported).
-
(optional string) - npm package name, by default GitHub repository name will be used (fill only when the GitHub repository name is different from the name of package published to npm, or package is a a part of - monorepo). Example:
"@expo/react-native-action-sheet"
. - (optional string) - display name override (fill only when it is different from the GitHub repository name and npm package name).
- (optional array of strings) - URLs to example projects (Snacks preferred) or with demonstrations of the library.
- (optional array of strings) - URLs to images that will show up in the listing to preview the library functionality.
- (optional boolean) - works on iOS device.
- (optional boolean) - works on Android device.
-
(optional boolean) - can be used with
react-native-web
. - (optional boolean) - can be used in managed workflow, without ejecting an Expo application (any library can be used if you eject).
-
(optional boolean) - can be used with
react-native-windows
. -
(optional boolean) - can be used with
react-native-macos
. -
(optional boolean) - can be used with
react-native-tvos
.
- (optional boolean) - signify that a library is no longer maintained.
- (optional boolean) - signify that a library is a development tool or is only a part of development process.
- (optional boolean) - signify that a library is a new project template.
Note: If your package is within a monorepo on GitHub, eg: https://github.com/expo/expo/tree/master/packages/expo-web-browser, then the name, description, homepage, and topics (keywords) will be extracted from package.json for that subrepo. GitHub stats will be based on the monorepo, because there isn't really another option.
- Node LTS
yarn
yarn start
You should be able to visit localhost:3000
in your browser.
- Visit https://github.com/settings/developers to get your keys (don't worry about the callback URL, put whatever you want).
- Load the
GITHUB_TOKEN
environment variable into your shell.
This command creates site data in ./assets/data.json
GITHUB_TOKEN=<*> yarn data:update
Get a commit on master
and it will be automatically deployed.
Sure, go for it!
https://reactnative.directory/api/libraries
- Returns a list of all libraries in
JSON
format.
https://reactnative.directory/api/libraries?search=webgl
- Returns a list of all libraries in
JSON
format that have the keywordwebgl
.
https://reactnative.directory/api/libraries?search=webgl&expo=true
- Returns a list of all libraries in
JSON
format that have the keywordwebgl
and work with Expo managed.
https://reactnative.directory/api/libraries?search=webgl&expo=true&android=true
- Returns a list of all libraries in
JSON
format that have the keywordwebgl
and work with Expo managed and Android.
https://reactnative.directory/api/libraries?search=webgl&expo=true&android=true&isPopular=true
- Returns a list of all libraries in
JSON
format that have the keywordwebgl
, work with Expo managed and Android and are popular based on the scoring criterion.
- Submit a PR with changes to
scripts/calculate-score.js
. - You have all the power! Tell us what you want.
- Site is hosted on Vercel, and this is the easiest way to do it.
- You can deploy your own with your own Vercel account
- You will need to provide
GITHUB_TOKEN
environment variable in your Vercel configuration.
# once environment variables are configured, install Vercel and deploy
npm i -g vercel
vercel