A searchable and filterable directory of React Native libraries.
See the code
React Native Directory is a website where you can browse through all the libraries that are compatible with React Native.
[!TIP] Are you looking for an integration with VS Code? Check out our official extension:
react-native-libraries.json file. (Not there? Add it to the directory.)react-native-libraries.json file (we use the order in that file for "Recently added" sort option).[!TIP] You can also use the React Native Directory CLI to submit a library directly from the terminal. Run
bunx rn-directory submitfrom the package root folder.
[!IMPORTANT] Please follow format, fields order and indentation as seen below, skip any of the
falsevalues and do not fill optional fields, unless it's necessary. You can find the detailed descriptions of the fields below the entry template.
{
"githubUrl": "<GITHUB REPOSITORY URL>",
"npmPkg": "<OPTIONAL NPM PACKAGE NAME>",
"examples": [
"<THE URL TO REPO>",
"<THE URL TO A SNACK>"
],
"images": ["<PUBLIC URL TO RELATED IMAGE>"],
"ios": false,
"android": false,
"web": false,
"windows": false,
"macos": false,
"tvos": false,
"visionos": false,
"expoGo": false,
"fireos": false,
"harmony": false,
"horizon": false,
"vegaos": false,
"newArchitecture": false,
"configPlugin": false,
"unmaintained": false,
"dev": false
}
[!NOTE] If your package is within a monorepo on GitHub, eg: https://github.com/expo/expo/tree/main/packages/expo-web-browser, then the name, description, homepage, and topics (keywords) will be extracted from
package.jsonin the package subdirectory. However, GitHub stats will be based on the monorepo, because there isn't really another option.
githubUrl (required)(string) - URL to the package GitHub repository (currently other Git hosts are not supported).
[!WARNING] Package also needs to be published to the NPM registry, because it is a source of crucial data for the directory.
npmPkg(string) - npm package name, by default GitHub repository name will be used. Example: "@expo/react-native-action-sheet".
[!TIP] Fill
npmPkgonly when the GitHub repository name is different from the name of package published to npm, or the package is a part of monorepo.
examples(array of strings) - URLs to example projects or Snacks which demonstrates the library.
images(array of strings) - URLs to static images or GIFs that shows the library functionality.
[!TIP] Please do not add logotypes or other branding materials to the
imagesarray, and please avoid linking multiple assets which shows the same feature.
androidioswebreact-native-web.[!IMPORTANT] Adding out-of-tree platforms support requires an example or link to the app which uses the library on the given platform.
windowsreact-native-windows.macosreact-native-macos.tvosreact-native-tvos.visionosreact-native-visionos.[!TIP] Any library can be used with Expo, if you use dev clients or prebuild.
expoGofireosharmonyhorizonvegaosunmaintainedalternatives field, if needed.devconfigPluginnewArchitecturenewArchitectureNote field, if needed.[!TIP] Set
newArchitecturefield only when automatic architecture detection fails for your package, despite it supports the New Architecture.
newArchitectureNote(string) - provide a note for the New Architecture support status, if a boolean "true" or "false" is not sufficient to describe the state of New Architecture support.
alternatives(array of strings) - provide a list of alternatives to the library. eg: ["expo-camera", "react-native-vision-camera"]. This is used to provide a list of alternatives to a library if it is unmaintained or does not support the New Architecture.
bun install && bun start
You should be able to visit localhost:3000 in your browser.
bun data:update with keys?GITHUB_TOKEN environment variable into your shell.USE_LOCAL_DATA_FILE=true to skip fetching and updating store blobs from Vercel and instead use and update the local generated data files.This command creates site data in ./assets/data.json and the separate package dependency index in ./assets/dependants.json.
GITHUB_TOKEN=<*> bun data:update
Get a commit on main and it will be automatically deployed.
Sure, go for it! You can read more details on the public API in the dedicated documentation file.
scripts/calculate-score.ts.GITHUB_TOKEN environment variable in your Vercel configuration.# once environment variables are configured, install Vercel and deploy
bunx vercel
783 followers · starred Jul 2017
102 followers · starred Jun 2021
92 followers · starred Sep 2020
371 followers · starred Jul 2020
A searchable and filterable directory of React Native libraries.
See the code
React Native Directory is a website where you can browse through all the libraries that are compatible with React Native.
[!TIP] Are you looking for an integration with VS Code? Check out our official extension:
react-native-libraries.json file. (Not there? Add it to the directory.)react-native-libraries.json file (we use the order in that file for "Recently added" sort option).[!TIP] You can also use the React Native Directory CLI to submit a library directly from the terminal. Run
bunx rn-directory submitfrom the package root folder.
[!IMPORTANT] Please follow format, fields order and indentation as seen below, skip any of the
falsevalues and do not fill optional fields, unless it's necessary. You can find the detailed descriptions of the fields below the entry template.
{
"githubUrl": "<GITHUB REPOSITORY URL>",
"npmPkg": "<OPTIONAL NPM PACKAGE NAME>",
"examples": [
"<THE URL TO REPO>",
"<THE URL TO A SNACK>"
],
"images": ["<PUBLIC URL TO RELATED IMAGE>"],
"ios": false,
"android": false,
"web": false,
"windows": false,
"macos": false,
"tvos": false,
"visionos": false,
"expoGo": false,
"fireos": false,
"harmony": false,
"horizon": false,
"vegaos": false,
"newArchitecture": false,
"configPlugin": false,
"unmaintained": false,
"dev": false
}
[!NOTE] If your package is within a monorepo on GitHub, eg: https://github.com/expo/expo/tree/main/packages/expo-web-browser, then the name, description, homepage, and topics (keywords) will be extracted from
package.jsonin the package subdirectory. However, GitHub stats will be based on the monorepo, because there isn't really another option.
githubUrl (required)(string) - URL to the package GitHub repository (currently other Git hosts are not supported).
[!WARNING] Package also needs to be published to the NPM registry, because it is a source of crucial data for the directory.
npmPkg(string) - npm package name, by default GitHub repository name will be used. Example: "@expo/react-native-action-sheet".
[!TIP] Fill
npmPkgonly when the GitHub repository name is different from the name of package published to npm, or the package is a part of monorepo.
examples(array of strings) - URLs to example projects or Snacks which demonstrates the library.
images(array of strings) - URLs to static images or GIFs that shows the library functionality.
[!TIP] Please do not add logotypes or other branding materials to the
imagesarray, and please avoid linking multiple assets which shows the same feature.
androidioswebreact-native-web.[!IMPORTANT] Adding out-of-tree platforms support requires an example or link to the app which uses the library on the given platform.
windowsreact-native-windows.macosreact-native-macos.tvosreact-native-tvos.visionosreact-native-visionos.[!TIP] Any library can be used with Expo, if you use dev clients or prebuild.
expoGofireosharmonyhorizonvegaosunmaintainedalternatives field, if needed.devconfigPluginnewArchitecturenewArchitectureNote field, if needed.[!TIP] Set
newArchitecturefield only when automatic architecture detection fails for your package, despite it supports the New Architecture.
newArchitectureNote(string) - provide a note for the New Architecture support status, if a boolean "true" or "false" is not sufficient to describe the state of New Architecture support.
alternatives(array of strings) - provide a list of alternatives to the library. eg: ["expo-camera", "react-native-vision-camera"]. This is used to provide a list of alternatives to a library if it is unmaintained or does not support the New Architecture.
bun install && bun start
You should be able to visit localhost:3000 in your browser.
bun data:update with keys?GITHUB_TOKEN environment variable into your shell.USE_LOCAL_DATA_FILE=true to skip fetching and updating store blobs from Vercel and instead use and update the local generated data files.This command creates site data in ./assets/data.json and the separate package dependency index in ./assets/dependants.json.
GITHUB_TOKEN=<*> bun data:update
Get a commit on main and it will be automatically deployed.
Sure, go for it! You can read more details on the public API in the dedicated documentation file.
scripts/calculate-score.ts.GITHUB_TOKEN environment variable in your Vercel configuration.# once environment variables are configured, install Vercel and deploy
bunx vercel
783 followers · starred Jul 2017
102 followers · starred Jun 2021
92 followers · starred Sep 2020
371 followers · starred Jul 2020