{"id":13727284,"url":"https://github.com/react-native-community/directory","last_synced_at":"2025-05-14T04:08:42.839Z","repository":{"id":36953683,"uuid":"95184724","full_name":"react-native-community/directory","owner":"react-native-community","description":"A searchable and filterable directory of React Native libraries.","archived":false,"fork":false,"pushed_at":"2025-05-11T19:04:18.000Z","size":23712,"stargazers_count":1184,"open_issues_count":23,"forks_count":624,"subscribers_count":23,"default_branch":"main","last_synced_at":"2025-05-11T20:18:32.859Z","etag":null,"topics":["directory","expo","react-native","react-native-macos","react-native-tvos","react-native-web","react-native-windows","registry"],"latest_commit_sha":null,"homepage":"https://reactnative.directory","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/react-native-community.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-06-23T05:02:21.000Z","updated_at":"2025-05-11T19:04:22.000Z","dependencies_parsed_at":"2024-03-08T11:30:45.470Z","dependency_job_id":"d0fb34e7-a3f5-4fd8-bf1f-daa7a4e47ef2","html_url":"https://github.com/react-native-community/directory","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/react-native-community%2Fdirectory","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/react-native-community%2Fdirectory/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/react-native-community%2Fdirectory/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/react-native-community%2Fdirectory/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/react-native-community","download_url":"https://codeload.github.com/react-native-community/directory/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254069888,"owners_count":22009558,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["directory","expo","react-native","react-native-macos","react-native-tvos","react-native-web","react-native-windows","registry"],"created_at":"2024-08-03T01:03:47.927Z","updated_at":"2025-05-14T04:08:37.813Z","avatar_url":"https://github.com/react-native-community.png","language":"TypeScript","readme":"\u003cdd align=\"center\"\u003e\u003cimg alt=\"React Native Directory Logo\" height=\"64\" src=\"./assets/logo.png\" /\u003e\u003c/dd\u003e\n\u003ch1 align=\"center\"\u003eReact Native Directory\u003c/h1\u003e\n\u003ch3 align=\"center\"\u003e\n  \u003ca href=\"https://reactnative.directory/\"\u003e\n    https://reactnative.directory\n  \u003c/a\u003e\n\u003c/h3\u003e\n\u003cp align=\"center\"\u003eReact Native Directory is a website where you can see all the libraries that are compatible with React Native.\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://vercel.com/?utm_source=rndir\u0026utm_campaign=oss\"\u003e\n    \u003cimg src=\"https://www.datocms-assets.com/31049/1618983297-powered-by-vercel.svg\" alt=\"Powered by Vercel\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## How do I know I'm at the right place?\n\n- You made a repository on GitHub and you want the world to know it works with React Native.\n- You want to submit a pull request to improve React Native Directory or libraries dataset.\n- You want to report a bug or make a suggestion.\n\n## How do I update the data for a library?\n\n- Find the entry for the library in [`react-native-libraries.json`](https://github.com/react-native-community/directory/blob/main/react-native-libraries.json) file. (Not there? [Add it to the directory](#how-do-i-add-a-library).)\n- Update the entry with the new data. Use the [library fields description](#library-fields-description) as a guide.\n- Submit a PR.\n\n## How do I add a library?\n\n- Add it **at the end** of [`react-native-libraries.json`](https://github.com/react-native-community/directory/blob/main/react-native-libraries.json) file (we use the order in that file for \"Recently added\" sort option).\n- Use the [template](#new-library-entry-template) as a guide.\n- Submit a PR.\n\n### New library entry template\n\n\u003e [!IMPORTANT]\n\u003e 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.\n\u003e You can find the detailed descriptions of the fields below the entry template.\n\n```json\n{\n  \"githubUrl\": \"\u003cGITHUB REPOSITORY URL\u003e\",\n  \"npmPkg\": \"\u003cOPTIONAL NPM PACKAGE NAME\u003e\",\n  \"examples\": [\n    \"\u003cTHE URL TO REPO\u003e\",\n    \"\u003cTHE URL TO A SNACK\u003e\"\n  ],\n  \"images\": [\"\u003cPUBLIC URL TO RELATED IMAGE\u003e\"],\n  \"ios\": false,\n  \"android\": false,\n  \"web\": false,\n  \"windows\": false,\n  \"macos\": false,\n  \"tvos\": false,\n  \"visionos\": false,\n  \"expoGo\": false,\n  \"fireos\": false,\n  \"unmaintained\": false,\n  \"dev\": false,\n  \"template\": false,\n  \"newArchitecture\": false\n}\n```\n\n\u003e [!NOTE]\n\u003e If your package is within a monorepo on GitHub, eg: https://github.com/expo/expo/tree/main/packages/expo-web-browser,\n\u003e then the name, description, homepage, and topics (keywords) will be extracted from `package.json` in the package subdirectory.\n\u003e However, GitHub stats will be based on the monorepo, because there isn't really another option.\n\n\n### Library fields description\n\n#### ⚙️ General\n\n- #### ❗ `githubUrl` **(required)**\n\n  **(string)** - URL to the package GitHub repository (currently other Git hosts are not supported).\n\u003e [!WARNING]\n\u003e Package also needs to be published to the NPM registry, because it is a source of crucial data for the directory.\n\n- #### `npmPkg`\n\n  **(string)** - npm package name, by default GitHub repository name will be used. Example: `\"@expo/react-native-action-sheet\"`.\n\n\u003e [!TIP]\n\u003e Fill `npmPkg` only when the GitHub repository name is different from the name of package published to npm, or the package is a part of monorepo.\n\n- #### `examples`\n  **(array of strings)** - URLs to example projects or Snacks which demonstrates the library.\n- #### `images`\n\n  **(array of strings)** - URLs to static images or GIFs that shows the library functionality.\n\n\u003e [!TIP]\n\u003e Please do not add logotypes or other branding materials to the `images` array, and please avoid linking multiple assets which shows the same feature.\n\n#### 📱 Platforms\n\n- #### `android`\n  **(boolean)** - works on Android device.\n- #### `ios`\n  **(boolean)** - works on iOS device.\n- #### `web`\n  **(boolean)** - can be used with [`react-native-web`](https://github.com/necolas/react-native-web).\n\n#### 🖥️ Out-of-tree Platforms\n\n\u003e [!IMPORTANT]\n\u003e Adding out-of-tree platforms support requires an example or link to the app which uses the library on the given platform.\n\n- #### `windows`\n  **(boolean)** - can be used with [`react-native-windows`](https://github.com/microsoft/react-native-windows).\n- #### `macos`\n  **(boolean)** - can be used with [`react-native-macos`](https://github.com/microsoft/react-native-macos).\n- #### `tvos`\n  **(boolean)** - can be used with [`react-native-tvos`](https://github.com/react-native-tvos/react-native-tvos).\n- #### `visionos`\n  **(boolean)** - can be used with [`react-native-visionos`](https://github.com/callstack/react-native-visionos).\n\n#### ✅ Compatibility\n\n- #### `expoGo`\n  **(boolean)** - works with [Expo Go](https://docs.expo.dev/get-started/expo-go/) — an open-source sandbox app, without using [dev clients](https://docs.expo.dev/develop/development-builds/introduction/) or [prebuild](https://docs.expo.dev/workflow/continuous-native-generation/).\n- #### `fireos`\n  **(boolean)** - works on Amazon Fire OS.\n\n\u003e [!TIP]\n\u003e **Any** library can be used with Expo, if you use dev clients or prebuild.\n\n#### 🏷️ Tags\n\n- #### `unmaintained`\n  **(boolean)** - signify that a library is no longer maintained. You can provide alternative or replacement libraries with the `alternatives` field, if needed.\n- #### `dev`\n  **(boolean)** - signify that a library is a development tool or is only a part of development process.\n- #### `template`\n  **(boolean)** - signify that a library is a new project template.\n- #### `newArchitecture`\n  **(boolean)** - signify that a library supports, or not, the New Architecture. Skipping the field will result in \"untested\" status, unless automatic support detection returned a result. You can provide additional context with the `newArchitectureNote` field, if needed.\n\n\u003e [!TIP]\n\u003e Set `newArchitecture` field only when automatic architecture detection fails for your package, despite it supports the New Architecture.\n\n### 📝 Additional context for tags\n\n- #### `newArchitectureNote`\n  **(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.\n\n- #### `alternatives`\n  **(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.\n\n## How do I run my own version locally?\n\n#### Prerequisites\n\n- [Bun (1.2+)](https://bun.sh/)\n\n#### Commands\n\n```sh\nbun install \u0026\u0026 bun start\n```\n\nYou should be able to visit `localhost:3000` in your browser.\n\n## How do I run `bun data:update` with keys?\n\n- Visit https://github.com/settings/developers to get your keys (don't worry about the callback URL, put whatever you want).\n- Load the `GITHUB_TOKEN` environment variable into your shell.\n\nThis command creates site data in `./assets/data.json`\n\n```sh\nGITHUB_TOKEN=\u003c*\u003e bun data:update\n```\n\n## How do I deploy to production?\n\nGet a commit on `main` and it will be automatically deployed.\n\n## I don't like your website, can I hit an API instead and build my own better stuff?\n\nSure, go for it!\n\n```\nhttps://reactnative.directory/api/libraries\n```\n\n- Returns a list of all libraries in `JSON` format.\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003eMore details on API queries\u003c/b\u003e\u003c/summary\u003e\n  \u003cbr/\u003e\n\n  ```\n  https://reactnative.directory/api/libraries?search=webgl\n  ```\n  \n  - Returns a list of all libraries in `JSON` format that have the keyword `webgl`.\n  \n  ```\n  https://reactnative.directory/api/libraries?search=webgl\u0026expoGo=true\n  ```\n  \n  - Returns a list of all libraries in `JSON` format that have the keyword `webgl` and work with Expo Go app.\n  \n  ```\n  https://reactnative.directory/api/libraries?search=webgl\u0026expoGo=true\u0026android=true\n  ```\n  \n  - Returns a list of all libraries in `JSON` format that have the keyword `webgl`, work with Expo Go app and Android.\n  \n  ```\n  https://reactnative.directory/api/libraries?search=webgl\u0026expoGo=true\u0026android=true\u0026isPopular=true\n  ```\n  \n  - Returns a list of all libraries in `JSON` format that have the keyword `webgl`, work with Expo Go app, Android and are popular based on the scoring criterion.\n  \n  All the possible query parameters represents [`Query` type](https://github.com/react-native-community/directory/blob/main/types/index.ts#L14-L36).\n\u003c/details\u003e\n\n## I don't like how you calculate scores.\n\n- Submit a PR with changes to `scripts/calculate-score.js`.\n- You have all the power! Tell us what you want.\n\n## How do I deploy my own version of this?\n\n- Site is hosted on Vercel, and this is the easiest way to do it.\n- You can deploy your own with your own Vercel account\n- You will need to provide `GITHUB_TOKEN` environment variable in your Vercel configuration.\n\n```sh\n# once environment variables are configured, install Vercel and deploy\nbunx vercel\n```\n","funding_links":[],"categories":["TypeScript","HarmonyOS"],"sub_categories":["Windows Manager"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freact-native-community%2Fdirectory","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freact-native-community%2Fdirectory","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freact-native-community%2Fdirectory/lists"}