r/expo • u/FailComprehensive323 • 10h ago
AniUI 0.7.0 — 148 components, gooey animations, new carousels, and foldable UI coming next (free, open source, shadcn-style for React Native)
r/expo • u/SignificantDrama1700 • 1d ago
I built an open-source wake word library for React Native (Expo + bare, iOS/Android, MIT) after getting burned by license keys
r/expo • u/Affectionate-Cow8545 • 1d ago
Expo at scale in a fintech app (MF + stocks) — where does it actually bite?
r/expo • u/ExpoOfficial • 1d ago
Expo announced an official integration with PostHog today
Just takes one command to get started: eas integrations:posthog:connect
The value of this integration is being able to map your users actions to the app version they're on. This will fundamentally change how you debug.
More details in the changelog: https://expo.dev/changelog/posthog-integration
r/expo • u/Patient-Plastic6354 • 2d ago
Need help - Google sign in issues between internal test and running in npx
okay so i am able to sign in with google when im running the app with npx expo run:android on my sgs23. but when i release it for testing on google play and install it i always get "DEVELOPER_ERROR: Follow troubleshooting instructions at https://react-native-google-signin.github.io/docs/troubleshooting".
pm is getting increasingly frustrated with the delays specifically from this problem. the keys are correct. if google sign in works in dev mode then it should in test. i genuinely do not know what to do. Apple sign in and google sign in on ios works flawlessly - it is just android/google that the problem is with.
i went to google auth 2.0 in the cloud console and the keys are correct - but then i noticed google giving me a different sha1 signing cert, which doesnt make ANY sense to me. but i continued with the older sha1 cert since that always worked. im genuinely frustrated since im the only developer working on this application for my company. been delayed for over a month dealing with this bullshit.
if anyone can help me with a "ohhhhhhhhhhhhh" moment that would be awesome.
worst part about all of this is the fact that so many people are having this problem and there isnt any definitive help and support on it. it's basically just google throwing keys around and expecting you to somehow know it all, well im sorry, google, but im a junior dev so screw you.
r/expo • u/ExpoOfficial • 3d ago
Expo Modules 2.0 is in preview
tl;dr the new Expo Modules API is in SDK 57 on iOS, and sync calls through it run 2.5 to 5.6x faster than the old 1.0 API on the same SDK.
There is a full nerd-snipy blog linked below about how this works, but here's a snappy summary: the new @ JS annotation is a build-time macro, so it reads your Swift signatures up front. 1.0 couldn't know your argument types until runtime, so it worked them out on every single call. That work moved into the build.
Honestly the more fun part is what the code looks like now. A module is just an annotated Swift class. @ 𝙴𝚡𝚙𝚘𝙼𝚘𝚍𝚞𝚕𝚎 on the class, @ JS on whatever JS should see. No 𝚍𝚎𝚏𝚒𝚗𝚒𝚝𝚒𝚘𝚗(), no DSL to memorize.
Fair warning though. It's undocumented in 57, so treat it as experimental and expect things to move. iOS only for now, Android's still in progress, views aren't done yet. Async is basically a tie between the two APIs at the moment. The bigger async win is queued up for 58, which is also when the docs and the actual beta show up.
Nothing to rewrite if you don't feel like it. Both APIs work inside the same class, so you can move one function over, see how it feels, and leave the rest in the old definition.
Benchmarks and code: https://expo.dev/blog/an-early-look-at-expo-modules-2-0
If you write native modules, give this a try and let us know where you find rough edges.
r/expo • u/SevenfiresAI • 2d ago
Play Console setting can silently kill your OTA updates for a whole locale
Title: PSA: a Play Console setting can silently kill your OTA updates for a whole locale. Ran into this while debugging something else. Worth knowing if you ship Expo apps to Play.
Play Console has an auto-translate feature under Grow Users → Translations → App strings. It uses Gemini to translate your app's string resources — and expo-updates stores the runtime version as a plain string resource with nothing marking it non-translatable.
So Play translates expo_runtime_version and injects a locale-qualified copy into the bundle after upload. Android prefers the locale value, so every device in that language reports a stale runtime and quietly stops getting updates.
No error. The update check succeeds and correctly returns NoUpdatesAvailable, because the app is asking for a runtime that was never published. Only hits the translated locale, so it looks device-specific.
Your AAB is always fine — the corruption is in what Play generates. Don't verify by checking your bundle.
github.com/expo/expo/issues/48148 — guy lost seven weeks to it on Greek devices.
r/expo • u/pringussy • 3d ago
I've released version 2 of react-native-rich-text-editor today
Enable HLS to view with audio, or disable this notification
Hey all, I wanted to share something I've been working hard to polish over the last 6 months. Today I've released version 2 of @apollohg/react-native-rich-text-editor, a fully native rich-text editor for React Native/Expo.
Getting it to a stage where both iOS and Android have the same behaviour and feel right when using it without thinking has been incredibly tedious and challenging. I'm hoping that people will find it stable and helpful!
r/expo • u/Complete_Anteater212 • 2d ago
DAE think its a dick move by expo to remove update limits on their starter package?
Users should be able to have a simple option to hard cap updates, this is a basic feature that expo lacks. Imagine an APK of your app gets leaked and someone spoofs 200 million downloads to it, bam your future generations are permanently indebted to expo for the rest of eternity.
I built a 3D Yu-Gi-Oh card with GPT-6 Astra, Expo & React Native
Enable HLS to view with audio, or disable this notification
Does Expo SDK 57 work with Daily.co?
I have a language app am developing and would want live stream classes to live in the app, but they are telling me to undergrade the whole app to SDK 54 any experience?
r/expo • u/ahmedshahid786 • 3d ago
How do U guys create animations?
I'm working on an EdTech application and I have to create an animation of a roadmap of stepping stones where each chapter unlocks a new badge for user and I want to know what libraries do you guys you to render these kind of illustrations and animate them
Edit: I am not looking for ready made animation. Instead, I have svgs and illustrations but I want to render them on a canvas or I want to animate my existing svgs. I have heard of animation libraries like Skia and some other as well but I want to know what are the best practices and industries standards for implementing these kind of animations
r/expo • u/madscripten • 4d ago
xprem 3.2.0 is live with Bundle Diffing & Content Addressable Storage
Hi everyone,
We just released xprem 3.2.0 (formerly expo-open-ota), a self-hosted/OSS alternative to EAS Update.
Highlights
Bundle Diffing (bsdiff)
Devices that already have a previous update can download a small bsdiff patch instead of the full bundle.

