• Stars
    star
    1,003
  • Rank 45,765 (Top 1.0 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created over 7 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A searchable and filterable directory of React Native libraries.
React Native Directory Logo

React Native Directory

https://reactnative.directory

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

Powered by Vercel

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

How do I add a library?

  • Add it at the end of react-native-libraries.json file.
  • Submit a PR.

Note Please follow format, fields order and indentation as seen below, skip any of the false values and do not fill optional fields, unless it's necessary.

{
  "githubUrl": "<GITHUB REPOSITORY URL>",
  "npmPkg": "<OPTIONAL NPM PACKAGE NAME>",
  "nameOverride": "<OPTIONAL 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,
  "newArchitecture": false
}

Library fields description

βš™οΈ General

  • ❗ githubUrl (required)

    (string) - URL to the package GitHub repository (currently other Git hosts are not supported).

    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".

    Fill only when the GitHub repository name is different from the name of package published to npm, or the package is a part of monorepo.

  • nameOverride

    (string) - display name override.

    Fill only when it is different from the GitHub repository name and npm package name.

  • 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.

    Please do not add logotypes or other branding material, and please avoid linking multiple resources which shows the same feature.

πŸ“± Platforms

  • android

    (boolean) - works on Android device.
  • ios

    (boolean) - works on iOS device.
  • web

    (boolean) - can be used with react-native-web.
  • expo

    (boolean) - can be used in managed workflow, without ejecting an Expo application (any library can be used if you eject).

πŸ–₯️ Out-of-tree Platforms

Note Adding out-of-tree platforms support requires an example or link to the app which uses the library on the given platform.

🏷️ Tags

  • unmaintained

    (boolean) - signify that a library is no longer maintained.

  • dev

    (boolean) - signify that a library is a development tool or is only a part of development process.

  • template

    (boolean) - signify that a library is a new project template.

  • newArchitecture

    (boolean) - signify that a library supports the new architecture

    Set this tag only when automatic architecture detection fails for your package, despite it supports the new architecture.


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

yarn && yarn start

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

How do I run yarn data:update with keys?

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

GITHUB_TOKEN=<*> yarn data:update

How do I deploy to production?

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

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 scores.

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

How do I deploy my own version of this?

  • 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

More Repositories

1

upgrade-helper

βš›οΈ A web tool to support React Native developers in upgrading their apps.
TypeScript
3,628
star
2

hooks

React Native APIs turned into React Hooks for use in functional React components
TypeScript
3,451
star
3

cli

The React Native Community CLI - command line tools to help you build RN apps
TypeScript
2,374
star
4

react-native-template-typescript

πŸ‘Ύ Clean and minimalist React Native template for a quick start with TypeScript.
Java
1,858
star
5

discussions-and-proposals

Discussions and proposals related to the main React Native project
1,684
star
6

releases

React Native releases
JavaScript
1,501
star
7

rn-diff-purge

Easier React Native upgrades by clearly exposing changes from a version to another. πŸš€ And what better way than to purge, init, then diff? Spoiler: there's no better way. 😎
Shell
1,266
star
8

jsc-android-buildscripts

Script for building JavaScriptCore for Android (for React Native but not only)
JavaScript
1,056
star
9

docker-android

Android Docker Image for React Native and common android development.
Dockerfile
473
star
10

RNNewArchitectureLibraries

A collection of sample React Native Libraries that will show you how to use the New Architecture (Fabric & TurboModules) step-by-step.
322
star
11

upgrade-support

A central community-backed place to request and give help when upgrading your app.
JavaScript
254
star
12

RNNewArchitectureApp

A collection of sample React Native Apps that will show you how to use the New Architecture (Fabric & TurboModules) step-by-step.
201
star
13

react-native-circleci-orb

A CircleCI Orb to Simplify Testing your React Native App
174
star
14

hermes-profile-transformer

TypeScript tool for converting Hermes Sampling Profiler output to Chrome Dev Tools format
TypeScript
86
star
15

boost-for-react-native

The Boost C++ library source code used to build React Native from source
C++
86
star
16

template

The React Native Community Template - getting started building RN apps for Android & iOS
JavaScript
46
star
17

eslint-plugin-react-native-globals

ESLint Environment for React Native
JavaScript
38
star
18

reproducer-react-native

A reproducer to easily recreate bugs and report problems for React Native
TypeScript
32
star
19

developer-experience-wg

Discussions-only repo for topics around React Developer Experience
18
star
20

rn-diff-lib-purge

Easier React Native library upgrades by clearly exposing changes from a version to another. πŸš€ And what better way than to purge, init, then diff? Spoiler: there's no better way. 😎
Shell
3
star