
·
My recap of App.js Conf 2026 in Krakow: talks, libraries, the 'elephant in the room' called AI
After React Universe 2024 in Wrocław, I had the chance to go back to Poland for another React Native conference. This time the destination was Krakow, and the conference was App.js Conf 2026, organized by Software Mansion together with Expo. Two days, one track, a packed venue, and a lineup that made it very clear where the React Native ecosystem is heading.
In this post I want to share the talks that stood out to me the most, the libraries and tools that were announced or demoed on stage, and a few personal thoughts about the direction of the ecosystem and the conference in general.
Before getting into the talks, a bit of context about the event:
The venue was a big industrial hall, the kind of place that fits a conference of this size while still feeling intimate enough to bump into the speakers between talks. Krakow itself was a great backdrop: the old town, the main square, and the Wisła river walk were all within reach after the conf (eg. I had the chance to visit Wawel Castle and Rynek Główny).
Now let's dive into the talks.

The first day started, unsurprisingly, with two keynotes: one by Software Mansion and another one by Expo. After them, a series of talks from "famous devs" of the React Native scene took place. In particular, I finally had a chance to see William Candillon live.
The Software Mansion keynote was held by Krzysztof Magiera, director of engineering at Software Mansion. In his keynote, he made a small introduction about how AI is changing the way we write software, speeding up code writing and moving the focus to building and testing. He stated that the work done by Software Mansion during the last years in the RN ecosystem put the company in the perfect spot to be the driver of this new way of working.
He started showing all the contributions made by the company in the open source space. He also mentioned they have a special partnership with Meta that allows them to be more proactive in their contribution to React Native itself. This led them to 283 commits in the last year on the React Native repository, with a strong contribution to the animation layer where they brought back into React Native some ideas originally developed in Reanimated, the famous library they maintain. They also made strong contributions to Hermes V1.
They also made 752 commits on the Expo repo. They contributed in particular to:

They also actively continue to work on their own famous libraries:

He also presented a new AI tool called Argent. It is an agentic toolkit to control, debug, and profile iOS and Android apps. Using Argent, the LLM can inspect the view hierarchy and access the debugger and profiler to investigate bugs.

He also announced on stage version 3 of Gesture Handler. It is a new major version created to support the new architecture with a lot of improvements under the hood.

Last but not least, they presented a new bottom sheet library. It was presented as a bottom sheet "that just works" 😆.

Next there was the Expo Keynote, held by Charlie Cheever, CEO of Expo. He started by showing how React, React Native, and Expo are blowing up in download charts. He also showed how RN apps are the ones generating more revenue.
"React Native and Expo are winning the AI era", this was a statement he made. This is a consequence of the fact that React Native and Expo have a big community, with thousands of open source libraries and apps that LLMs have been trained on. Also the documentation Expo provides, combined with the support for all the major platforms (iOS, Android, and Web), plays a key role.
He mentioned again Argent and agent-device as the missing pieces to close the feedback loop with AI. Expo should focus on web support, which is more important than ever. He then showed how Expo is truly universal, starting to support different platforms like Expo TV, which adds support for Apple TV and Android TV. Additionally, he showed Expo UI, a library that contains a set of native components for iOS and Android built with SwiftUI and Jetpack Compose, along with expo-widget and expo-router.
Then he showed some tools created by Expo like Observe, that we will see in detail in a talk I attended on day 2. Most of the things presented above that are not a standalone product or library are already available in Expo SDK 56.

Next, I finally had a chance to see William Candillon on stage for real. For me, he is like a legend. He is the developer I would like to be.

He started by showing how the React Native Skia ecosystem is growing fast and how some of the most famous open source contributors and dev content creators are already experimenting with React Native WebGPU, introduced here last year at App.js Conf. He also showed Redraw, a new library for 2D rendering that he has recently presented.
He then started to show what he is working on for React Native WebGPU: aligning the API so that the code can be "copy-pasted" from the web to the native side.
For example, until now there were some differences in how you started the rendering loop in React Native WebGPU compared to what you had to do on the web, with an additional
context.present() call to notify the native UI thread of the start of the loop. Now they are aligned.

