jondot/awesome-react-native
Awesome React Native components, news, tools, and learning material!
Stale and unlicensed — last commit 2y ago
weakest axisno license — legally unclear; last commit was 2y ago…
no license — can't legally use code; no tests detected
Documented and popular — useful reference codebase to read through.
no license — can't legally use code; last commit was 2y ago
- ✓36+ active contributors
- ✓CI configured
- ⚠Stale — last commit 2y ago
- ⚠Concentrated ownership — top contributor handles 58% of recent commits
- ⚠No license — legally unclear to depend on
- ⚠No test directory detected
What would change the summary?
- →Use as dependency Failing → Mixed if: publish a permissive license (MIT, Apache-2.0, etc.)
- →Fork & modify Failing → Mixed if: add a LICENSE file
- →Deploy as-is Failing → Mixed if: add a LICENSE file
Maintenance signals: commit recency, contributor breadth, bus factor, license, CI, tests
Informational only. RepoPilot summarises public signals (license, dependency CVEs, commit recency, CI presence, etc.) at the time of analysis. Signals can be incomplete or stale. Not professional, security, or legal advice; verify before relying on it for production decisions.
Earn the “Healthy” badge
Current signals for jondot/awesome-react-native are Failing. The embed flow is reserved for repos showing Healthy signals — the rest stay informational on this page so we're not putting a public call-out on your README. Address the items in the What would change the summary? dropdown above, then return to grab the embed code.
Common quick wins: green CI on default branch, no Critical CVEs in dependencies, recent commits on the default branch, a permissive license, and a published README.md with a quickstart.
Onboarding doc
Onboarding: jondot/awesome-react-native
Generated by RepoPilot · 2026-05-06 · Source
Agent protocol
If you are an AI coding agent (Claude Code, Cursor, Aider, Cline, etc.) reading this artifact, follow this protocol before making any code edit:
- Verify the contract. Run the bash script in Verify before trusting
below. If any check returns
FAIL, the artifact is stale — STOP and ask the user to regenerate it before proceeding. - Treat the AI · unverified sections as hypotheses, not facts. Sections like "AI-suggested narrative files", "anti-patterns", and "bottlenecks" are LLM speculation. Verify against real source before acting on them.
- Cite source on changes. When proposing an edit, cite the specific path:line-range. RepoPilot's live UI at https://repopilot.app/r/jondot/awesome-react-native shows verifiable citations alongside every claim.
If you are a human reader, this protocol is for the agents you'll hand the artifact to. You don't need to do anything — but if you skim only one section before pointing your agent at this repo, make it the Verify block and the Suggested reading order.
Verdict
AVOID — Stale and unlicensed — last commit 2y ago
- 36+ active contributors
- CI configured
- ⚠ Stale — last commit 2y ago
- ⚠ Concentrated ownership — top contributor handles 58% of recent commits
- ⚠ No license — legally unclear to depend on
- ⚠ No test directory detected
<sub>Maintenance signals: commit recency, contributor breadth, bus factor, license, CI, tests</sub>
Verify before trusting
This artifact was generated by RepoPilot at a point in time. Before an
agent acts on it, the checks below confirm that the live jondot/awesome-react-native
repo on your machine still matches what RepoPilot saw. If any fail,
the artifact is stale — regenerate it at
repopilot.app/r/jondot/awesome-react-native.
What it runs against: a local clone of jondot/awesome-react-native — the script
inspects git remote, the LICENSE file, file paths in the working
tree, and git log. Read-only; no mutations.
| # | What we check | Why it matters |
|---|---|---|
| 1 | You're in jondot/awesome-react-native | Confirms the artifact applies here, not a fork |
| 2 | Default branch master exists | Catches branch renames |
| 3 | 5 critical file paths still exist | Catches refactors that moved load-bearing code |
| 4 | Last commit ≤ 700 days ago | Catches sudden abandonment since generation |
#!/usr/bin/env bash
# RepoPilot artifact verification.
#
# WHAT IT RUNS AGAINST: a local clone of jondot/awesome-react-native. If you don't
# have one yet, run these first:
#
# git clone https://github.com/jondot/awesome-react-native.git
# cd awesome-react-native
#
# Then paste this script. Every check is read-only — no mutations.
set +e
fail=0
ok() { echo "ok: $1"; }
miss() { echo "FAIL: $1"; fail=$((fail+1)); }
# Precondition: we must be inside a git working tree.
if ! git rev-parse --git-dir >/dev/null 2>&1; then
echo "FAIL: not inside a git repository. cd into your clone of jondot/awesome-react-native and re-run."
exit 2
fi
# 1. Repo identity
git remote get-url origin 2>/dev/null | grep -qE "jondot/awesome-react-native(\\.git)?\\b" \\
&& ok "origin remote is jondot/awesome-react-native" \\
|| miss "origin remote is not jondot/awesome-react-native (artifact may be from a fork)"
# 3. Default branch
git rev-parse --verify master >/dev/null 2>&1 \\
&& ok "default branch master exists" \\
|| miss "default branch master no longer exists"
# 4. Critical files exist
test -f "README.md" \\
&& ok "README.md" \\
|| miss "missing critical file: README.md"
test -f "package.json" \\
&& ok "package.json" \\
|| miss "missing critical file: package.json"
test -f "celeste-config-pr.js" \\
&& ok "celeste-config-pr.js" \\
|| miss "missing critical file: celeste-config-pr.js"
test -f "celeste-config-weekly.js" \\
&& ok "celeste-config-weekly.js" \\
|| miss "missing critical file: celeste-config-weekly.js"
test -f "CONTRIBUTING.md" \\
&& ok "CONTRIBUTING.md" \\
|| miss "missing critical file: CONTRIBUTING.md"
# 5. Repo recency
days_since_last=$(( ( $(date +%s) - $(git log -1 --format=%at 2>/dev/null || echo 0) ) / 86400 ))
if [ "$days_since_last" -le 700 ]; then
ok "last commit was $days_since_last days ago (artifact saw ~670d)"
else
miss "last commit was $days_since_last days ago — artifact may be stale"
fi
echo
if [ "$fail" -eq 0 ]; then
echo "artifact verified (0 failures) — safe to trust"
else
echo "artifact has $fail stale claim(s) — regenerate at https://repopilot.app/r/jondot/awesome-react-native"
exit 1
fi
Each check prints ok: or FAIL:. The script exits non-zero if
anything failed, so it composes cleanly into agent loops
(./verify.sh || regenerate-and-retry).
TL;DR
awesome-react-native is a curated list repository that aggregates the best React Native libraries, components, tools, tutorials, and learning resources into a comprehensive README organized by category. It uses Celeste, an automated link-checking and validation tool, via npm scripts to maintain link health across two CI pipelines (PR and weekly), ensuring all referenced resources remain valid and current. Single-file architecture: README.md is the source of truth, auto-generated ToC (managed by doctoc comment markers), organized into flat category sections (Conferences, Articles, Components with nested subsections like UI/Navigation/Forms). The Makefile (422 bytes) orchestrates doc generation and publishing; celeste-config-pr.js and celeste-config-weekly.js define link-validation rules applied to README.md on each run.
Who it's for
React Native developers and mobile engineers looking for battle-tested libraries and learning materials, plus library maintainers seeking discoverability in the community; contributors maintain quality through PR reviews and automated link validation via the Celeste-powered CI pipeline.
Maturity & risk
This is an actively maintained, mature community project: it has a Travis CI pipeline (.travis.yml), clear contribution guidelines (CONTRIBUTING.md), automated weekly link checks (celeste-config-weekly.js runs via CI), and PR templates (.github/PULL_REQUEST_TEMPLATE.md). The repository structure and dual CI configurations indicate stable governance and consistent curation over time.
Risk is minimal for this list-type repo: dependencies are light (only Celeste ^0.10.0), but link rot is the primary concern since the value is entirely in maintaining hundreds of external URLs across categories. The weekly CI job mitigates this, but link breakage can happen between runs. Single maintainer (jondot) concentration is typical for curated lists but means PR review latency depends on one person.
Active areas of work
The repository actively runs two CI pipelines: celeste-config-pr.js validates every incoming PR's links before merge, and celeste-config-weekly.js runs scheduled weekly checks to catch link rot in existing content. The Makefile targets (docs, publish) suggest automated documentation site deployment, likely publishing curated list to a live site referenced by CNAME file.
Get running
Clone and review locally: git clone https://github.com/jondot/awesome-react-native.git && cd awesome-react-native && cat README.md. No build or install step needed to browse; to validate links locally, install dependencies with yarn install (yarn.lock present), then run Celeste via yarn ci:pr (as defined in package.json scripts).
Daily commands:
This is not a runnable application—it's a documentation repository. To validate link health locally (main development task): yarn install && yarn ci:pr validates links in README.md as configured by celeste-config-pr.js. To generate docs site: make docs (Makefile target, requires mkdocs and Python dependencies from requirements.txt).
Map of the codebase
README.md— The curated list of React Native libraries, tools, and resources that forms the entire value of this repository—every contributor must understand the categorization and quality standardspackage.json— Defines the build pipeline using Celeste for automated link validation and content refresh—required to understand the CI/CD workflowceleste-config-pr.js— Configuration for pull request validation that checks link integrity and content quality—critical for understanding how contributions are validatedceleste-config-weekly.js— Configuration for weekly automated content refresh to ensure links remain valid—essential for understanding ongoing maintenance automationCONTRIBUTING.md— Documents contribution guidelines and quality standards that every new contributor must follow before submitting PRs.travis.yml— CI/CD pipeline configuration that runs automated validation on every commit and PRmkdocs.yml— Configuration for documentation site generation and deployment
Components & responsibilities
- README.md (Content Layer) (Markdown, Git) — Curated Markdown list of React Native libraries, tools, tutorials, and resources organized by category
- Failure mode: Broken links, outdated entries, poor categorization reduce list usefulness; mitigated by Celeste validation
- Celeste Validator (Node.js, npm) — Automated tool that checks URL validity and content structure; ensures quality gates on PRs and performs weekly maintenance
- Failure mode: False positives (valid sites flagged as broken) block PRs; false negatives (broken links missed) reduce list quality
- MkDocs Generator (Python, MkDocs, Jinja2) — Converts Markdown documentation into static HTML site with theming and styling
- Failure mode: Broken build prevents deployment; styling issues degrade user experience
- Travis CI Orchestrator (YAML, Bash, Git hooks) — Coordinates validation, build, and deployment steps on every commit; enforces quality gates on PRs
- Failure mode: Pipeline failures block merges; misconfiguration can deploy broken content
- GitHub Pages Hosting (GitHub Pages, DNS) — Serves pre-built static site to users via custom domain (CNAME)
How to make changes
Add a new React Native library or tool to the list
- Open README.md and locate the appropriate category section (Components, Navigation, State Management, etc.) (
README.md) - Add a new entry following the existing format: Name - Description with key features (
README.md) - Ensure the link is valid and the library is actively maintained (recent commits, community engagement) (
CONTRIBUTING.md) - Commit and push to a feature branch, then submit a PR referencing the PR template (
.github/PULL_REQUEST_TEMPLATE.md) - The CI pipeline (celeste-config-pr.js) will automatically validate the link during PR review (
celeste-config-pr.js)
Update an invalid or broken link (automated weekly check)
- The weekly Celeste validation runs and detects broken links in README.md (
celeste-config-weekly.js) - Find the broken link in README.md and replace it with the correct URL or remove the entry if no longer maintained (
README.md) - Verify the new link is working and commit the fix (
README.md) - Run 'npm run ci:weekly' locally to validate before pushing (
package.json)
Deploy an update to the documentation site
- Make changes to README.md or styling in extra.css (
README.md) - Push to master branch (or merge PR) (
.travis.yml) - Travis CI automatically runs 'npm run refresh-site' which calls 'make docs && make publish' (
Makefile) - MkDocs generates static site from README.md configuration (
mkdocs.yml) - Site deploys to GitHub Pages via CNAME custom domain (
CNAME)
Why these technologies
- Celeste — Lightweight link validator for automated quality checks on curated lists—ensures no broken references in README
- MkDocs — Simple static site generator for documentation-heavy projects; Markdown-native and low overhead for awesome-style lists
- Travis CI — Free CI/CD for open-source repos; integrates seamlessly with GitHub for automated validation on every PR and commit
- GitHub Pages — Free static hosting native to GitHub; CNAME support for custom domain—no infrastructure maintenance needed
- Yarn — Deterministic dependency locking (yarn.lock) ensures reproducible CI builds across environments
Trade-offs already made
-
README.md as single source of truth rather than database-backed content management
- Why: Simplicity, easy contribution workflow (edit file directly), Git history for auditing, works offline
- Consequence: Manual categorization and organization; scaling beyond ~500 entries becomes unwieldy; no dynamic filtering or search (mitigated by static site)
-
Weekly Celeste validation instead of real-time link checking
- Why: Reduces API calls and CI load; weekly cadence sufficient for curated lists where links don't change constantly
- Consequence: Dead links may persist up to 7 days before detection; requires weekly CI execution
-
Static site generation instead of dynamic React/Vue frontend
- Why: Awesome lists are read-heavy, not interactive; static sites load faster, require no server, reduce attack surface
- Consequence: No real-time search, filtering, or user engagement features; limited to GitHub-native discovery
-
Celeste for PR validation rather than custom link checker
- Why: Celeste is purpose-built for awesome-lists, reduces custom code maintenance, community-tested
- Consequence: Locked into Celeste's validation rules; if Celeste stops being maintained, migration required
Non-goals (don't propose these)
- Not a real-time registry or package manager—purely informational curation
- Does not provide dependency resolution or version compatibility checking
- Does not track usage metrics, downloads, or popularity rankings
- Does not offer interactive filtering, search, or advanced querying (static list only)
- Does not manage or host React Native packages—links to external resources only
- Does not provide user accounts, authentication, or personalized recommendations
Traps & gotchas
No hidden traps typical to this repo type, but note: (1) Celeste version is pinned to ^0.10.0—breaking changes in newer Celeste could break CI without explicit update; (2) MkDocs generation requires Python (requirements.txt present), not just Node—ensure both environments are available; (3) .tool-versions file suggests asdf version management—contributors must match specified tool versions or CI may fail; (4) CNAME file indicates DNS custom domain; publishing via Makefile without proper DNS/hosting setup will fail silently.
Architecture
Concepts to learn
- Awesome List Standard — awesome-react-native strictly follows the awesome-list manifesto format and conventions, enabling consistency across 500+ curated lists and making contributions recognizable to the broader community
- Link Rot & Automated Validation — Celeste's link-checking pipeline (running on every PR and weekly) is the core mechanism preventing dead links from degrading list quality; understanding link validation rules in celeste-config-*.js is essential to contributions
- Doctoc Auto-Generated Table of Contents — The README.md uses doctoc markers (<!-- START/DON'T EDIT -->) to auto-generate the ToC; violating or misplacing these markers breaks CI and prevents the list from staying navigable
- Continuous Integration for Content Quality — Travis CI + Celeste creates a two-stage gate (PR validation + weekly link-rot detection) that enforces quality without manual review for every link; understanding the CI workflow is critical for PRs
- Static Site Generation with MkDocs — mkdocs.yml defines how README.md is transformed into a published documentation site; contributors should understand that list structure in README.md directly maps to site navigation
- GitHub PR Template Enforcement — .github/PULL_REQUEST_TEMPLATE.md standardizes PR submissions and likely includes link-validation checklists; understanding expected PR format reduces friction for contributions
- Asdf Version Management — .tool-versions file specifies exact tool versions (Node, Python, etc.) for reproducible local builds; mismatches between contributor and CI environments cause silent failures
Related repos
awesome/awesome— Meta-list of all awesome curated lists; awesome-react-native is one entry and follows the same awesome-list format standardreact-native-community/react-native— Official React Native repository; this awesome list curates third-party libraries and tools that extend React Native's core capabilitiesfacebook/react-native— Original React Native repository by Meta; the canonical source for React Native framework documentation and releases that this list referencesjondot/awesome— Same maintainer's curated awesome lists for other technologies; shares similar structure, Celeste validation, and Makefile-based publishing patternsSpectralOps/teller— Featured sponsor project in README.md (secret manager CLI); demonstrates integration of real projects into awesome-list sponsorship model
PR ideas
To work on one of these in Claude Code or Cursor, paste:
Implement the "<title>" PR idea from CLAUDE.md, working through the checklist as the task list.
Add GitHub Actions workflow to replace Travis CI for automated link validation
The repo currently uses .travis.yml for CI/CD, but Travis CI has deprecated free builds for open source. The package.json shows celeste is used for content validation (PR and weekly configs exist). A GitHub Actions workflow should be created to run these validation scripts automatically on PRs and on a schedule, replacing the outdated Travis CI integration shown in the README badge.
- [ ] Create .github/workflows/validate-links.yml to run 'npm run ci:pr' on pull requests
- [ ] Create .github/workflows/validate-weekly.yml to run 'npm run ci:weekly' on a schedule (e.g., weekly)
- [ ] Update README.md to replace the Travis CI badge with a GitHub Actions badge
- [ ] Remove or archive .travis.yml with a comment explaining the migration
Add a linting workflow for CONTRIBUTING.md compliance validation
The repo has CONTRIBUTING.md guidelines but no automated enforcement. A GitHub Actions workflow could validate that PRs follow the contribution guidelines (link format, section structure, etc.) using markdown linting tools, reducing manual review burden and improving consistency.
- [ ] Create .github/workflows/lint-contributions.yml using markdownlint or similar tool
- [ ] Configure markdownlint rules in .github/linters/.markdownlintrc to match CONTRIBUTING.md standards
- [ ] Set the workflow to run on pull_request events targeting README.md changes
- [ ] Document the linting expectations in CONTRIBUTING.md with examples
Add GitHub Action to validate and auto-update broken sponsor links
The README contains hardcoded sponsor content (Teller/SpectralOps) with external links that may break. A scheduled GitHub Actions workflow could periodically check sponsor link validity and create issues/PRs when links are dead, ensuring the repo maintains functional external references.
- [ ] Create .github/workflows/check-sponsor-links.yml with a link-checking tool (e.g., markdown-link-check)
- [ ] Configure it to run on schedule (e.g., monthly) and check only the ## Sponsors section
- [ ] Set up the workflow to create an issue if broken links are detected
- [ ] Document the sponsor link validation process in CONTRIBUTING.md
Good first issues
- Validate and fix any broken links in the Conferences section by running
yarn ci:prlocally and fixing URLs that return 404 or timeouts, then submit a PR with corrections - Add missing category headers to README.md ToC if any major sections lack proper doctoc markers (<!-- START/DON'T EDIT/END doctoc -->) by examining gaps between manual section headings and auto-generated index
- Create a script to categorize and audit links by last-known-update date in celeste configs, identifying which resource categories have stale content (e.g., 2-year-old articles) to flag for maintainer review
Top contributors
- @jondot — 58 commits
- @boris-92 — 4 commits
- @acostalima — 2 commits
- @robertherber — 2 commits
- @foufrix — 2 commits
Recent commits
23100d5— Merge pull request #1069 from chende008/master (jondot)b717782— Update stars count for react-native-easy-app (chende520)3a203e8— Update README.md (jondot)167e7c0— Create README.md (jondot)b8f0191— Update README.md (jondot)6027d65— Update README.md (jondot)e487bc9— Merge pull request #1011 from sueLan/ry/feature/react-native-anchor-point (jondot)a132c07— Merge pull request #927 from jsamr/typeskill (jondot)6f4a291— Merge pull request #928 from kevinvangelder/patch-6 (jondot)aa6679d— Merge pull request #929 from Boris-Vladimirovich/chain_react_19 (jondot)
Security observations
This is a curated list repository with minimal backend code and infrastructure complexity. The primary security concerns are dependency management and CI/CD configuration. No critical vulnerabilities detected. The codebase lacks hardcoded secrets, injection risks, or complex authentication mechanisms. Main recommendations: perform regular dependency audits, establish a security policy, and ensure CI/CD secrets are properly managed through platform-provided encryption rather than committed files.
- Medium · Outdated Dependency - Celeste —
package.json - dependencies.celeste. The package.json specifies celeste ^0.10.0, which is pinned to a relatively old version. Without a specific lock file review showing current patching, this dependency may contain known vulnerabilities. The caret (^) allows minor/patch updates but older major versions may have unpatched security issues. Fix: Review the celeste changelog and security advisories. Consider updating to the latest stable version or use npm audit to identify known vulnerabilities. Ensure yarn.lock is regularly updated and committed. - Low · CI/CD Configuration Exposure —
.travis.yml. The .travis.yml file is committed to the repository and may contain sensitive CI/CD configuration. Travis CI credentials or environment variables could potentially be exposed if not properly managed. Fix: Ensure no secrets, API tokens, or credentials are hardcoded in .travis.yml. Use Travis CI's built-in encrypted environment variables feature. Review the file contents to confirm no sensitive data is present. - Low · External Image Resources —
README.md. The README.md references external image resources (travis-ci.org badge, GitHub raw content URLs). These external dependencies could be compromised or become unavailable, potentially affecting site integrity. Fix: Consider hosting badge SVGs and images locally or using more resilient badge services. Verify SSL/TLS is enforced for all external resource URLs. - Low · Missing Security Policy —
Repository root. No SECURITY.md or vulnerability disclosure policy found in the repository. This makes it difficult for security researchers to responsibly report vulnerabilities. Fix: Create a SECURITY.md file following GitHub's security policy guidelines. Include information on how to report security issues responsibly.
LLM-derived; treat as a starting point, not a security audit.
Where to read next
- Open issues — current backlog
- Recent PRs — what's actively shipping
- Source on GitHub
Generated by RepoPilot. Verdict based on maintenance signals — see the live page for receipts. Re-run on a new commit to refresh.