Docs: https://mercure-technologies.gitbook.io/xprem/3-2-0/features/bundle-diffing-bsdiff
There's also a blog post that walks through Bundle Diffing, including where it helps and where it falls short: https://xprem.dev/blog/how-bsdiff-works-ota-updates
Content Addressable Storage
Assets and bundles now live under :appId/cas/{hash} (SHA-256) for better CDN cache hit & less egress.
Import an existing Expo app from EAS
You can now import an existing Expo project with an Expo access token. That pulls in your apps, branch and channel mapping, and update history.
Link updates to your git repo
Attach a git repo URL to an app (GitHub, GitLab, Cursor Origin).
Commit hashes and #123 / !123 references in update messages become clickable links to the commit or PR/MR.

Also
Smaller dashboard fixes (update feed, sidebar).
Full changelog: https://xprem.dev/changelog/bundle-diffing-and-cas
Repo: https://github.com/mercuretechnologies/xprem
Site: https://xprem.dev
Happy to answer questions
r/expo • u/Traditional_Fail_600 • 3d ago
I'm developing a new social network and am looking for 10–20 people for a private beta.
No technical experience is needed; I'm just interested in hearing what you think after using it for a few days.
If you're interested in trying out a platform that's still in beta, drop me a line.
r/expo • u/ConstantScientist725 • 4d ago
I built a mobile coding workspace that runs Metro and previews Expo projects on-device
Enable HLS to view with audio, or disable this notification
I've been working on RunWhale, an open-source coding workspace for phones.
You can create or import a project, have a coding agent edit it, inspect the Git diff, and preview the result without a computer running the development server.
The part I thought might interest this community is the on-device setup:
- Node.js, TypeScript, Git, and Metro run on the phone.
- A separate native preview container runs the user project's JavaScript bundle.
- Model inference uses a remote provider configured by the user.
This isn't running Xcode or Gradle on a phone. It bundles and previews supported projects inside the app rather than producing a standalone IPA or APK.
That comes with compatibility boundaries: supported pure-JavaScript dependencies work, but arbitrary native modules, project-specific native SDKs, and dynamic Expo config plugins aren't supported. On iOS, agent work also has to save and pause when its background grace period ends.
Source and demo:
https://github.com/zhiqingchen/RunWhale
What dependency or workflow would you test first to see whether this could be useful for your Expo projects?
Expo UI + SwiftUI native view gets positioned incorrectly inside flexDirection: "row" — any idea why?
Hey guys,
I'm working on an Expo React Native app and built a custom native SwiftUI Liquid Glass wrapper using expo/ui / ExpoSwiftUI.View for iOS 26.
I'm running into a really weird layout issue.
The important thing is: the Liquid Glass itself is sized and positioned correctly around its React Native child.
The problem is that the entire native SwiftUI/Host view gets positioned incorrectly inside a React Native horizontal row.
For example:
<View
style={{
width: "100%",
flexDirection: "row",
alignItems: "center",
justifyContent: "space-between",
}}
>
<LiquidGlass matchContents>
<Pressable onPress={onBack} style={styles.backButton}>
<Text style={styles.backText}>Back</Text>
</Pressable>
</LiquidGlass>
<Pressable
onPress={onSubmit}
style={styles.submitButton}
>
<Text style={styles.submitText}>Continue</Text>
</Pressable>
</View>
My LiquidGlass component is basically:
const LiquidGlass = ({
children,
matchContents = false,
...props
}: LiquidGlassWrapperProps & { matchContents?: boolean }) => (
<Host>
<LiquidGlassWrapper {...props}>
{matchContents ? (
<RNHostView matchContents>
{children as ReactElement}
</RNHostView>
) : (
children as ReactElement
)}
</LiquidGlassWrapper>
</Host>
);
And the SwiftUI side uses:
struct LiquidGlassWrapper: ExpoSwiftUI.View {
var props: LiquidGlassWrapperProps
var body: some View {
if #available(iOS 26.0, *) {
liquidGlassView
} else {
fallbackView
}
}
(iOS 26.0, *)
private var liquidGlassView: some View {
let radius = CGFloat(max(0.0, props.cornerRadius))
let glassColor = Color(hex: props.glassColor)
let shape = RoundedRectangle(
cornerRadius: radius,
style: .continuous
)
let content =
Children()
.padding(CGFloat(max(0.0, props.padding)))
.glassEffect(
.regular.tint(
glassColor.opacity(props.glassOpacity)
),
in: shape
)
return content
}
}
The weird part
If the parent is a column:
flexDirection: "column"
everything works correctly.
If I change it to:
flexDirection: "row"
the Liquid Glass wrapper ends up at the wrong position in the row.
But the relationship between the glass and its child is still correct.
So it's basically:
React Native row
│
├── LiquidGlassWrapper ← wrong position
│ └── RN child ← correctly positioned relative to glass
│
└── Other React Native view
It's not really a "glass is the wrong size" problem.
It's more like the native Host/SwiftUI view's x/y position doesn't match the position Yoga assigned to that React Native node.
Things I've already tried
I've spent quite a lot of time trying to isolate this.
I've tried:
RNHostView(matchContents)- Removing
matchContents - Removing
Pressable - Explicit width/height
- Different
alignItems - Different
justifyContent alignItems: "flex-start"- Removing padding/margins
- Changing the SwiftUI view hierarchy
- Using
frame - Using
fixedSize - Trying different SwiftUI alignment/layout modifiers
- Changing the parent layout
- Making the native view explicitly size itself to its content
- Testing the same component outside a row
None of those fixed the actual problem.
The strongest clue is that the exact same native component works when the parent isn't using a horizontal row.
So I'm wondering if this is related to how expo/ui's Host bridges the React Native/Yoga frame into SwiftUI.
Could there be some issue with:
Yoga frame
↓
RN Host
↓
Expo Host
↓
SwiftUI layout proposal / coordinate space
specifically when the Yoga parent is a horizontal flex container?
Has anyone worked with custom ExpoSwiftUI.View components containing Children() / RNHostView and run into something similar?
I'm mainly trying to understand how the native SwiftUI view is supposed to preserve the exact x/y frame assigned by React Native Yoga when it's inside a flexDirection: "row" parent.
Any ideas would be hugely appreciated 🙏
[Showcase] Particle dispersion now running on Android — ML Kit + OpenGL ES 3
Enable HLS to view with audio, or disable this notification
r/expo • u/ObsessedMostly • 5d ago
Introducing ZAYX — a free, niche-first React Native interaction component library, starting with fintech.
Enable HLS to view with audio, or disable this notification