Meet the Team your Open Source Project Wants

One of the things we have in common at Callstack is love for open source, especially projects related to JavaScript and React ecosystem. We enjoy creating, sharing and learning in public, so anyone can benefit from our efforts.

Until recently we didn’t have any official way of expressing how important contributing to open source is to us. So we took the opportunity and assembled a team! An Open Source Evangelists team.

Special Forces Programme

To give you some background — last month we started a new initiative at Callstack to help us grow as developers the way we like. We used to have personal growth plans which worked OK, but we felt we could make it better with cooperation and teamwork. Thus the idea of Special Forces Programme was born. We switched from personal growth plans to four focused teams, each paving their own path and setting goals for themselves. As a Callstack developer you’re free to apply to any of the groups, stay there for three months and move on to another if you feel like it.

The team

Back to the topic. Who are Open Source Evangelists actually? Do they preach about open source or what? That’s a great question! We are just a bunch of open source software enthusiasts who want to contribute back to the projects we care about. And inspire others to do the same thing.

Meet our members: Satyajit Sahoo, Paweł Trysła, Jakub Beneš, Krzysztof Sroka, Łukasz Czyszczonik, Dawid Urbaniak and me.

Every week we meet to discuss plans for next days, examine problems, track progress and re-evaluate our ideas and findings. As the week goes, we communicate about our efforts mostly through a Slack channel.

We’re also responsible for organizing general open source meetings twice a month to track status of all of Callstack’s OSS projects (we have a couple of them, each having their teams, taking care of maintenance).

Our progress so far

At the very beginning of the group, we aimed for changing the projects on a weekly basis. Haul, Jest, Babel and React Navigation were the first ones we wanted to lay our hands on.

I’m really happy to say that our first two weeks were quite productive. Mostly because a bunch of us were already familiar with the projects.

First week we contributed to Haul, our homegrown React Native packager. We migrated it to Webpack 4, helped with a rewrite of the server to make use of node workers (PR #366), started efforts to overhaul configuration to be more flexible and cleaned the issue tracker a bit.

Upgrading Haul to Webpack 4: https://github.com/callstack/haul/pull/366

During the second week we contributed to Jest. We had the biggest wins here by far. Everybody was excited to work on bugs and triaging issues, because it’s such an amazing project we all love (thank you Christoph Nakazawa). The team could also use a bit of my experience maintaining Jest. At the time I had a longer break between my daily work tasks, which helped a lot! Collectively we’ve resolved 20+ issues and sent 8 PRs fixing bugs and improving documentation (all merged!).

Good week at Jest :)

The third week was where we faced a giant — Babel monorepo. As we soon found out, it was way harder to contribute something here, even with the help from project maintainers (thanks Sven Sauleau and Mateusz Burzyński!) and a number of “Good first issue” labels. The tasks we took turned out pretty time consuming or too hard to be taken care of in just couple of hours a week. I, for example, wanted to contribute a feature to Babel Bot, just to find out that it’s not actively maintained anymore and waiting to be completely rewritten — too much work unfortunately (also took me a while to realize that).

A couple of our team members were on a vacation then or very busy with their projects, which wasn’t helpful to the cause either. All in all we managed to send 2 PRs and help to triage and close 2 issues, but I felt a bit disappointed after the success we got with the earlier projects. I mean, it’s still great we managed to do something! It just made me realize that contributing is often harder than expected, even when you’re well prepared and willing to work.

We’ve actually changed the default babel-cli behavior: https://github.com/babel/babel/pull/7439

Lessons learned: 
Ask maintainers upfront for the tasks we can work on straight away.
It’s usually better to start with triaging issues.

Next one on the plate was React Navigation. We have a core contributor onboard (Satyajit Sahoo), so we immediately felt better about it. We sent a hello message to the maintainers and were quickly given something to work on. The project is in really good shape now making it easier to approach, mainly thanks to Brent, so huge thanks for that!

A warm welcome from React Navigation

With Babel and React Navigation it quickly turned out that it’s far more challenging to do something meaningful in just one week 😅. Especially when a part of the team is on vacation or is deeply involved in more pressuring activities or none of us was ever involved in the project before. So, we’ve decided to extend the period to two weeks by default — everybody was super happy about that.

Thanks to extending the time, we were able to do more on the navigation and connected libraries, like react-native-tab-view or newly created react-navigation-tabs by Satya, which will soon replace TabNavigators.

Managing time for open source

You may be curious about how do we actually find time for contributions — that’s another great question! We’re fortunate enough to be given time for self development during our regular work. It’s not any fixed amount though, because we usually learn a lot while doing projects for our clients.

