Brightec’s React Native strategy: a collaborative step forward
How we’re levelling up React Native at Brightec with a clear, collaborative, and future-ready approach.
Brightec have been building mobile apps for more than a decade, working across both native (Swift, Kotlin) and cross-platform frameworks. Over the past few years, React Native has become increasingly important to our work. It’s a powerful technology with the potential to deliver best-in-class, award-winning apps. Like any rapidly evolving ecosystem though, it can sometimes feel a bit like the wild west.

Photo by Eniko Polgar on Unsplash
There are countless ways to “do” React Native; an endless supply of libraries to choose from, and plenty of guides that are fantastic for spinning up prototypes but rarely tackle the reality of running a production-grade app at scale. For an agency like Brightec running multiple projects at once, that lack of consistency could easily spiral into siloed work, duplicated mistakes, and uneven results.
So we decided to pause, reflect, and put together a formal React Native strategy. This is our story of why we did it, how we did it, and the decisions we made along the way.
Why bother With a React Native strategy?
We’ve always believed that it pays to invest in doing things properly. For us, a strategy isn’t about ticking boxes or chasing trends, it’s about Making Things Better. We don’t just want to settle for tools or processes that work “ok” in the short term. We want to create a foundation that helps us build apps that are sustainable, maintainable, and truly best-in-class.
Spending that extra time upfront is part of what we do. It’s the difference between delivering something functional and delivering something outstanding. By building a strong strategy, we’re not only making life easier for our engineers but also giving our clients confidence that their apps are built on solid ground.
We also wanted this strategy to embody how we work together. Collective Responsibility is part of our DNA, so we wanted our React Native strategy to be decided by, and work for everyone from junior developers writing their first lines of code, to senior engineers wrestling with gnarly edge cases. A common approach makes life easier for our team, and ultimately leads to better outcomes for our clients.
The long road to a strategy
The process of building the React Native strategy was as important as the final outcome. Here’s how we approached it:
Reviewing existing projects. We started by reviewing our existing React Native projects in detail. What was working? What was slowing us down? What libraries or tools were our developers relying on most?
Industry research. Next, we looked outward. What was gaining traction in the broader community? Which libraries were actually being adopted at scale, not just being hyped? We paid close attention to download numbers and real-world usage in production apps.
Listening to our engineers. We spoke directly with our engineers through interviews and surveys. This wasn’t about imposing tools from above; it was about capturing developer insight and giving them ownership of the process.
Mapping the app lifecycle. We broke down the app lifecycle into phases; setup, prototyping, feature development, maintenance, CI/CD, deployment. We then assessed strengths and pain points in each.
Pooling our findings. We collected everything in a shared space where the whole team could comment, refine, and challenge ideas.
Testing with a demo app. To validate our choices, we built a ‘music player’ demo app and ran it through the full pipeline, from setup to TestFlight and Firebase distribution via CI/CD.
Documenting decisions. Finally, we captured the results in a “React Native setup guide.” This internal resource now serves as a reference point whenever we start or migrate a React Native project.

‘Music Player’ demo app built with Expo SDK 54. (Spot the AI-generated song title!)
Introducing: The Brightec React Native Technical Strategy
After a concerted effort, here’s what our strategy looks like today:
💎 Expo as our Core Framework
We’ve found that Expo gives us fast, reliable setup and works brilliantly from the prototype stage through to full production apps. It includes React Native Web support (a feature some clients are already excited about), and Expo’s ‘Continuous Native Generation’ system means less time maintaining iOS and Android separately. Because projects are tied to SDK versions, upgrades have proven easier and less risky. (See Seun’s recent post on React Native upgrades.)
🤖 TypeScript with Strict Linting
Our experience building native apps means we often work with Swift and Kotlin, so TypeScript felt like a natural fit. It mirrors the safety and clarity we value in statically typed languages, and by enforcing strict linting with eslint, we’ve created a robust foundation for collaborative development.
🧭 Navigation with Expo Router
React Navigation has served us well for years, giving our apps a native feel and keeping them in line with iOS and Android standards. Within the Expo ecosystem, Expo Router is the natural evolution, and it integrates really well with our workflows.
🌿State Management with RTK (or Zustand)
Redux Toolkit (RTK) is a tried-and-tested solution that we know inside out. It’s reliable, scalable, and well-suited to the kinds of apps we build. We’re keeping an eye on Zustand as an interesting contender, but RTK remains our default.
🚀 In-house CI/CD
Although Expo’s own EAS service is tempting, we decided to stick with our existing CircleCI pipelines. They’re mature, trusted, and tailored with our own private orbs and custom tooling that already serve our native apps. By keeping everything in one ecosystem, we save our engineers the mental overhead of switching between systems. (Chris has written about CircleCI before.)
⬆️ Upgrade Strategy
Anyone who’s been through a React Native upgrade knows it can be painful. We’re putting real effort into creating a repeatable upgrade process, helping us reduce friction, maintain predictability, and keep apps evolving smoothly as the ecosystem moves forward.
📱Everything else!
There’s much more to our React Native strategy than can fit into a single blog post! As well as the above, we’ve included guidelines for choosing solutions on a per-project basis. This includes things like: data fetching; styling and theming; UI library usage; analytics; testing; accessibility; internationalisation; animations and interactive UI - the list goes on!
We’ve built our setup guide to be prescriptive where it matters, whilst allowing for each approach to be tailored to each new project.
So, what’s next?
Our React Native strategy is not set in stone, and that’s exactly how we want it. Technology evolves quickly, and by keeping our approach alive and adaptable, we’ll make sure our apps remain innovative, reliable, and award-winning.
We’ve already rolled this strategy out on new projects, and we’re steadily bringing older apps into line with it too. The results so far are encouraging: faster setup times, more consistent quality, and happier engineers.
React Native has matured into a framework capable of powering world-class apps. With our strategy in place, Brightec is making sure we’re not just keeping up, but helping lead the way.
If you’d like to learn more about our project and clients, head to our dedicated Projects page.
Looking for something else?
Search over 450 blog posts from our team
Want to hear more?
Subscribe to our monthly digest of blogs to stay in the loop and come with us on our journey to make things better!