William Candillon sits down with Mazen and Robin to show how React Native Skia enables smooth, high‑end animations, shaders, and UI effects in React Native. The episode also dives into WebGPU and the future of 3D and advanced graphics on mobile.
Show Notes
Connect With Us!
This episode is brought to you by Infinite Red!
Infinite Red is an expert React Native consultancy located in the USA. With over a decade of React Native experience and deep roots in the React Native community (hosts of Chain React and the React Native Newsletter, core React Native contributors, creators of Ignite and Reactotron, and much, much more), Infinite Red is the best choice for helping you build and deploy your next React Native app.
Jed Bartausky :
Welcome back to another episode of the React Native Radio Podcast. Episode 355, React Native Skia with William Ken Dion.
Mazen Chami:
And welcome back React Native Radio fans. My name's Mazen, she's Robin, and we're React Native Radio. We have a cool guest for you today, the famous William Candion. William, welcome to the show.
William Candillon:
Thank you for having me. Good to be here.
Mazen Chami:
Yeah. Can you please introduce yourself to our listeners?
William Candillon:
Yeah. So I'm William. I work as an independent software engineer in beautiful Zok Switzerland. And my work mainly is focused on React Native and GPU graphics, so Skia, web GPU, anything related to React Native and graphics essentially.
Mazen Chami:
Nice. Spoiler into our topic today for Skia. Or should we talk about something else other than Ski on WebGPU?
Robin Heinze:
Quick pivot.
Mazen Chami:
Quick pivot. Yeah. We'll pivot right now.
Robin Heinze:
Yeah, we'll check with Skia.
Mazen Chami:
Yeah. Before we get into our topic, let's hear from our sponsor. Infinite is a premier React Native consultancy located fully remote in the US. We're a team of 30 senior plus level React Native developers and support staff and have been doing this for over a decade. If you're looking for React Native expertise for your next project, hit us up at infinite.red/radio. Don't forget to mention that you heard about us through the React Native Radio podcast. All right, let's get into our topic, React Native Skia. Yes, we're not going to pivot. William, can you tell us a little bit about your background and how you got involved in this space? And most of us start ... I started PHP before I eventually landed in React Native. How did you get to Skia?
William Candillon:
Absolutely. So I used to work for actually a database startup, so more like backend, C++ work. So this was already ... I feel old now saying this, but that was like 10 years ago, so time flies. And actually when React came along, even though it's front end, it's completely different. There were some cool ideas about dealing with changes in the reconciler and so on, which I thought were actually very similar to things in databases. So it really caught my attention. I thought the programming model was very interesting. Then when React Native came along, I thought, wow, to apply this model to build native apps, I thought was something really interesting and powerful. So I decided to get into it. And so I started to work as a freelancer building apps. Then I was always trying to one up myself and try to build these A great user experiences in React Native.
And of course, back then we had little to no graphic primitives. And it was kind of fun puzzles to ... So you have so little primitives, but sometimes it's nice to work around the obstacle and try find a way to overcome it. But eventually we switched from having fun with the obstacle to overcome it completely. And overcoming it completely was to bring the web graphic primitives to React Native end. So we looked at Google Chrome. Google Chrome is using Ski as a graphic library, so that's what we are going to do. And for us, a pressure point that really triggered me to go to having fun with the obstacle to overcoming it was really remotion. So I was doing these YouTube tutorials. Can it be done in React Native? Having fun, I was not thinking about anything else. And then I started to use Remotion, so to make videos with React.
It's a really cool project. It's like after effect, but for programmers. And here it's using a webcamva. So I was making my React Native videos and then using a webcam on the side, which was so much more powerful than React Native. I was like, oh, okay, no, this cannot hold anymore. We really need to have the parity level with the web. And so that's how the React Native Ski project got started.
Robin Heinze:
I remember trying to make a triangle in React Native with just CSS styles. I was like, "This is not going to fly." So yes, we probably needed a real graphics library. Yeah.
Mazen Chami:
I want to shout out your series be done in React Native because I will tell you when I first started my career in React Native and I needed animations, that was my go- to to see how it's done and how it's done well. And for a couple of my apps that were in production at that point, they had your animation in it. So thank you very much for that.
William Candillon:
Thanks. I appreciate it. It's really cool to hear.
Robin Heinze:
I think a lot of our audience have probably watched your YouTube tutorials. I know I have. So let's go to the basics a little bit and tell our audience just about what Skia is, setting aside the React Native for a minute, but what is the Skiagraphics library?
William Candillon:
It's a C++ graphic library, 2D graphics that is built by Google. So it's open source. Google uses it almost everywhere where they need to display Pixel. So whether it's Android or Google Chrome, there are other products. It does a lot of stuff. So for us, you can draw paths, SVGs and have FX. It does also an abstraction of the different backends. So different devices use different hardware and drivers for 3D graphics. And it knows, so it provides a single API on top of whether it's open GL, metal, on Apple and so on. And it allows you, so it has a Shedder language, which is close to the open GL Shedder language where you can write custom effects and it's going to be compiled automatically to whatever the best backend is, whether it's metal for Apple devices or Open GL for Android or Volcan for more modern Android device.
Robin Heinze:
Yeah. I'm sure it has to have a pretty large API surface area in order to be the driver behind things like Chrome and Android and stuff. So I imagine it's a pretty extensive tool and pretty hard to learn the whole of it and be really good at it.
William Candillon:
Absolutely. And when we got started, so we got started. So we were two people working on this project with Christian Fork and we didn't know anything. So we had this large API and we were not sure what to use, what not to use. And our guiding star was kind of ... So it's also, it was or it is still used in the Flutter product.
Robin Heinze:
So
William Candillon:
We looked at the
Robin Heinze:
Flutter. We don't say the F word around here.
William Candillon:
But so we looked at the drawing API, how it was structured and we used this as a symmetry. Of course, now this was five, four, no, three, four years ago. Now we understand, we know how it works. We would make the API to React Native slightly different. There's also some naming issues and all these issues kind of come off from the start of the project where we were not sure what we were really doing, but now we know what we are doing. So some API namings and some APIs would be very different today if we were to start again.
Robin Heinze:
So Skia is a canvas, like it's a Canvas-like rendering system, right? Yeah. Which means that you're telling it how to draw something versus telling it like, "I want a square." You're saying, "Okay, here's how to draw the square that I want. " Is that right? So it's like comparative versus declarative?
William Candillon:
Yes. When you have a drawing APIs, usually there are two modes. So one mode is called immediate API. So you say draw circle and it's going to draw a circle. And then if you want to change the color of the circle, you say draw circle red. So every frame, you tell it what to draw and it's going to draw from scratch. So that's immediate mode. And then there is another mode which is called retained mode, which is more like dump style or react style where you say, "Okay, this is my drawing. It's a circle. Now let me update the color of the
Robin Heinze:
Circle."
William Candillon:
And so you say props goes from red to blue. So it knows already that it needs to draw a circle and now it knows how the property has changed. And that's called retained mode. And when we ... So Skia is a C++ API which works in immediate mode. So you just every frame tell it what to draw. But because there is a cost of communication between JavaScript and C++, we offer retained mode. So our goal is to minimize the communication between JavaScript and C++ as much as possible. This is how we achieve close to native performance. And so we've built on top of it a retained mode where the native side knows about the drawing. We just tell it what to update on every frame and it's very fast.
Robin Heinze:
That's a really good segue into now adding in the React Native part of React Navigator.
Mazen Chami:
Yes. So as we add in React Native on top of Skia, because it's written, like you said, in C++, the React Native side of things is, correct me if I'm wrong here, it's native, right? It's a native because it's C++. It's written in that low language and you're just writing the bindings from C++ to kind of bring it up and expose it to the JavaScript level as components or as functions. Exactly.
William Candillon:
Yeah. Yeah.
Mazen Chami:
Awesome. Yeah. And one thing I also wanted to mention, talking about Canvas rendering, one thing as a developer you have to always provide is you have to provide coordinates. You can't just tell, "Hey, draw me a circle." You'll just draw it in infinite space. You almost tell, "Hey, draw me. " Circle's probably harder. Let's say square. Draw me a square starting at zero, zero, so that's your top left, and then you tell it to go X pixels to the right, Y pixels down to get you your square or rectangle or shape. So that's kind of where the whole coordinate part of Canvas drawing can get a little bit complex. If you're trying to draw a circle, you can easily draw a little squishy circle.What's a skinny circle and ellipse?
Robin Heinze:
And elips. Yeah. And oval. Or an elips.
Mazen Chami:
Oval. Yeah. As a developer, whether I'm a beginner, let's just start with beginner level. I'm coming in, I want to do Canvas-like rendering on my app. What concepts do I need to learn to do this? What's my entry point? Is it easy to get into? Just read the docs and it's very self-explanatory, or is there some other graphics modeling that I have to understand first before doing this?
William Candillon:
So there are a couple of things. So there are two things I would say. I think often developers, they work with designs, but let's say Figma designs. And here I would say we map pretty well the Figma primitives. So whether it's a blur or a complex gradient or complex path bullying operations or anything path related, we are really mapping one-to-one with what Figma is offering.
And then I would say that's part one. Part two is, so if you want to build these complex custom effects, you need to go into the world of Shedders. And Shedders are these programs which gets compiled to the GPU and gets executed on the GPU. So here the paradigm is a bit completely reversed. So we said, oh, draw a circle. But in a Shedder, it's the other way around. A Shedder tells you, "Oh, this is my X, Y, coordinate." Now, am I part of the circle or not? So in Influence, sell the question backward. And it's a very, very interesting topic.
Robin Heinze:
They're used a lot in gaming. I hear Shaders refer to in gaming a lot more than regular React Native programming.
William Candillon:
Yes, absolutely. And it's a very hot topic and there is a lot of ... Because it's almost a complete different world. So it's a different
Robin Heinze:
Language.
William Candillon:
The paradigm is different.
Robin Heinze:
It's just a different way of thinking about how you're telling the computer what to do.
William Candillon:
Exactly. But there are a lot of interesting things happening on this side. So first of all, so there is a community called Shedder Toys where people share examples, and these work almost out of the box in Skia. So you can browse these incredible examples, you can copy, paste, and sometimes there is tiny changes that you need to do because it's a slightly different program language, but the LLM usually is going to fix it 100% of the time. And it's just also a fun community of really people who are so passionate about this topic. Lately, it has been one of my favorite community. So there's a lot to learn here and a lot of fun to be had with the shedding community. But I don't know if you guys have heard about things also like Type GPU, which allow to write shadows in TypeScript from software mentioned.
Yes.
Mazen Chami:
And
William Candillon:
I've played with this project recently, and I think it's kind of really cool because now it's also bridging the gap because you write your Shadow in TypeScript and developer experience is pretty close to a pure TypeScript experience. So the same way you write your worklets function in JavaScript, TypeScript. Now the same is happening with Shedder. And so that's very cool because now it's the same language, Sam Userland. And then we mentioned the thinking model being reversed where it's not draw circle, but it's like, am I a circle or not? And actually we might offer some things in the future that might help with that.
Robin Heinze:
Spoiler. It seems like ...
William Candillon:
So it's a fantastic topic. Yeah.
Robin Heinze:
Yeah. We'll talk about that in a little bit, I'm sure. Yeah. But I want to talk about our audience being React Native app developers primarily. We're primarily React Native App developers, and we do a lot of pretty standard apps that are data in data out, like lists and very standard stuff. Where in my standard React Native app am I going to see the most use for something like React Native Skia and these complex graphics and stuff? Is there anything beyond just a loading animation or something where I would get a lot of use from Skia or do something that's impossible to do with React Native components?
William Candillon:
So personally as a mobile, when I use my phone, sometime I go on apps and there are some user experiences that are really genuinely delightful. And sometimes there is this button you press and you just want to press it again just because of how it felt and maybe there's anaptic feedbacks. And when these experiences happen, if you want to build it in your React Native app, most likely you're going to need React Native skier.
Robin Heinze:
Yeah. Right. You're just not going to be able to achieve the level of delight with just plain react native components that are very much more static.
William Candillon:
Yes. Sometimes you need complex geometries, some glow effects, you need the colors to follow the geometry, things like this. You're going to need advanced graphic library to a liquid glass effect. I don't
Mazen Chami:
Know, something. No, and that also just for me brings up charting libraries, right? Yeah,
William Candillon:
Absolutely.
Mazen Chami:
Ski is a good example of a way to write your charts because it's, like you said, delightful. You can animate your lines to look wavy or whatever as they're coming on and then maybe they're colored and stuff like that. So it gives you that nicer look than just like you're reading, I don't know, a chart on an Excel spreadsheet. It's giving you a fancier chart.
Robin Heinze:
Some of us like Excel.
William Candillon:
It's so funny you say that because as I was answering the previous question, the example I had in mind was the runner app, which is very popular in Europe. And I was thinking about how they show the running stats and there is these beautiful effects around the charts, around the running statistics. And that's actually the example I had in mind as I was answering. So to your point, yes.
Mazen Chami:
Yeah, that's a very good example app because you're right, that's 100% React Native. Correct me if I'm wrong, it was bought by Strava, if I'm not mistaken. If you're a runner and you're listening to this podcast and you're not using Runner, I would recommend you do it. Runner. It's R-U-N-N-A. It's a very delightful app for running and it's built in New Act native and they use Skia, I assume, for that kind of stuff. Now, can we take that level deeper as we think more about user experience? As I'm building these components in Skia, how's the performance? Are you all using ... Now we talk about the current architecture, no longer the legislature. Yeah, the architecture.
Robin Heinze:
The
Mazen Chami:
Architecture, right? And we got fabric and turbo mode. We got all these fancy stuff here. Has this new architecture or the current architecture unlocked the possibilities to where you are building performance components basically without even pushing the limit almost, if that makes sense?
William Candillon:
Yeah, that makes a lot of sense. And yes, absolutely. So for us, I was about to say the new architecture. For us, the current architecture has really enabled ... And it's funny because it's actually such a simple feature that it gives us, but actually for us, it's completely transformative and it's just the access to synchronous layout. It might sound so silly, but for us, the fact that we can now access the layout synchronously, so ask, okay, what's the size of the Canva in a synchronous way has unlocked many, many things and mainly it has unlocked for us WebGPU and with WebGPO comes a whole bunch of improvements that we could get into. And the second, I would say I'm thinking about two things about related to skier and performance, which are a hot topic for us. So the first one is that more on the native side, so native meaning platform native so Android and Apple.
So people, they use Skier across web, iOS, and Android. And so the expectations of the platform are different because if you are Ski Drawing behaves a certain way on iOS, you have the same expectation on Android. But the Android graphic APIs canvay API and so on, BI is BF very differently. So for us, a hot topic is to try to always match what you can do on the web environment, what you can do on an iOS, metal view, or what you can do on Android surface. And the second aspect is so more on the native but cross platform native. So the C++ layer, which is the same across Android and Apple here, there's no platform differences. So for us, as I mentioned already, the heart of the matter is really to ... So performance, so meaning having a cost of communication between C++ and JavaScript as low as possible and to have fast memory management or very efficient memory management.
So it's also a topic because, so JavaScript is garbage collected, we use Hermes is the default. I think that's most likely the only JavaScript engine that runs with Kia. And we need to tell it because also it's the C++ objects which are also bound to GPU resources and we need to tell it how much memory we think they take in the app. And we need this to be garbage collected efficiently. So that's a very hot topic also for us related to performance.
Mazen Chami:
That's very, very helpful because if any of our listeners are looking for some of these cool animations to do, or even just displaying beautiful UI, like you did, I believe I saw you recently you posted a video of a backdrop that looked really nice. And I mean, that wasn't a lot of code, but that also seemed like it wasn't, from what you explained, performance wise, it's not taking a hit.
Robin Heinze:
So to
Mazen Chami:
Get something massive like that on the screen is not necessarily taking a big hit on the device, which is great, which unlocks a lot of possibilities when it comes to this stuff. You've mentioned it a couple times now, and I want to come back to it, and I think we can kind of give it its space now. What is WebGPU and how does it fit in Skia?
William Candillon:
Yeah. So it's interesting because we were working on the Agnity Skier and we wanted ... And personally, I wanted to do always more and more complex things with it. And usually for Apple Fools, I do a video, a joke video, but usually there's like a serious technical content behind. And I wanted to make this 3D cake using Skia, but of course it's very complicated because Skia is not a 3D engine, is a 2D engine. So you have the faces of the cake, but so you need to do a 3D projection. So first you do it in your react component where it's something that would happen on GPU usually, and then you need to sort. When you see the cake slice, you need to sort the faces of the cake. So the face that is behind is being covered by the other faces. And this, again, we do it on CPU where in a real 3D API, this would happen on GPU.
And I was thinking that's really, really strange because I know that Skia runs on 3D APIs, namely Open GL or Metal on
Robin Heinze:
IOS.
William Candillon:
So I know these capabilities exist. They're just not available to the API. And this is what led me to WebGPU. So WebGPU is a cross-platform 3D layer. I mean, it's 3D. And also there is another path which I can talk about, which is compute. This allows us to have 3D and 2D in the same environment. And I shared this week a demo on Twitter, which is a rotating cube, and you have on one face of the cube, you have a video playing, on the other face, you have a skier demo. On another face, you have a paragraph layout, text layout with native emoji phones and so on. And this demo was really to show, okay, now everything is running under one runtime and it's web GPU. And this is also what the web is doing now. So the web is going towards web GPU and even libraries like 3GS and so on are based on web GPU.
So that's really the future. So we follow the symmetry with the web and that's also, I think, going to be the future for Reactative. And that allows us also to run libraries. So all these big web libraries from the web ecosystem, we can bring it to React Native, like 3GS, for instance, it's a really big one.
Robin Heinze:
So is this going to really open the door for apps to really be completely cross platform? Because I mean, most of the projects that we're working with now are trying to do web and mobile in one code base. Does this help with that, really being truly shared code bases that are using Skia?
William Candillon:
I think so. And again, going back to the topic of the current architecture, which on the web, you always have the Canva element and this kind of element you could do with it, get context, get graphic context, and this is my weave and this is my height. And this is what the current architecture allows us to do. And it might sound like a small thing, but to be able to have such symmetry with the web is actually comes a very long way for us. And especially being able to copy paste. So you go on webGPUsample.com, you copy paste the example, you paste it into Reactive, it just works. It works. It's exactly the same. So it's very cool. And the other path of the library is that you have a path which is graphic pipelines, and then there is another path called compute shedders, which allow for general purpose GPU computations.
So anything that needs to run on the GPU, like machine learning model and so on. And so that also enables a whole bunch of new use cases potentially in React Native.
Mazen Chami:
Yeah. I think for our listeners, one thing I want to highlight is please check out the show notes when this is done.
Robin Heinze:
Yeah, we're linking to everything that we've talked about.
Mazen Chami:
There's a lot of information that's going to be in the show notes because even just you mentioned the web GPU samples. It's cool stuff. It's like stuff that you could do. And one thing that I saw that just made me think, "Hey, there's a lot of apps out there." There aren't a lot of mobile apps out there. There's web apps about flight tracking and watching a flight go from point A to point B, but there's no mobile one. I'm always having to go to my browser on my device.
Robin Heinze:
Are you telling me you don't have flight radar downloaded on your phone? Mazen?
Mazen Chami:
Well, are they? And here's a question I say to flight radar if you're listening for some reason. I don't think you're reactive. Are you using Skia and some web GPU stuff that ... In one of these articles, you can actually see a planet with point A to point B and kind of like the flight path.
Robin Heinze:
Okay. They don't have that. It's very flat.
Mazen Chami:
That is something cool and that's like a next level user experience that you can do. But William, like you're saying, that's all done in web GPU, which is web quote unquote standards giving you native performance. And that's huge in my mind.That unlocks a lot of potential and a lot of things that possible to do there.
William Candillon:
Absolutely. And I'm very excited and impressed by the technical potential of Web GPU. And it's interesting because I meet people who are as excited as I am. And what's interesting is in this discussion is that they come from the game dev community. So they're game developers. And I mean, I get genuinely so energized about these topics and I can see that they have matched my level of excitement. But what's interesting is that when they talk about the use cases and the possibilities, it's always in the context of a game. And me, I'm always equally as excited, but in the context of user interfaces and react native user experiences.
Mazen Chami:
Yeah, that's awesome. And you recently did a video that I actually watched and I really liked your Shaders gambit where you built the queen, the chess piece in it. And that was really cool to see how you had a smooth surface and you just brought a circle and kind of squeezed that part of it and gave you the full texture look of a chest piece. And that was all done in web GPU. Is that correct?
William Candillon:
So no, but it links to web GPU. So this was done in Skia using a Shedder, but actually there is a strong link with Web GPU. So the way 3D graphics are usually done is you just basically render a bunch of triangles. So you say, "This is my geometry, my triangles are positioned a certain way." So in the case of the chess piece, you would have a 3D model that gives you all the polygons and triangles of your chest piece, and then you have a shadow where you decide the color, you give the triangle and you can do light effects and so on. And in the shadows gambit, we use the different approach, which is we don't do any triangles, we just use a shedder and mathematical formulas to describe the shape. And so this complex shape, so you do a cylinder, there's a mathematical formula to draw the cylinder.
So if you have a point in space, you say, "Okay, how far am I from the cylinder or not? " And then the trunk of the chess piece has a special form. And then you say, "Oh yeah, of course my radius on the cylinder is not a constant value." It follows the curve and that's how, and then you build the chest piece by also substracting shapes with one another and so on. And so that's another path of building 3D 3D model. And the link with web GPU is that in web GPUs, as I mentioned, there is this general purpose, GPU computation path. So you can do graphics or you can do these compute shedders, so general purpose GPU computations. And the very exciting topic for me at the moment, and that came from this Shedders Gambit video is that, okay, let's use the non-graphic pipeline, but to do graphics, and then what can happen there?
And actually it's such an exciting topic because you can do really genuinely interesting things, which I'm going to get to talk about very soon, and I'm very excited. And I know the TypeGPU team at Software I mentioned is also very excited about these topics related to compute shedders and writing them also in TypeScript and And so on.
Mazen Chami:
That's awesome. Well, I think we're kind of running out of time on this, but I think this is an amazing topic. Thank you for shedding all this light on this, William. And I urge our listeners, check the docs out, check the tutorials. There's a lot of cool videos on there of stuff that you could do. If you have a progress bar, if you have a chart, whatever it is, those examples are all there and it's really cool scenarios.
William Candillon:
And one thing, if I may add to see, because we do the 3D chess piece and this was for April fools. And then you're thinking, okay, but can this be a serious thing? And then it's funny, so this was April last year and then Apple came up with Liquid Glass. And in Liquid Glass, the way the buttons merge with each other is exactly using the formula, the mathematical formula that is used in the chess gambit.
Robin Heinze:
They totally watch your April Fool's video.
Mazen Chami:
You are ahead of your time.
William Candillon:
What I mean is that ... No, because here I'm just reusing, of course, existing Opus of work, but first it starts with a joke, but then if you think, "Oh, okay, but how can I use this seriously?" You can do some really serious things with it.
Mazen Chami:
Totally. Yeah.
Robin Heinze:
That's a really cool story of how it came to be from an April 4th job.
Mazen Chami:
Yeah. Awesome. Well, again, before we wrap up, usually the question we like to ask at the end of these shows is, what's next for Skia? What's coming down the pipeline that you can share with us with Skia and WebGPU?
William Candillon:
Absolutely. So it's really right now all about WebGPU. So running Skia with WebGPU. Like I said, doing 3GS scenes where you have text layout and paths which are rendered by Skier. So you use each library to what it's best at and you put it together. And we're also looking, we're testing video support, camera support. We're working with the team at Margelo does a vision camera. So also these things to talk to external libraries are becoming even easier with WebGPU because the phrasing model is much clearer because it's only based on modern GPU IAPIs like Volcan and metal. There is much more things we can do that where right now with Skia, we're single-fredded. We have to use OpenGL and Android. Things are a bit more complicated. So this is really our focus. It's going to take some time to be completely migrated because first of all on Android, some devices don't use Volcan yet necessarily.
And also, so we use a version of Skier, which is called Skier Graphite, which is made by Google. And here also there are things that need a bit of time to be mature, I would say. So it's going to take a while, but this is really where most of my focus is on. That's awesome. And I want to show also some of the new capabilities, some of the new FX and animations you can do with WebGPU that you couldn't do before.
Mazen Chami:
That's awesome. Yeah. It's funny how Google software is having a hard time running on a Google other software, Android. That's fine.
Robin Heinze:
Android,
Mazen Chami:
Always the problem.
Robin Heinze:
It is a little bit ironic, isn't
Mazen Chami:
It? Just build for iOS and you'll be fine people. I'm kidding. That's why we're here. Well, again, William, thank you so much for coming onto the episode. This was amazing and enlightening and we really appreciate
William Candillon:
It. Thank you for having me.
Mazen Chami:
Yeah. Before we sign off, Robin, do you have a mom joke for us?
Robin Heinze:
I have a good one from Gant. I took the shell off of my racing snail to make him faster, but unfortunately it just made him a little more sluggish. Slug. Nice.
Mazen Chami:
Love it. Awesome. Thank you all and see you all next time. Bye.
Robin Heinze:
Bye.
Jed Bartausky :
As always, thanks to our editors: Todd Werth, Tyler Williams, and Jed Bartausky. Our marketing and episode release coordinator, Justin Huskey, and our guest coordinator, Mazen Chami. Our producers and hosts are Jamon Holmgren, Robin Heinze, and Mazen Chami. Thanks to our sponsor, Infinite Red. Check us out at infinite.red/radio. A special thanks to all of you listening today. Make sure to subscribe to React Native Radio on all the major podcasting platforms.




There’s no perfect time to get started. Whether you have a formal proposal or a few napkin sketches, we’re always happy to chat about your project at any stage of the process.
Schedule a call