Not too much time for open source :(

By our best efforts, the group members aim to devote around 1/8th of our work time to OSS, but life is not always sunshine and rainbows. It all depends on how involved we are in projects we develop. Nevertheless, it happens that we finish our tasks earlier than expected or just have some breaks, so after we chill out a bit, we do open source. To maximize time spent on it and keep the team spirit, we try to organize sessions of collective coding as often as possible.

I’m proud and thankful to lead the efforts of the team and I really hope we can make a difference not only in the community, but also in the way other companies treat investing their developers’ time in open source.

🍻 To the next month of adventures with OSS! Stay tuned.

P.S. Feel free to contact us at opensource@callstack.com. Who knows, maybe your awesome project will be the next for us to work on? 😉

Thanks to Raúl Gómez Acuña and Krzysztof Sroka.

Insights

Learn more about Community

cover

Oct 9Live Stream

React Native Conf 2025: React Foundation, Compiler 1.0 & Future of React Native

React Native Conf 2025 brought huge announcements: React Foundation under Linux Foundation, React Compiler 1.0 and Hermes v1. What’s next for React Native and newest React Features.

cover

Sep 25Live Stream

Live Dev Session: <Activity>, Expo SDK 54, Router v6, Lynx 3.4, TanStack Start

A packed week in the React ecosystem: React experiments with a new <Activity> component, Expo SDK 54 speeds up builds, Expo Router v6 adds native-like navigation, Lynx 3.4 ships inputs & dev tools, TanStack Start hits RC, and React Router previews Framework Mode.

cover

Sep 18Podcast

Core Contributor Summit 2025 Highlights

Core contributors from across the React Native ecosystem discuss stability, tooling, and the path to 1.0, from Flow to TypeScript, desktop apps, and how community fills the gaps left by Meta.

cover

Sep 11Live Stream

Live Dev Session: React Universe Conf, RN 1.0, Expo Updates & More

In Week 37 of our Live Dev Session we talked about React Universe Conf with guest Szymon, ranted about AI, explored what React Native 1.0 really means, reviewed Expo updates, and covered the latest moves in the React Native ecosystem.

cover

Sep 5Podcast

Crossing Paths of React And React Native Ecosystems

React and React Native: are the two ecosystems pulling together or apart? Let's discuss their evolution, similarities, differences, and community dynamics.

cover

Aug 20Podcast

We're Changing Into React Universe On Air

Here comes a new chapter for The React Native Show: we're becoming React Universe On Air!

cover

Jun 10Article

Apple Vision Pro: Insights From Conferences and Beyond

Explore key insights from introducing Apple Vision Pro at tech events. Discover its intuitive interface, immersive experiences, and the challenges faced.

cover

Mar 15Article

How to Make Your Open Source Project Repository Contributor Friendly

Check out 5 tips on making the repository of your Open Source project more contributor friendly for both new maintainers & users.

cover

Mar 1Article

React Native EU 2023 and a Glimpse Into Conference History

React Native EU is back for an on-site 2023 edition! Find out why it's worth attending our React Native conference and how it's evolved since 2017.

cover

Mar 30Article

Supporting Ukraine Through the "Tech to The Rescue" Project: UA SOS App

Learn about Callstack's commitment to the Tech To The Rescue project supporting Ukraine: UA SOS app.

cover

Mar 8Article

Women Who Make Waves in the React Native Community

On International Women’s Day we spoke to women who make waves as React and React Native developers. Check what they said about their tech careers.

cover

Nov 5Article

Events We Hold for You - Culture Powered by Callstack

When working at Callstack, you can join our unique initiatives. Find out more about our conferences, meetups, hackathons & discussion panels. Join our team!

cover

Mar 19Tutorial

The Hard Way vs. The React Native AI SDK Way: Stop Writing Custom Modules for Every Model

Learn how React Native AI uses a unified provider model to switch between cloud and on-device LLMs without rewriting application logic, enabling reliable AI experiences online and offline.

cover

Mar 12Tutorial

Build Smarter Apps: Tool Calling & AI Orchestration Explained

Learn how on-device models in React Native can call tools, interact with external APIs, and return structured outputs you can use directly in application logic.

cover

Mar 5Tutorial

MLC LLM + React Native: On-Device AI Without the Pain

Learn how to run third-party on-device LLMs in React Native using MLC LLM. Choose your models, run them efficiently across platforms, and keep a unified JavaScript API with React Native AI.

cover

Feb 24Tutorial

Intelligent Fallbacks with Apple Intelligence in React Native

Learn how to use Apple’s built-in Foundation Models in React Native apps, reduce memory usage, and enable fast, fully on-device AI with React Native AI Apple.

cover

Feb 10Tutorial

What Is the React Native AI SDK? A Complete Intro & Quickstart

Learn why on-device AI matters for React Native apps, how local LLMs behave offline, and what problems React Native AI is designed to solve from day one.

cover

Jan 29Tutorial

Implementing an Android TurboModule with Kotlin

Learn how to implement a React Native TurboModule on Android, from the TypeScript spec and Codegen to the Kotlin implementation and package registration.

cover

Jan 19Tutorial

Working with Different Threads in Swift TurboModules

Learn how JavaScript, native module, background, and main threads interact in React Native TurboModules, and how to use GCD queues to run async work safely in Swift.

cover

Jan 9Tutorial

How to Add Type-Safe Constants to Swift TurboModules

Learn how to expose typed, immutable constants from a Swift TurboModule using Codegen, and get full end-to-end type safety between native and JavaScript.

cover

Dec 30Tutorial

Adding Event Emitters to Your TurboModule in Swift

Learn how to emit native events from a Swift TurboModule and subscribe to them in JavaScript, including proper memory management and Codegen integration.

cover

Dec 22Tutorial

Writing Your First TurboModule in Swift

Learn how to build a fully working TurboModule in Swift, integrate it with Codegen, and bridge it through Objective‑C inside an Expo app.