r/expo

What's your stack for a local-first field service app? Expo's guide lists the options but doesn't help me choose
▲ 7 r/expo+1 crossposts

What's your stack for a local-first field service app? Expo's guide lists the options but doesn't help me choose

Building a field service app and trying to pick a stack before going too deep. Would love recommendations from people who've shipped something similar.

What I'm building:

  • Web app for the office team — creating jobs, assigning technicians, tracking progress
  • Mobile app for field technicians — accepting tasks, updating statuses, adding notes

The hard constraint: Technicians regularly work in areas with zero connectivity. Offline isn't a degraded mode — it needs to feel fully functional, with changes syncing back when they reconnect.

What I've read so far:

Expo has a local-first guide (https://docs.expo.dev/guides/local-first/) that lists a bunch of tools — Legend-State, TinyBase, RxDB, LiveStore, Turso, Jazz, PowerSync, ElectricSQL — but it's more of a survey than a recommendation. It even notes that "the tools available today are still in their early stages" which isn't exactly reassuring.

What I'm trying to figure out:

  1. Which of these tools is actually production-ready for a use case like mine? I need reliable bidirectional sync, not just local persistence.
  2. Is conflict resolution something any of these handle well out of the box, or will I always end up rolling my own?
  3. Is there anything the Expo guide doesn't mention that I should be looking at?
  4. Any regrets? What did you start with that you later had to replace?

Not looking for the perfect answer — just want to hear what's worked for people who've been through it.

u/derdak — 16 hours ago
▲ 3 r/expo+1 crossposts

How long does it take yall to upgrade your Expo SDKs 👀

I’ve been upgrading my project since expo 48. I always see YouTubers upgrade their projects in like 2 minutes. I’ve never had a clean upgrade. How long does it take y’all usually?

reddit.com
u/7777domtx — 20 hours ago
▲ 3 r/expo+3 crossposts

Finally did it. RadiJar is live on the App Store as of today.

https://apps.apple.com/app/radijar/id6762513400

It’s a life skills and habit-building app for kids — kids get missions from parents, complete them, earn coins, and redeem for family-defined rewards.

There’s also a virtual pet that evolves as they progress. The parent and child share one app but have completely separate dashboards.
Stack:
• Expo React Native (Expo Router for navigation)
• Supabase (Postgres, RLS, Edge Functions, Realtime)
• RevenueCat (subscriptions — CA$4.99/month, CA$39.99/year)
• EAS Build + TestFlight for distribution

iOS only for now. Android (same Expo codebase) coming in June.
Happy to answer questions about any part of the stack or the App Store submission process.

https://apps.apple.com/app/radijar/id6762513400

u/Useful-Funny3261 — 17 hours ago
▲ 15 r/expo

Open Source ASO Skills for making sure your apps get found

The numbers are uncomfortable: The App Store has over 2 million apps. Paid acquisition costs are up 30% year over year. And 65 to 70% of downloads still come from App Store search, not from ads, social, or influencers. That means your title, subtitle, keyword field, and screenshots are doing more for your install count than almost anything else.

A few things most mobile devs miss:

◆ Your title is your strongest ranking signal. A core keyword in the title can lift rankings by up to 10%.
◆ Apple now indexes the text inside your screenshots. Semantic search means captions are a ranking factor, not just a conversion tool.
◆ The iOS keyword field is 100 characters, hidden from users, and fully indexed. No spaces after commas, no duplicates from the title, no filler.
◆ Localization is the biggest untapped lever. Every locale gets its own title, keywords, and screenshots, and most teams ship English only.
◆ Ratings and reviews are a direct ranking factor. Prompt at the right moment, after a user finishes something meaningful, never on first launch.

Full repo of 20+ ASO Skills and best practices can be found in this new blog post from a community member: https://expo.dev/blog/aso-skills-aso-in-your-ai-workflow

u/ExpoOfficial — 19 hours ago
▲ 6 r/expo+5 crossposts

Will Google Play flag this "Wellness Dashboard" as a Medical App?

Hey guys, submitting an Expo app soon for a local yoga/wellness studio and trying to avoid Play Store rejection hell.

We built a "Wellness Assessment Dashboard". The user doesn't enter any data themselves. Instead, when they visit the studio, the staff does a physical assessment and uploads data (strength levels, flexibility, progress photos) via a web admin panel. The app is just a read-only dashboard for the user to view their progress.

Since it's labeled "Wellness" and "Strength" rather than a medical diagnosis, does Google still heavily scrutinize this under their strict Health Data policy?

We use Firebase, standard HTTPS, and have disclaimers. Is there any hidden trap or common rejection reason for one-way wellness tracking like this?

Thanks!

reddit.com
u/Kooky_Classic_1154 — 23 hours ago
▲ 2 r/expo+1 crossposts

Hitting the "app-killed / data-only FCM" problem — notifications stop showing after swiping app away on Android

Hey everyone, I'm running into the classic Android FCM "app-killed / data-only message" problem and would love any insights or confirmation from folks who've solved this.

The setup:

  • React Native + Expo (or RN Firebase, depending on what you're using)
  • App shows notifications by scheduling local notifications in JS after receiving an FCM data message
  • When the app is in the foreground/background, notifications work fine
  • When I swipe the app away (Android kills the JS runtime), notifications stop appearing

What I think is happening:

  • We're sending data-only FCM messages
  • Our JS background handler schedules a local notification
  • Once Android kills the app (swipe-kill / force-stop), the JS runtime is gone
  • setBackgroundMessageHandler can't run, so no notification is shown
  • Android doesn't guarantee delivery of data-only messages when the app is killed/force-stopped

What I've searched:

  • "Android FCM data-only message not delivered when app is killed"
  • "FCM notification vs data payload app killed"
  • "React Native Firebase setBackgroundMessageHandler app killed"
  • "Expo notifications background FCM app force stopped"

What I'm considering:

  • Switching to an FCM payload with a top-level notification block so Android displays it natively
  • Moving user-visible title/body into notification, keeping routing metadata in data
  • Creating proper Android notification channels
  • Checking android.priority: "high" for time-sensitive alerts

My question:

  1. Has anyone successfully made notifications appear after swipe-kill on Android with React Native/Expo?
  2. Is switching to a notification payload the right fix, or is there a manifest/Gradle setting I'm missing?
  3. Any Expo-specific or React Native Firebase-specific tips for handling this?

If you've solved this, I'd really appreciate:

  • Your final FCM payload structure
  • Any Android-side config (channels, permissions, manifest)
  • Whether you're using Expo Notifications or react-native-firebase

Thanks in advance!

reddit.com
u/Spirited_Ice_3233 — 1 day ago
▲ 16 r/expo+1 crossposts

📞 expo-callkit-telecom: modern CallKit + Core-Telecom integration for React Native

I built an expo-module that lets you integrate CallKit / Core-Telecom with VoIP notifications (PushKit/FCM) into your React Native application easily without writing any native code.

Docs: https://expo-callkit-telecom.mfairley.com

In comparison with react-native-callkeep, the main differences are:

- Includes an Expo plugin that manages setting up entitlements, custom dial tones/ringtones and timeout durations for you
- No need to write any native code to get your app to work in the background or set up PushKit. Cold start is handled for you so a user can answer and speak on a call from the lock screen.

- Simpler and unified API across iOS/Android
- Uses Core-Telecom for Android, which supersedes the older ConnectionService
- Written using modern Swift/Kotlin and tested with the latest iOS/Android versions, Expo 55 and LiveKit. react-native-callkeep has not been updated in the past 2 years, and is written in Objective-C/Java.

I hope this makes your life easier: building native calling UI integration for React Native apps is one of the harder parts of building a VoIP app.

u/mfairley — 1 day ago
▲ 12 r/expo+1 crossposts

Which package are you using for your local ai apps

Am trying to build a local note taking app with speech to text functionality and local document processing app. I want to integrate small ai models into them and I've come across 3 packages that are promising

  1. Callstack: react-native-ai
  2. Software Mansion: react-native-executorch
  3. Cactus Compute: cactus-react-native

I was curious for anyone who has built a local ai app, which of these have you used and found success with. It should work for both Android and Apple, mostly Android

reddit.com
u/Wild_Juggernaut_7560 — 2 days ago
▲ 67 r/expo+2 crossposts

I’m making an app where you collect real-world cats and battle your friends

I’ve always loved cats. Whenever I see one outside, my first instinct is to try and make friends with it. That’s what inspired me to build an app that turns those random cat encounters into something collectible. You snap a photo of a cat you find, and the app automatically cuts it out, transforms it into a cute little 3D-style collectible, and assigns it attributes and a rarity level.

Right now, it’s mostly a fun way to keep a personal collection of all the cats you meet. But eventually, I want to expand it into a cat battler game, where your collected cats can go up against your friends’ cats. It’s not on the Play Store yet, but if you’d like to try it out, let me know and I’ll send you access. I’d really love to get feedback from fellow cat lovers.

u/Ok_Day7969 — 3 days ago
▲ 30 r/expo+1 crossposts

New blog post about how to get fast builds no matter what plan you're on

Hey folks. Wanted to share what we've been working on around build speed, since it's the thing we hear most about and the thing that most directly impacts how fast you can iterate.

The short version: Mac Minis are scarce globally right now (AI automators, indies, enterprise teams all buying at once + long lead times), and that affects every cloud build service running on Apple silicon. We're addressing it head-on rather than letting queue times creep up.

What's actually happening:

◆ Dozens of new M4 Pro and Max Mac Minis added to our build fleet. More are being racked. More are on the way.
◆ Compiler-level caching is now live for SDK 54 and 55, speeding up fastlane and gradlew steps by up to 30%
◆ Gradle caching rolling out for Android
◆ Prebuilt binaries for react-native-reanimated and react-native-screens so you stop paying that compile cost
◆ SDK 56 will ship prebuilt XCFrameworks for our most complex iOS Expo modules

The other angle we're pushing: building less in the first place. If you haven't set up EAS Update + fingerprint workflows yet, this is the move. Most code changes are JS-only and don't need a full rebuild. Fingerprint workflows hash your native code, so commits that don't touch native just ship an update instead of triggering a new build.

And the Expo CLI can also build locally via your Xcode or Android Studio install if you need to debug native or work around network restrictions. npx expo run:ios and npx expo run:android both work and play nicely with development builds.

Full write-up with the workflow examples and local build guide: https://expo.dev/blog/build-fast-no-matter-what-how-expo-is-optimizing-for-speed

Happy to answer questions in the thread.

u/ExpoOfficial — 3 days ago
▲ 1 r/expo+1 crossposts

Built my first production iOS app with Expo, would love feedback on the improved onboarding flow

Hey everyone, I’ve been building Logly, an AI food and progress tracker for iOS.

I recently redesigned the onboarding to make it feel smoother and less overwhelming for first-time users. The goal is to explain the value quickly: write what you ate, get calories/macros estimated, then track weight, measurements, water, and progress over time.

I’d really appreciate feedback on:

- does the onboarding feel too long?
- is the value clear in the first few seconds?
- would you show the paywall before or after the first AI food log?
- anything that feels too generic or not native enough?

Not trying to spam, just looking for honest feedback from other Expo devs.

u/Knuckleclot — 3 days ago
▲ 1 r/expo

Paywall pricing error

This is a iOS only app I am making. I’m using super wall to set up a paywall in expo. Does anyone know why the subscription prices don’t show up. I published my paywall and set up a campaign, apple app center approved all my prices and I added the meta data. In the identifiers and certificates or whatever it’s called I have in app purchases on. Claude said to use a sandbox account and I’m using it but for some reason I still have this problem. I notice that on superwall website when I preview the paywall page the numbers then disappear and look like the mobile app but in the superwall paywall editor the numbers show up properly.

u/Objective-Raspberry8 — 3 days ago
▲ 52 r/expo+1 crossposts

HotUpdater now supports Bundle Diffing (up to 90% smaller OTA updates)

Hey folks 👋

I’ve been working on an open-source React Native OTA update system called  HotUpdater as a self-hosted alternative to CodePush/App Center.

In v0.31.0, I added Bundle Diffing support.

Previously, OTA updates required downloading the entire JS bundle again even for small changes.
Now HotUpdater can ship only the changed JS + assets between versions, which reduced OTA payload sizes by up to ~90% in my tests.

Some features:

  • Self-hosted
  • Open source
  • AWS / Cloudflare / Supabase / Firebase support
  • Rollback support
  • Code signing support
  • No vendor lock-in
  • Supports both appVersion and fingerprint strategies

This release also includes:

  • rollback improvements
  • multi-patch artifact support
  • migration / infra fixes

Release notes:
HotUpdater v0.31.0

Would love feedback from people shipping React Native apps at scale 🙏

hot-updater.dev
u/gronxb — 4 days ago
▲ 5 r/expo+3 crossposts

Shipped v2 of Biliore, my Expo finance app — would love feedback

Hi all,

I'm the solo dev behind Biliore, a small iOS app for tracking your total net balance across accounts. Built with Expo / React Native.

v1 was pretty bare-bones. v2 is the version I actually wanted to ship: polished recurring transactions, monthly stats, per-category limits, and a new projected savings card with a goal indicator. Same idea, just everything works the way it should now.

If anyone wants to try it and tell me what to fix next, I'd genuinely appreciate it. Free on the App Store — search Biliore or here: https://apps.apple.com/us/app/biliore-finanzas-personales/id6757939242. Open to UI critique too, screenshot on the post is the home screen.

Thanks 🙏

u/DonIgnaci0 — 3 days ago
▲ 39 r/expo+1 crossposts

Update: shipped the app you helped me design. A few RN/Expo learnings

A few weeks back i posted here asking which design to go with for my weekly challenge app. THANK YOU so much for all the input! I iterated on the branding as per your feedback and released the app.

It's the first time i'm building a RN/Expo app so I wanted to share my findings, frustrations and some of the commands/choices i made.

quick brief: every week the app gives you a small dare. cold showers, talk to a stranger, phone-free mornings, etc. you commit for 7 days and take one polaroid as proof. Over time you build your "Scrapbook" with memories

Project Structure

I ended up going with a typescript monorepo. Simple stuff: bun/hono server, RN client and Tanstack Start webapp. I'm actually quite happy with the setup i did, used a common biome and tsconfig across the board. For sure something that

stack: expo, uniwind (tailwind for rn), zustand (app state) + react query (server state) + sqlite + kvvm (storage)

Was quite happy with this setup, will for sure use it again for my next project. If you want more info, I've documented the setup here.

Expo dev

I had to move away from Expo GO almost immediately as some the packages i use are not supported. Setting up a dev server is quite easy but the Camera doesn't work on simulators!!

Sadly, i bit the bullet and paid 99$ apple dev profile so i can test on my phone. This became the main testing device I used.

Expo builds

Once i had something to show, I pushed it to Test Flight so my fiance/friends can play with the product. I HIGHLY recommend doing this as you get a LOT of feedback early on. There are so many things i didn't see whilst developing, it's crazy man (skill issue too i'm sure).

Initially I used expo's cloud offering to build and submit the app to apple connect. That was a huge pain in my ass.. well over 90m for a build...

I've got a mac so i decided to build locally. It took me like 1-2 hours to setup, but I got a pretty good flow:

  1. First build the project (be sure to set EAS_LOCAL_BUILD_WORKINGDIR as it will fail otherwise)EAS_LOCAL_BUILD_WORKINGDIR=$HOME/eas-build-tmp bunx eas-cli@latest build --local --platform ios --profile production
  2. Submit using the Transporter app - worked perfectly

Takes around 10m e2e using a macbook pro with 16 gigs of ram. Not bad

Apple review was weirdly chill

3 days end to end, fast and friendly. two gotchas worth knowing:

  1. You have to test on ipad even if your app isn't for ipad. when an iphone-only app runs on ipad the screen (ironically) ends up tiny and that's where my layout broke and my review got declined.
  2. You NEED to put your terms of service link in your app store description? Strange cause there's already a field for this, but required. Cause of this my second review failed.

Reviewers also flagged a couple of genuinely nice optimisations for me. cheapest QA pass i've ever had, honestly.

Building solo with claude

Got way better with practice. Mostly about setting up the right context (CLAUDE.md files, splitting work into discrete tasks). still very much learning here - genuinely curious how others are doing it. Lmk if you want my setup.

All i can say is that the impeccable skill did some heavy lifting! - but you still need to rely on your brain. don't just ask it to take YOUR decisions.

u/TheWalkingFridge — 5 days ago
▲ 5 r/expo

I got tired of not knowing where my money went, so I built my own expense tracker. It's free, no ads, no subscription.

I'm not a finance person. I'm just someone who kept hitting end of month and wondering where it all went.

The stack

React Native + Expo, SQLite on-device, Zustand for state, Reanimated for animations. Fully local with optional cloud sync.

Every app I tried either wanted $10/month, shoved ads in my face, or was so bloated I stopped using it after a week. So I built my own.

It tracks:

  • Monthly expenses by category
  • Recurring subscriptions (so you actually see how much Netflix + Spotify + everything else adds up per month)
  • A personal ledger for money you've sent or received from people
  • Multi-currency support if you deal with more than one
  • Budget limits with warnings when you're close

Your data stays on your device, with optional cloud sync.

(It’s an offline-first app, so everything works without internet.)

Download the app here .

It's completely free. I built this for myself and figured other people might find it useful too.

Happy to answer questions or take feedback — still actively working on it.

u/Embarrassed_Ruin_588 — 4 days ago
▲ 15 r/expo+1 crossposts

I’m building UI-Based MMORPG, here’s some gameplay

The project has been in beta for almost a year. I'm slowly getting closer to the official release.

Stack used is: expo, nativewind, react navigation, reanimated, zustand, react native reusables

If you want to ask questions, feel free to do it

If you want to try it out, visit https://realmofdungeons.pages.dev

u/zlvskyxp — 4 days ago
▲ 14 r/expo+2 crossposts

made an onboarding flow in expo, would love some feedback

hey guys, i’ve been building an ai food/progress tracker in expo and finally got the onboarding to feel decent

recorded a quick video of the flow. it asks for goal, weight, activity, nutrition focus, optional apple health, then shows the users starting targets

would love honest feedback on the ux

does it feel too long?
does the copy make sense?
does it feel smooth/premium enough?

stack is expo, react native, typescript, convex, revenuecat

u/Knuckleclot — 5 days ago
▲ 1 r/expo+1 crossposts

Scaling problem

I have a react native (expo) project that is having problems where I add new features other features doesn’t work as intended - sometimes I burn a lot of tokens and it will go away but sometimes it just becomes another problem. I’m thinking to get some programer to look at this.

Has anyone reached a stage where you have to hand off to professional engineers because the project is unstable and changing a slightest thing will cause other features to be buggy? Not exactly completely not working but just weird in behaviour?

I have this problem right now and I’m wondering what other people do in this situation.

reddit.com
u/LabLambReddit — 5 days ago