Skip to content

A searchable and filterable directory of React Native libraries

License

Notifications You must be signed in to change notification settings

Flair-Dev/directory

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

React Native Directory

React Native Directory is a website where you can see all the libraries that are compatible with React Native.

How do I know I'm at the right place?

  • 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.
  • You want to report a bug or make a suggestion.

I don't like your website, can I hit an API instead and build my own better stuff?

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 keyword webgl.

https://reactnative.directory/api/libraries?search=webgl&expo=true

  • Returns a list of all libraries in JSON format that have the keyword webgl 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 keyword webgl 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 keyword webgl, work with Expo managed and Android and are popular based on the scoring criterion.

I don't like how you calculate health scores.

  • Submit a PR with changes to scripts/calculate-score.js.
  • You have all the power! Tell us what you want.

How do I add a library?

  • Add it to react-native-libraries.json.
  • 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,
  "unmaintained": false,
  "dev": false
}

Please skip the false values and do not fill optional fields, unless it's necessary.

Field descriptions

  • githubUrl - (required string) - URL to the GitHub repository (currently other git hosts are not supported).
  • npmPkg - (optional string) - npm package name (fill only when the GitHub repository name is different from the name of package published to npm).
  • nameOverride - (optional string) - display name override (fill only when it is different from the GitHub repository name and npm package name).
  • examples - (optional array of strings) - URLs to example projects (Snacks preferred) or with demonstrations of the library.
  • images - (optional array of strings) - URLs to images that will show up in the listing to preview the library functionality.
  • ios - (optional boolean) - works on iOS device.
  • android - (optional boolean) - works on Android device.
  • web - (optional boolean) - can be used with react-native-web.
  • expo - (optional boolean) - can be used in managed workflow, without ejecting an Expo application (any library can be used if you eject).
  • windows - (optional boolean) - can be used with react-native-windows.
  • macos - (optional boolean) - can be used with react-native-macos.
  • unmaintained - (optional boolean) - signify that a library is not maintained.
  • dev - (optional boolean) - signify that a library is a development tool.

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.

How do I run my own version locally?

Prerequisites

  • Node LTS

Commands

With npm
npm install
npm start
With yarn
yarn
yarn start

You should be able to visit localhost:3000 in your browser.

How do I run npm run data:update with keys?

This command creates site data in ./assets/data.json

GITHUB_TOKEN=<*> npm run data:update

How do I deploy my own version of this?

  • Site is hosted on Now, and this is the easiest way to do it.
  • You can deploy your own with your own Now 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

How do I deploy to production?

Get a commit on master and it will be automatically deployed.

About

A searchable and filterable directory of React Native libraries

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 71.6%
  • JavaScript 28.3%
  • Other 0.1%