Re.Pack is a Webpack-based toolkit to build your React Native application with full support of the Webpack ecosystem

github DOCSapi DOCS

how does it work?

Meet <repack>Re.Pack<repack>

Re.Pack (@repack_rn) is an Open Source toolkit that uses Webpack 5 and React Native CLI's plugin system to allow developers to bundle React Native apps using Webpack features.

The toolkit provides developers with the full Webpack ecosystem of plugins and loaders that can be used in building advanced mobile applications that benefit from the code splitting including:

  • super apps
  • mini apps
  • modular apps
  • underperforming apps
  • apps that require advanced custom solutions

Created by Paweł Trysła (@_zamotany) - one of our lead engineers.

features

What’s <repack>cool about<repack> Re.Pack?

Full Webpack ecosystem of plugins and loaders

Make use of full Webpack features. Use a plethora of configuration options to adjust the bundling to your needs. Take modules resolution into your hand and freely use functionalities like symlinks or unconventional project structure. Check plugins

Develop and bundle for any platform

Use built-in support for Android and iOS or bring support for your out-of-tree platform. Everything is configurable, nothing is hardcoded.

Built-in Flipper support

Use Flipper platform to inspect Application logs, Development server logs, React component tree with React DevTools, Layout, Network, Crashes and more.

Fully-featured development server

Build your application with ease. Take advantage of built-in support for Hot Module Replacement and React Refresh, symbolication and Remote JavaScript debugging support. Check the feature list

Asynchronous chunks support

Use asynchronous chunks to split your bundle into multiple files and load them on-demand improving initial loading times. Split your code using dynamic import() function or manually declare them inside your Webpack config. Read more

Configure it your way

Take full control over the Webpack configuration. Use our APIs - plugins and utilities - to make Webpack-produced bundle compatible with React Native. Check the template

Check out the full list of Re.Pack features

Use cases

What can <repack>you achieve<repack> with Re.Pack?

Modular apps

Use code splitting to expose different functionalities or different UIs based on the user's details.
Taking an e-learning app for example:
Code splitting allows developers to separate student’s and teacher’s functionalities. Thanks to that the application loads either of them while decreasing the initial download size of the app and improving startup performance by loading only relevant code.


Super apps

Streamline the development and simplify management of your apps on the App Store and Google Play 

Both super apps and mini apps stores are applications built from smaller, dedicated mini apps. Instead of having multiple super apps and mini apps on the App Store and Google Play combine them into a single one while streamlining the development and simplifying management.


Better performing apps

Provide better user experience by improving startup performance of your React Native apps

Thanks to the loading-on-demand functionality load only the necessary pieces of the code and postpone the load of others while improving startup performance (TTR/TTI) in underperforming apps.


Advanced and custom solutions

Use Re.Pack to create solutions for custom needs in React Native apps using advanced features and configuration options 

Re.Pack allows developers to leverage all Webpack features and enables them to create custom and extraordinary solutions which would otherwise require hacky, unstable or unmaintainable setup.


Need help with optimizing React Native apps with code splitting? Talk to us!

contact us