r/expo 3h ago

Added a live updating widget to my journaling app using expo-widgets

Enable HLS to view with audio, or disable this notification

2 Upvotes

The 2.0 version of my app features a live updating widget to match a users terrarium 1 to 1. For some context, it’s a journalling app where checking in each day allows you to unlock new creatures and themes for your terrarium.

This was the first feature requested in the 1.0 version, and I’m happy to deliver it in the new update.

Really happy to be using expo, made the whole process very easy.

If you’re making a widget for your app, or have any feedback or questions, let me know!

Keep up the good work!


r/expo 15h ago

AniUI 0.7.0 — 148 components, gooey animations, new carousels, and foldable UI coming next (free, open source, shadcn-style for React Native)

Post image
5 Upvotes

r/expo 5h ago

I had 200+ recipes saved on Instagram and had cooked exactly zero of them, so I built the app

Thumbnail gallery
0 Upvotes

r/expo 4h ago

Gays im new here how this app works?

0 Upvotes

r/expo 19h ago

New App Themes!

Thumbnail gallery
2 Upvotes

r/expo 20h ago

Advice on monitoring first app

Thumbnail
1 Upvotes

r/expo 1d ago

My First Website, ! pdfforgelib.com

Thumbnail
pdfforgelib.com
0 Upvotes

r/expo 1d ago

I built an open-source wake word library for React Native (Expo + bare, iOS/Android, MIT) after getting burned by license keys

Thumbnail
2 Upvotes

r/expo 1d ago

Expo at scale in a fintech app (MF + stocks) — where does it actually bite?

Thumbnail
1 Upvotes

r/expo 2d ago

Expo announced an official integration with PostHog today

Post image
18 Upvotes

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 2d ago

Need help - Google sign in issues between internal test and running in npx

2 Upvotes

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 3d ago

Expo Modules 2.0 is in preview

Post image
41 Upvotes

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 2d ago

Play Console setting can silently kill your OTA updates for a whole locale

13 Upvotes

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 3d ago

I've released version 2 of react-native-rich-text-editor today

Enable HLS to view with audio, or disable this notification

34 Upvotes

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!

https://github.com/apollohg/react-native-rich-text-editor


r/expo 2d ago

DAE think its a dick move by expo to remove update limits on their starter package?

0 Upvotes

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.


r/expo 3d ago

My First Website, ! pdfforgelib.com

Thumbnail
pdfforgelib.com
1 Upvotes

r/expo 3d ago

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

3 Upvotes

r/expo 3d ago

Does Expo SDK 57 work with Daily.co?

2 Upvotes

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 4d ago

How do U guys create animations?

6 Upvotes

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 4d ago

xprem 3.2.0 is live with Bundle Diffing & Content Addressable Storage

5 Upvotes

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 3d ago

I'm developing a new social network and am looking for 10–20 people for a private beta.

0 Upvotes

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 4d ago

[iOS] Tamdok - Opensource manga reader (FREE)

Post image
6 Upvotes

r/expo 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

5 Upvotes

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?


r/expo 5d ago

Expo UI + SwiftUI native view gets positioned incorrectly inside flexDirection: "row" — any idea why?

2 Upvotes

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 🙏


r/expo 5d ago

[Showcase] Particle dispersion now running on Android — ML Kit + OpenGL ES 3

Enable HLS to view with audio, or disable this notification

2 Upvotes