If you have spent any serious time in the React Native ecosystem, you have almost certainly used a Callstack tool without realising it. The Wroclaw-based consultancy and open-source powerhouse has quietly become one of the most influential forces in the React Native community — not through marketing but through consistently excellent engineering. I've been using their tools across projects for three years, and understanding what they've built and why gives you a real edge as a React Native developer.
Who Is Callstack?
Callstack is a React Native consultancy founded in 2015 that has grown into one of the largest contributors to the React Native open-source ecosystem. They maintain the official React Native CLI, employ several React Native core team members, and have pioneered tooling for testing, library authoring, micro-frontend architecture, and UI component design. Their open-source output is remarkable in both volume and quality — every tool solves a real problem they encountered while shipping production apps.
react-native-paper: Material Design Done Right
I've been using react-native-paper in several projects and it consistently impresses me with how thoroughly it implements Material Design 3 without sacrificing customisation. It provides a complete set of production-ready components — buttons, cards, dialogs, text fields, chips, navigation drawers, and more — all built with accessibility, theming, and React Native performance in mind.
import { Button, Card, Text, useTheme } from 'react-native-paper';
function ProductCard({ title, price, onPress }) {
const theme = useTheme();
return (
<Card style={{ margin: 8 }}>
<Card.Content>
<Text variant="titleMedium">{title}</Text>
<Text variant="bodySmall" style={{ color: theme.colors.secondary }}>
${price}
</Text>
</Card.Content>
<Card.Actions>
<Button onPress={onPress}>Add to Cart</Button>
</Card.Actions>
</Card>
);
}
The theming system is one of its strongest features. You define a theme once using MD3LightTheme or MD3DarkTheme as a base, override your brand colours, and every component in the tree inherits the result. Dark mode support comes for free. For teams without a dedicated design system, react-native-paper provides a solid, consistent visual foundation that reduces design debt significantly.
react-native-builder-bob: The Library Scaffolding Standard
react-native-builder-bob has become the de facto standard for creating and building React Native libraries. If you plan to publish a React Native package to npm — whether a UI component, a native module, or a utility library — builder-bob handles the build pipeline so you don't have to wrestle with TypeScript compilation, CommonJS vs ESM output, and native code configuration.
# Scaffold a new library
npx create-react-native-library@latest my-awesome-lib
# Build outputs (configured in package.json)
npx bob build
It supports multiple output targets: CommonJS for older bundlers, ES modules for tree-shaking, and TypeScript declaration files. For libraries with native modules it generates the correct Kotlin and Swift stubs and wires the autolinking configuration. The result is a library that works correctly across Expo managed, Expo bare, and plain React Native projects with zero consumer configuration.
Re.Pack: Webpack for React Native and Micro-Frontends
Re.Pack is Callstack's Webpack-based bundler for React Native, and it solves a problem that Metro — React Native's default bundler — simply cannot: true micro-frontend architecture. In a standard Metro setup, all modules are bundled into a single JavaScript bundle at build time. Re.Pack enables Module Federation, which means you can split your app into independently deployable JavaScript chunks that are loaded at runtime.
This matters enormously for large organisations. A super-app that hosts multiple mini-apps (think WeChat, Grab, or enterprise portals) can ship individual feature teams' code independently without rebuilding and releasing the host app. Each mini-app is a separate Webpack bundle, federated into the host at runtime:
// webpack.config.js (host app)
new Repack.plugins.ModuleFederationPlugin({
name: 'HostApp',
remotes: {
CheckoutMiniApp: 'CheckoutMiniApp@dynamic', // loaded at runtime
ProfileMiniApp: 'ProfileMiniApp@dynamic',
},
})
Haul, Re.Pack's predecessor, was an earlier attempt at Webpack-based bundling for React Native. Callstack officially deprecated it in favour of Re.Pack, which is built on Webpack 5 and supports the full Module Federation specification. If you're still running Haul, the migration path to Re.Pack is well-documented on their site.
React Native Testing Library
Originally created by Callstack engineer Maciej Jastrzebski, @testing-library/react-native is now the recommended testing library for React Native components. It extends the Testing Library philosophy — test behaviour, not implementation — to the mobile context.
import { render, screen, fireEvent } from '@testing-library/react-native';
test('shows error when email is invalid', () => {
render(<LoginForm />);
fireEvent.changeText(screen.getByPlaceholderText('Email'), 'notanemail');
fireEvent.press(screen.getByText('Sign In'));
expect(screen.getByText('Please enter a valid email')).toBeOnTheScreen();
});
I've found this approach produces tests that survive refactors far better than enzyme-style shallow rendering. Because queries target accessible labels, placeholder text, and visible text rather than component internals, renaming a state variable or splitting a component doesn't break the test suite. That stability is worth a great deal on a long-running project.
Linaria: Zero-Runtime CSS-in-JS
Linaria is Callstack's answer to the performance cost of runtime CSS-in-JS libraries. It extracts styles at build time — no style object created at runtime, no JavaScript overhead per render. While Linaria is primarily a web tool, its principles have influenced how the React Native community thinks about styling performance, and it's directly useful for React Native Web projects where you want consistent, performant styling across platforms.
React Native CLI and Core Contributions
Callstack maintains the official @react-native-community/cli — the tool you use every time you run npx react-native run-android or npx react-native run-ios. They also have multiple engineers working directly on React Native core, with significant contributions to the New Architecture (Fabric renderer, JSI, TurboModules). Their work on the new architecture migration tooling has lowered the barrier to entry for production apps adopting bridgeless mode.
Callstack's philosophy is that the best way to improve React Native is to use it at scale, feel the pain yourself, and build the tools to fix it. That virtuous cycle is why their open-source output is consistently practical rather than theoretical.
Why Callstack's Tools Matter for Production Apps
The common thread across everything Callstack builds is that it solves real problems encountered while shipping real apps. react-native-paper is the result of building consumer-facing apps that need polished UI fast. Builder-bob is the result of maintaining many open-source packages simultaneously. Re.Pack is the result of actually shipping a super-app in production and discovering Metro's limits. React Native Testing Library is the result of writing thousands of brittle tests and deciding there had to be a better way.
For a React Native developer building production software, Callstack's ecosystem represents years of hard-won knowledge packaged into tools you can drop into your project today. If you haven't explored their full portfolio, start with the Callstack GitHub organisation — it's one of the most productive afternoons you can spend as a mobile developer.

