Submit a React Native Block
RNBlocks is completely open-source and GitHub-driven. We keep quality exceptionally high through structured Pull Request reviews.
The GitHub Contribution Workflow
Fork the repository
Fork the official RNBlocks repo to your GitHub account and clone it locally.
git clone https://github.com/Ashwin-Khowala/rnblocks.gitBuild your component
Create a self-contained component in registry/blocks/[your-block-name]/files/ using standard React Native primitives (StyleSheet). Keep it responsive to its container, extract semantic colors at the top of the file, and include accessibility attributes.
Add metadata (registry.json)
Every component requires a registry.json file declaring its name, title, category, dependencies, supported themes, and platforms:
Validate locally
Run pnpm run validate:registry and pnpm run typecheck to verify that your block adheres to schema rules and passes TypeScript checks.
Open a Pull Request
Push your branch to your fork and open a Pull Request against master. Our GitHub Actions CI will automatically run type checking and registry validation.
Review & Published
Once approved and merged, the registry rebuilds automatically. Your block instantly appears in the web gallery and becomes installable via npx rnblocks add [your-block].
Author & Quality Standards
Follow copy → own → customize. No mandatory ThemeProvider wrappers, forced runtime packages, or token abstraction bloat.
Components adapt to container width (tested across 320pt to 428pt+). No hardcoded screen-width assumptions (e.g. width: 390).
Place semantic color constants (COLORS_DARK / COLORS_LIGHT) at the top of the file. Provide theme?: "dark" | "light" where appropriate.
Declare accessibilityRole, accessibilityLabel, reasonable touch targets, sufficient color contrast, and avoid unnecessary re-renders.
All component props and exported interfaces must be strictly typed without any or untyped callback handlers.
Verify that components render without layout errors across iOS, Android, and web previews.