Git Product home page Git Product logo

directory's Introduction

React Native Directory Logo

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

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": "<OPTIONALL 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
}

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, becouse 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 metrials, and please avoid linking multiple resources which shows the same feature.

📱 Platforms

  • ios

    (boolean) - works on iOS device.
  • android

    (boolean) - works on Android 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.

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

directory's People

Contributors

alexbrazier avatar bell-steven avatar brentvatne avatar dependabot[bot] avatar dominicstop avatar gorhom avatar jaimecbernardo avatar jimmylee avatar jonsamp avatar khalisafkari avatar kpose avatar lfkwtz avatar luism3861 avatar lwinkyawmyat avatar matt-oakes avatar mitulsavani avatar mrousavy avatar naturalclar avatar noitidart avatar oblador avatar panz3r avatar prscx avatar retyui avatar safaiyeh avatar serranoarevalo avatar simek avatar turnrye avatar vonovak avatar wonday avatar xcarpentier avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.