|
1 | | -<a href="https://www.callstack.com/open-source?utm_campaign=generic&utm_source=github&utm_medium=referral&utm_content=rnef" align="center"> |
| 1 | +<a href="https://www.callstack.com/open-source?utm_campaign=generic&utm_source=github&utm_medium=referral&utm_content=rock" align="center"> |
2 | 2 | <picture> |
3 | | - <img alt="React Native Enterprise Framework" src="https://github.com/user-attachments/assets/5d7d2dd4-4561-431c-a70b-05a76896b8d4"> |
| 3 | + <img alt="Rock" src="https://github.com/user-attachments/assets/417baa3c-ae36-447f-baf9-1e0f423c3433"> |
4 | 4 | </picture> |
5 | 5 | </a> |
6 | 6 | <p align="center"> |
7 | | - This is a React Native framework for developing large, modular applications for all the platforms supported by React Native. |
| 7 | + 🪨 Rock is a cross-platform React Native app development and build toolchain built for modularity, build reuse, and incremental adoption. It integrates seamlessly with your existing infrastructure, giving you complete control without vendor lock-in. |
8 | 8 | </p> |
9 | 9 |
|
10 | 10 | --- |
11 | 11 |
|
| 12 | +## React Native at scale is challenging |
| 13 | + |
| 14 | +Enterprise apps aren't built overnight. As maintainers of the Community CLI and partners to enterprise teams, we've seen the real challenges: high build times, difficulty adopting new third-party cloud services, and high barriers to introducing React Native into existing iOS and Android apps. |
| 15 | + |
| 16 | +Rock simplifies native build setup and reuse. In most React Native codebases, only about 10% of code changes affect the native iOS/Android files. Yet most teams rebuild their native apps constantly—on every commit, PR, or merge to main—when it's completely unnecessary. |
| 17 | + |
| 18 | +Rock leverages this insight by providing intelligent caching in your cloud infrastructure, seamlessly integrated through its CLI. This allows you to skip up to 90% of unnecessary native builds. |
| 19 | + |
12 | 20 | ## Features |
13 | 21 |
|
14 | | -- 🐾 Incremental adoption in native apps thanks to our simplified brownfield approach |
15 | | -- 🔬 Web-like DX thanks to advanced native build caching hosted on your infra |
16 | | -- 🏰 Pluggable design to leverage out-of-tree platforms, custom bundlers, etc. |
| 22 | +**🖥️ Brand New CLI** |
| 23 | +A familiar CLI experience with end-to-end development and build workflows. Migrate in just 10 minutes. |
| 24 | + |
| 25 | +**☁️ Reusable Cloud Builds** |
| 26 | +Reliable caching of native artifacts (APK, IPA) that you can store wherever you prefer, or use our out-of-the-box integrations with GitHub, S3, and R2. |
| 27 | + |
| 28 | +**🔧 GitHub Actions** |
| 29 | +Complete logic for downloading, uploading, and building native artifacts for iOS (APP, IPA) and Android (APK, AAB). |
| 30 | + |
| 31 | +**🔗 Plug-and-Play Brownfield** |
| 32 | +Package your React Native app as a framework and integrate it into your iOS and Android apps just like any other library. |
| 33 | + |
| 34 | +**📦 Bundler Flexibility** |
| 35 | +Rock supports both Metro and Re.Pack for JavaScript bundling. With Re.Pack, you can build Super Apps and Mobile Microfrontends. |
| 36 | + |
| 37 | +**🔌 Extensible Plugin System** |
| 38 | +Built with modularity in mind, Rock allows you to extend its capabilities through plugins that integrate with both the CLI and native templates. |
17 | 39 |
|
18 | 40 | ## Installation |
19 | 41 |
|
20 | | -For new projects you can run: |
| 42 | +Rock is designed for incremental adoption. Whether you're just starting with React Native in your iOS or Android app, or want to migrate from the React Native Community CLI, you can do it step-by-step without having to figure everything out at once. |
21 | 43 |
|
| 44 | +### Migrating an existing Community CLI project |
| 45 | + |
| 46 | +To migrate an existing project, open a terminal in your project root and run: |
| 47 | + |
| 48 | +```shell |
| 49 | +npm create rock-app |
22 | 50 | ``` |
23 | | -npx @rnef/create-app enterprise |
| 51 | + |
| 52 | +### Creating a new project |
| 53 | + |
| 54 | +To create a fresh React Native app with Rock, open a terminal and run: |
| 55 | + |
| 56 | +```shell |
| 57 | +npm create rock-app |
| 58 | +``` |
| 59 | + |
| 60 | +### Adding to an existing native project |
| 61 | + |
| 62 | +To add React Native to an existing iOS or Android app with Rock, use our Brownfield plugins: |
| 63 | + |
| 64 | +```shell |
| 65 | +npm create rock-app |
| 66 | +# ... |
| 67 | +◆ What plugins do you want to start with? |
| 68 | +│ ◼ brownfield-ios |
| 69 | +│ ◼ brownfield-android |
24 | 70 | ``` |
25 | 71 |
|
26 | | -## Adding to existing projects |
| 72 | +For detailed instructions, please follow our [Integrating with Native Apps](https://rockjs.dev/docs/brownfield/intro) documentation. |
| 73 | + |
| 74 | +## Documentation |
| 75 | + |
| 76 | +Visit [rockjs.dev](https://rockjs.dev) to learn more about the framework, why we created it, how it can be useful to you, and how to use it in more advanced scenarios. |
| 77 | + |
| 78 | +## Contributing |
| 79 | + |
| 80 | +Read our [contributing guidelines](CONTRIBUTING.md) to learn how you can contribute with bug reports, documentation, and code. |
| 81 | + |
| 82 | +## Made with ❤️ at Callstack |
27 | 83 |
|
28 | | -To migrate your existing project, please follow steps described [here](https://rnef.dev/docs/getting-started/migrating-from-community-cli). |
| 84 | +Rock is an open source project and will always remain free to use. If you think it's cool, please star it 🌟. [Callstack](https://www.callstack.com/?utm_source=github.com&utm_medium=referral&utm_campaign=rock&utm_term=readme-with-love) is a group of React and React Native geeks. Contact us at [[email protected]](mailto:[email protected]) if you need any help with these technologies or just want to say hi! |
0 commit comments