He then showed a new feature of React Native Worklets called bundle mode allowing devs to execute arbitrary code from your bundle on any thread. This unlocks a lot of possibilities, like having multiple renderers executing at the same time (2D and 3D).
He also showed the work done with Marc Rousavy, CEO of Margelo and author of react-native-vision-camera, to have video and camera streaming plug-and-play into React Native WebGPU.
He then switched to React Native Skia, where he is trying to add the support for a new backend called Skia Graphite (backed by Dawn WebGPU, the same implementation of WebGPU that powers React Native WebGPU released by Google and powering Google Chrome). This means that you can have views that draw using both React Native WebGPU and React Native Skia, because their runtime engine is the same. The plan for Skia Graphite is to have it released to everyone by Q4 of 2026.
He finally introduced Redraw, a new library that can work with Skia and WebGPU, that uses TypeGPU under the hood to enhance the drawing capabilities by passing geometry and fragment shaders as functions to the library components.
He closed the talk revealing that his two recent projects started from his tradition of creating April Fools' videos:
He showed this to leave us with a quote I liked:
unproductive times never fail to end up being the most productive ones
Next in line was Jay Meistrich, with a presentation of his two most famous libraries: Legend List and Legend State. This was quite an interesting talk, because the libraries presented could bring a lot of benefits to many apps.
Legend List is a list library, probably the fastest on the market. He announced version 3 release during the talk. Then he started the real talk: making apps really fast. So fast that they can beat native apps. He did a lot of consultancy work in the last year and he saw the same problem in multiple codebases: unnecessary rendering. The problem is that rendering is also used to coordinate effects and share information. React state is oversubscribed, and it is the orchestrator of everything. The solution Jay proposes is to rethink how we think about state, separating the ownership from the subscription to changes. He made some comparisons with React, which calls this concept signals, or Reanimated with shared values.
This is why he created Legend State: the solution is to have observables, and the components can read their values when needed. This is the same approach used in other frameworks like Svelte and Preact. He also made some considerations about Legend State and how to convince your team to use an alternative state library, showing how for most of the basic components of React Native we are already using solutions from the community and not the standard components.

He then closed the talk reiterating how important state architecture is, probably the most important architectural pattern for a React/React Native app.
The afternoon started with another great talk by Iwo Plaza, software engineer at Software Mansion.
He presented a new library they developed called TypeGPU.
He showed how this library makes the developer's life easy by writing shader programs using TypeScript. He started from a demo of
React Native WebGPU to show how easy it is to write shaders as callbacks using the directive use gpu.
Why a new shader system? To standardize how to write shaders for different engines, without sacrificing the type safety from TypeScript. By choosing TypeScript, they were also able to use a unified set of build tools aligned with the wider ecosystem.
They also had to create TSOver: a "fork" of TypeScript that adds operator overloading to the language. This enhances the shader writing experience a lot (eg. simplifies array operations a lot).
He also mentioned that TypeGPU is not only about computer graphics: it is also ready for massive computation on the GPU. Obviously, TypeGPU already has its own official React integration, @typeGPU/react.
He concluded the talk with the slogan "Math is cool!" ❤️😆
During the day there were other interesting talks that I will not go into in detail in this article, but you can check them out in the full livestream you can find at the bottom. In particular, I recommend:
On day 2 there was a mix of talks on different topics. I also had the chance to speak with a lot of people from different companies and understand their ways of working.
The day started with a talk by Jamie Birch, a software developer based in Japan. He introduced a new open source project he developed: Expo Desktop.
He started with an overview of the current state of React Native on Desktop, where there are ad hoc frameworks for React Native on different platforms: React Native macOS and React Native Windows. Unfortunately, generally speaking, the ecosystem on these platforms in terms of packages is smaller compared to React Native on mobile. Additionally, the variants for macOS and Windows are usually behind in terms of updates related to React Native, pinning some versions behind the main one. Anyway, especially for macOS, 1/3 of the packages available on iOS are already compatible. Also, Expo UI is already compatible without any change.
Expo Desktop is a tool to make Desktop apps first-class on Expo:
He also stated that the framework is not vibe coded 😆. How does it work:
npx expo-desktop)
He closed the talk by showing the official repo and expressing the hope that the project gets traction both in terms of usage and contributors.
Then a slightly different talk by Gant Laborde, one of the founders of Infinite Red. He made this presentation of a "magic trick", where he had to guess a card taken from a deck by a volunteer. He then let the audience choose which was the selected card, and they matched.
He performed this magic with the collaboration of two devs from Infinite Red. It was not full AI automation. It was collaboration between devs, leveraging AI to speed up the generation of a fake image with the card chosen by the audience.
The general message was: AI without guidance is nothing. Human in the loop is still important. He also showed a way of working with AI development called AI Triforce, where the role of the engineer shifts into a sort of collaboration to oversee a specific part of the software development lifecycle.


Next in line were Riccardo Cipolleschi from Meta and Christian Falch from Expo, showing how the React Native team, with the help of Expo, is migrating away from CocoaPods to Swift Package Manager.
First, Riccardo showed the timeline up to today of the work done to enable SPM in React Native. He also explained the reason why they are doing this: CocoaPods will be abandoned by the end of the year. They started to work on this in January 2025. The first step is related to the precompiled binaries for React Native released some time ago. These are already built using SPM in the internal React Native CI.
Next, a public RFC has been published by Christian Falch. This RFC explains the reason why they are doing this (reported above) and the plan on how to do it:
Then Christian showed a live demo of how the integration will work. The main command will be npx react-native spm.
The command will add the Package.swift for the deps that still don't have it and will try to rename the old xcodeproj by adding a .legacy extension to it, so that our app will be loaded using
the SPM app project. Opening a project after running this command will show 4 packages:
As soon as the setup is done, adding new libraries is easier than before: you just install a library through npm, and if it has a Package.swift
it will be added automatically as a dependency on the native side.

For library authors, the process is quite simple too. There is the Package.swift to add (it can be scaffolded with the command above, but Christian didn't share any details),
and then add a declaration to the react-native.config.js file (in a new spm section). At the beginning libraries can skip the step to provide a precompiled binary.
The next talk was from Edwin Vargas from handoff.ai, showing how his team is trying to make a universal app with Expo.
He started with an introduction of how he discovered Universal Expo. They started the company in 2023, and they were trying to scale quickly. This is a consequence of the fact that they needed speed to find their market fit. They started from the mobile app. Then they deployed to the web. This didn't come without challenges.
First of all, they were leveraging a lot of Facebook/Instagram Ads. This means their web application was going to be shown in a non-standard browser, especially on Android. This is when they discovered a hard truth: mobile web is the 4th platform (after web desktop, iOS app, and Android app). To overcome some of the problems, they tried to push users out of the Meta in-app browser into their app when they were signing up. They discovered this was bad for conversion.
They leveraged a lot of OTA updates on mobile (EAS) to keep the mobile apps aligned with the web experience.
One thing that is really interesting is that even if the codebase is shared across all the platforms, they pushed hard to have platform differences supported in the right way at the right time. For example, they used libraries built for mobile when needed and for web in the other cases. They also pushed a lot to create the perfect design system for their needs to support each platform in the right way.
He concluded the talk with a question "Did the universal Expo bet pay off?". The answer was yes because:
Then it was time for Britta Evans-Fenton, senior developer at Shopify. She made a talk about accessibility in apps.
She started by asking the audience how many accessibility features they had used in the last week. Some of them seem taken for granted or not accessibility-related, but they were created for this purpose. She then introduced the concept of the curb cut effect, the phenomenon of disability-friendly features being used and appreciated by a larger group than the people they were designed for. She also introduced the concept of universal design, that is the design of buildings, products, or environments to make them accessible to all people, regardless of age, disability, or other factors. The general point that connects these concepts is: if you design for the edge, you are building for everyone.
She then started by saying she didn't want to cover the basic API contained in React Native (accessibility props on components). Also, in this AI day and age, in React Native not everything is covered like on the web, because apps tend to be less accessible compared to the web.
She then explained why she is so sensitive about accessibility: when she started to work on React Native she discovered that she has the same gene as her grandmother, which leads to macular degeneration, a disease that affects central vision and makes you partially blind. This is why she became a promoter for making apps more accessible.
She then started with an overview of how we can make apps more accessible. The first one was reduce motion, something that could help people with ADHD, vestibular disorders, and photosensitive epilepsy. She then showed the API we can use to understand if this accessibility feature is on, and tweak the animation based on its value. Nice thing, this is an API where I made some small contribution on the React Native project.

She then switched to color accessibility, where she explained how important it is to have a clear difference between colors that represent different states. She then talked about screen readers. She explained how to tackle cases where pieces of UI appear later on. This should be managed with ad hoc APIs to set the focus on the right element after an interaction. She finally closed the talk with some considerations and possible actions to manage different UI components (Toast, Gesture Swipe, etc.).
Next was Kadi Kraman, software engineer at Expo. She presented a new tool from Expo called Observe that stands out as a full observability platform for mobile apps.


Then it was time for Catalin Miron, creator of the famous website animatereactnative.com and a series of YouTube videos where he shows how to create beautiful animations in React Native.
He presented a new visual editor for Reanimated, where you can compose animations ready to be copy-pasted into your code. The editor is called Keyframer.

The editor took a year of development. You can use it to draw your animation using keyframes and a lot of customizations. The generated components are Reanimated React components. It is available with various pricing tiers, including a free one, so check it out.
The last talk was held by Seth Webster and was called "It's a great time to be a builder". This was an inspirational talk, the perfect close for an incredible two-day conf. I liked this talk a lot.
Seth started by telling a personal story. In 2022 his father was fighting the last days of his battle against Parkinson's. His dad had always been a strong man, but in his last days he couldn't speak, his hands had clenched shut, and he was unable to leave his bed. In that moment Seth realized that everything he had learned until that day in his life, like product, development, and team management, was completely useless, and he felt completely useless too.
Then he started to think he could build something that could help him speak. Some days later, he created "Speak Easy": an app to help his father communicate again (by choosing letters using the space bar from an always-scrolling list). In this way he unlocked his father's ability to speak again in his last days. Seth reflected on how it was possible for him to build such an app in a short amount of time: thanks to the hundreds of people in the open source community.
The industry feels weird right now.
this was the statement he showed after thanking the open source community. It feels like we are constantly flooded with too much information.
The pace is absurd.
Today we have reached a point where a person can prototype an app over a weekend that would have required months.
The story is not that developers are disappearing", but the reality is that "the story is that developers are amplified.
This was the statement from Seth's presentation. Millions of developers are gaining momentum. We are not built for this as human beings, especially the flood of information, but we are going to adapt as we always have. AI shrinks the distance between "I want to make this" and "this exists". AI is making the mechanical parts cheaper.
The human parts get more valuable": judgment, leadership, taste, product intuition, knowing what to build, communication.
The developers who will succeed in this era are the ones who can understand the systems, direct tools effectively, identify meaningful problems, make good decisions under ambiguity, and turn scattered possibilities into coherent products. The industry is becoming a more creative one, not less, because of AI.
I'm a builder. It's one hell of a time to be a builder.
This was the final statement from Seth, engaging the audience to scream the phrase with him. .
As for day one, also during the second day there were other interesting talks that I will not go into in detail in this article, but you can check them out in the full livestream you can find at the bottom. In particular, I recommend:
If you want to watch the full conference, both days were livestreamed by Software Mansion. Day 1:
Day 2:
The React and React Native ecosystem is more vibrant than ever. From cutting-edge computer graphics frameworks to universal apps and enterprise-grade tooling, app developers have never been in such a good spot to create amazing apps. AI can accelerate the mechanical parts, but it is still engineering culture that will drive the most successful developers into a new era of software development.
We are in a historical moment where we can witness the birth of the next generation of builders, like what happened almost 20 years ago when mobile apps became a thing, and 35 years ago with the web revolution.
It will not be easy to adapt to all of this. I have to admit it is not easy for me, since I have always loved the "mechanical part" of software engineering. As Seth mentioned in his talk, the amount of information flooding into our brains right now is unbearable. I'm struggling to keep up with all the information and news these days. But I will adapt, as I always have during this almost 20-year-long career journey, and during my almost 40-year-long life journey 😆.
The future is uncertain, as it always has been. Let's keep up the passion for our work, and let's build something ❤️.