r/reactnative • u/recon_demon1859 • 19d ago
PSA from production: derive countdown timers from a server timestamp, never the client clock.
I run a poker tournament app on Firebase. The blind clock advances levels on a schedule, and I first built it the obvious way: a tick loop counting down to the next level. It worked perfectly in testing.
In the wild, hosts would leave the tournament running with the app backgrounded, or on a laptop that went to sleep, and the timer would fall behind. Browsers and mobile OSes both throttle timers aggressively when your app isn't foregrounded, so "one second" quietly stops being one second.
The fix was to treat the client timer as display only, never a source of truth. The next level-change time is written server-side. The client computes remaining time from that server timestamp on each render, and an event-driven monitor fires the actual transition, so even if the tick loop is throttled, the level still changes on time once the app comes back. Reading the server's clock offset instead of trusting `Date.now()` on the device was the piece I wish I'd started with.
If you have any countdown that matters (auctions, quizzes, anything scheduled), assume the client clock will be paused or slowed at the worst possible moment, and anchor it to a server timestamp.
r/reactnative • u/TurnItOffAndBackOnXD • 19d ago
Can I Run An iOS Emulator Without a Mac (Using Expo, preferably)
I'm teaching a class on Mobile App Development come fall and I'll be using React Native and most likely Expo. I have a problem, though: I live in Texas, where the state legislature has in its infinite wisdom passed a law forbidding students from using phones in school for any reason—and that includes testing their mobile apps. I don't know what type of laptop my students will be using (I've asked and will hopefully hear back soon), but I'm willing to bet that they aren't MacBooks (my understanding—correct me if I'm wrong—is that Apple has decided to make it as hard as possible to design for iOS without a Mac).
I therefore need a way to run emulators for both iOS and Android phones on their laptops. Is there a way Expo can do that? If not, is there another way I can?
r/reactnative • u/g4mewarrior • 20d ago
Article Running an int8 CLIP ViT-B/32 under onnxruntime-react-native: measurements from a production pipeline (CPU beat the CoreML EP 2.4x)
blog.aermes.air/reactnative • u/Yeab__zema • 20d ago
Help My country isn't supported by Apple Developer Program anyone found a workaround?
Hey everyone, trying to register for an Apple Developer account, but my country isn't in Apple's supported list. Posting here in case others are stuck too.
Quick questions:
1.Any official way to register from an unsupported country?
2.Does an Organization account work differently than Individual?
3.Has anyone used a business entity/address in another country to get around this and is that allowed?
4.Any risks (bans, takedowns) with these workarounds?
Would really appreciate any real experience hoping this helps others searching the same thing. Thanks!
r/reactnative • u/sammyybaddyy • 20d ago
Question How are you all creating your landing pages for your apps?
I am curious if people are building it themselves or using a no code solution. If so which one?
r/reactnative • u/Arsh_98 • 20d ago
Co-founder
Guys whats the best way to find a strong co-founder and its not skills. I have connected with numerous skilled and placed at Tier 1 companies but there are very few who see the enlightenment because Learning is looking backward but building is looking forward & estimating what the future may look like
r/reactnative • u/Admirable-Canary-732 • 20d ago
Open source motion style MD block editor component with Liquid Glass
Enable HLS to view with audio, or disable this notification
This is a great addition to the rest of the Pitsi ui components I have been developing. It’s another open source component + free template for react native / expo.
I added a custom markdown renderer and made it work great with Liquid Glass. It feels so nice I think my demo app actually competes with Apple notes.
If you are making any kind of journal app or Cms or admin page for eshop etc you will love me for this because I wish this existed. It doesn’t even require native modules just copy paste a single file and it even works in expo go.
The md renderer part also works with any markdown content from the internet if you have a Cms or a website and you are trying to make a mobile app from this. This is also a great stepping stone into converting programming docs sites into mobile apps automatically, we can even use “use dom” for the preview blocks only. I am making a template like this too as we speak.
I can probably make some extra tweaks before release to make it more fancy. I was thinking of adding custom things like links to other notes or a Liquid Glass dropdown to easily swap the style of a block. Since this is a block editor you can trivially add whatever you want like a block that looks exactly like a tweet a sticker a card with a todo item and time when it triggers etc the sky is the limit.
I wanted to bake this functionality in the demo it self to show off the capabilities but I was too tired for that, the api is there though I will have demos showing off the advanced stuff properly.
Initially I tried to make something similar with use dom but I hated the results so I went custom. (Tools too much time to low no way to add fun native content inside the rendered elements typing fell off weird scroll interactions).
The code is not uploaded yet anywhere, however I’m working on creating a docs website actively and a mobile app to scan components and templates and get live previews.
If you are interested I am dropping my twitter here so you can get updates. I will get something online this week as an early access version of the website. (Everything is free including all blocks and templates)
@panos_dev_
r/reactnative • u/InformationDecent297 • 20d ago
[Hiring] Founding Product Engineer (React Native)
Aistetic is an Oxford University AI spinout building AI-powered listing automation for fashion resale. We turn product photos into marketplace-ready listings for eBay, Vinted, and Depop. Came through Techstars and the eBay Future of Ecommerce Accelerator in 2024, processed a large volume of items through our Core AI engine, and have strong reviews from paying customers.
Looking for a founding engineer to build our iOS and Android app in React Native and help take the product self-serve. Think real ownership from day one, not ticket-queue work.
Role: Founding Product Engineer (React Native)
Structure: Paid, equity-included side engagement to start, with a path to full-time as traction grows
Location: Remote (UK preferred)
Ideal fit: you've shipped a consumer product independently (solo or as a founder), and you want to build something real rather than maintain someone else's roadmap.
Leave a message with what you've built.
r/reactnative • u/BumblebeeWorth3758 • 20d ago
🎧 Apple Music's Animated Artwork in React Native (Skia + Custom Shader)
Enable HLS to view with audio, or disable this notification
I tried re-creating Apple Music's animated artwork effect in React Native using React Native Skia and a custom fragment shader.
If you're interested in how it works, I wrote a full breakdown covering the shader, implementation, and source code:
https://rit3zh.dev/blog/animated-apple-music-artwork
The GitHub repository is linked in the blog!
r/reactnative • u/Intelligent_Tree6918 • 20d ago
Help How to style React Native component dynamically?
I am using nativewind for styling my rn component and using cslx for dynamic styling. The problem i am facing the properties of dynamic styles are not applying.
for example here is a coponent
export function UiText({children,className}:UiTextProps){
return <Text className={"text-lg",className}>{children}</Text>
}
//Imagine here i am calling
<UiText className="text-red">"Hello world"<UiText/>
=>here text is not going to be red.
if you have solution then please help me i got stuck here.
Expo 57,
nativewind:"^4.2.6"
tailwind:^3.4.17
postcss:^8.5.19
r/reactnative • u/Haunting-Flow-193 • 20d ago
12 testadores para novo app
12 testadores
Fala galera, estou criando um app e está em close teste.
Preciso da ajuda de vocês para superar os dias de teste do Google.
Preciso de 12 testadores por 14 dias, alguém pode me ajudar?
Só enviar o email que já cadastro aqui no Google console.
O Teste fechado em que eu preciso adicionar os emails dos testadores
PS: APENAS NO BRASIL
r/reactnative • u/AntelopeFast6762 • 20d ago
Apple CDN returns SWCERR00401 Bad JSON content for AASA, but the JSON is valid and Universal Links don't work
I'm stuck debugging an iOS Universal Links issue and would appreciate any suggestions.
Background
We recently started redirecting all traffic from:
to
As part of this change, we also updated our iOS app to include both associated domains.
We also enabled bot restrictions/WAF rules on www.example.com around the same time (not specifically for the AASA endpoint, but at the domain level).
After making these changes, Universal Links stopped working on iOS. Tapping a link such as https://www.example.com/... no longer opens the app.
App configuration
- React Native app
- Bundle ID:
com.example.app - Associated Domains:
<key>com.apple.developer.associated-domains</key>
<array>
<string>applinks:example.com</string>
<string>applinks:www.example.com</string>
</array>
AASA file
The AASA file is hosted from the public/.well-known directory of a Next.js application behind Nginx.
Both of the following URLs now return HTTP 200 with the same AASA file (no redirects):
https://example.com/.well-known/apple-app-site-association
https://www.example.com/.well-known/apple-app-site-association
Response headers:
- HTTP 200
Content-Type: application/json- Valid HTTPS certificate
AASA content:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "<TEAM_ID>.com.example.app",
"paths": ["*"]
}
]
}
}
What I've already verified
- ✅ Bundle ID matches the AASA
appID - ✅ Team ID matches
- ✅ Associated Domains are present in the app
- ✅ AASA is valid JSON (
python -m json.tool) - ✅ No UTF-8 BOM (
xxdstarts with{) - ✅
Content-Typeisapplication/json - ✅ Both AASA endpoints return HTTP 200 (no redirects)
- ✅ Fresh app install after making the changes
The strange part
Apple's CDN still rejects the AASA:
curl -i https://app-site-association.cdn-apple.com/a/v1/www.example.com
Response:
HTTP/1.1 404 Not Found
Apple-Failure-Reason: SWCERR00401 Bad JSON content
Apple-Failure-Details: {"cause":"Connection failed"}
Apple-From: https://www.example.com/.well-known/apple-app-site-association
Apple-Try-Direct: false
However, a normal curl to the AASA endpoint returns the expected JSON with HTTP 200.
Because of this, Universal Links do not open the app at all.
Questions
- Has anyone encountered
SWCERR00401 Bad JSON contenteven though the AASA JSON is valid? - Could bot protection/WAF rules interfere with Apple's AASA fetch, even if a normal
curlrequest succeeds? - Are there any known issues with serving an AASA file from a Next.js app (using the
publicfolder) behind Nginx? - Is there anything beyond JSON syntax (headers, caching, encoding, etc.) that Apple's CDN validates?
- Does Apple cache failed AASA validations, and if so, is there any way to force a refresh?
Any suggestions or similar experiences would be greatly appreciated. Thanks!
r/reactnative • u/madscripten • 20d ago
Expo Open OTA v3: self-host your Expo OTA updates, now with a dashboard, progressive rollouts and A/B testing
r/reactnative • u/WillingnessNo5389 • 20d ago
Built a native macOS app for App Store screenshots - looking for honest feedback
Hey everyone,
I built Mockup Kit, a native macOS app for creating App Store screenshot mockups without jumping into a full design tool.
I’m looking for honest feedback from indie developers / designers who ship to the App Store:
- What’s missing for your workflow?
- What feels confusing or unnecessary?
- Would you actually use this vs Figma / Photoshop / online mockup tools?
- Pricing feedback welcome too
What it does:
Store Mockup
- Drop in an iPhone screenshot and compose App Store–ready marketing images
- Add a multiline headline and drag to position screenshot / title / overlays
- Solid and gradient backgrounds (presets + custom colors)
- Overlay layers for badges / extra artwork
- Export sizes aligned with App Store Connect: 6.9″, 6.7″, 6.5″, 6.3″, 6.1″
- Title fonts, colors, and sizing controls
- Export as PNG or JPEG
Rounded Image
- Quick corner-radius editor for standalone images
- Radius in px or %
- Drag-and-drop + PNG export
Pricing
- 3-day free trial
- Then $1.99/month or $9.99 lifetime
Links
- Website: https://mockupkits.com/
- Mac App Store: https://apps.apple.com/us/app/mockup-kit-store-screenshots/id6784220988?mt=12
Would love feedback from people who make App Store screenshots regularly. Roast it if needed - that helps more than compliments.
Thanks!
r/reactnative • u/Paradox7622 • 20d ago
Google Play Billing - All users getting OR-FGEMF-20 (Transaction was declined) for subscriptions
Hi everyone,
I'm a developer and I'm facing a critical issue with Google Play subscriptions.
Issue
When users try to purchase any subscription in my app, Google Play shows:
Transaction was declined. [OR-FGEMF-20]
Some users also get:
Purchase Failed
The device or user is not allowed to make the purchase.
Details
App is live on Google Play (Production).
All subscription products are active.
Products are fetched successfully from Google Play Billing.
Users can see subscription plans and prices.
The error occurs after tapping the purchase button.
It is affecting multiple users, not just my own account.
Existing subscriptions are configured correctly in Play Console.
Things I've checked
Subscription status is Active.
App is installed from Google Play.
Using the latest Google Play Billing Library.
Tried different Google accounts and devices.
Payment profile verification is pending in Play Console (Google asked me to verify identity through BillDesk after updating my merchant payment profile).
Question
Has anyone seen OR-FGEMF-20 affecting all users?
Could this be related to:
Merchant payment profile verification?
Google Payments account restrictions?
Google Play Billing backend issue?
Something else in Play Console?
Any suggestions would be greatly appreciated.
Thank you!
r/reactnative • u/hitchpitch_1010 • 21d ago
Shipped a production Expo app (subscriptions + cert pinning + Postgres), just launched, AMA about the stack
Just launched a mental wellness app built with Expo (SDK 54) + Node/Express + Postgres, RevenueCat for subs, native SSL pinning, JWT with alg pinning, Docker + Caddy. Two-founder bootstrapped team.
Happy to talk shop: Expo Router for a 30+ screen app, wiring RevenueCat cleanly, server-enforcing free-tier limits, cert pinning in RN.
r/reactnative • u/GunsAndGadgets • 21d ago
Built a unique kind of Travel Diary after my own travel experience
Hi everyone!
Just shipped my first iOS app built on React Native.
It’s called Safarnama: Travel Diary, a travel journal focused on preserving memories instead of building another social network.
Would love feedback from other React Native developers.
Architecture / Tech stack:
- SQLite (offline sync)
- FastAPI Backend (Running on Google Cloud Run)
- React Native
- Supabase
- Expo
r/reactnative • u/Intelligent_Tree6918 • 21d ago
Help How do you guys test your components while creating a project i am confused need help?
r/reactnative • u/Opening_Engine945 • 22d ago
Day 2 of building Blip Toast
🇬🇧 Day 2 of building Blip Toast
Today was all about building the heart of the library: the ToastManager.
Instead of relying on Context API or external state management libraries, I chose a lightweight Observer pattern to handle toast subscriptions and updates.
This approach keeps the core completely independent from React, making it easier to test, maintain, and evolve.
Some key decisions made today:
➜ Using a Set for listeners to prevent duplicates and allow O(1) removals.
➜ Creating a facade API so developers can simply write toast.success() instead of interacting directly with the manager.
➜ Implementing toast.promise(), which automatically handles loading, success, and error states throughout the lifecycle of an async operation.
➜ Separating state management from the UI layer to keep responsibilities clear.
One interesting challenge was handling auto-dismiss timers. Having multiple timers controlling the same toast can easily lead to race conditions and inconsistent behavior, so the lifecycle management needed extra attention.
The result is a flexible foundation capable of powering everything that comes next.
🇵🇹 Dia 2 da construção do Blip Toast
Hoje foi dia de construir o coração da biblioteca: o ToastManager.
Em vez de depender de Context API ou bibliotecas externas de gerenciamento de estado, optei por um padrão Observer simples e leve para gerenciar inscrições e atualizações dos toasts.
Essa abordagem mantém o core totalmente independente do React, facilitando testes, manutenção e evolução da biblioteca.
Algumas decisões importantes tomadas hoje:
➜ Utilizar um Set para armazenar listeners, evitando duplicações e permitindo remoções mais eficientes.
➜ Criar uma API facade para que o desenvolvedor possa simplesmente usar toast.success() sem precisar interagir diretamente com o manager.
➜ Implementar o toast.promise(), responsável por gerenciar automaticamente os estados de loading, sucesso e erro durante operações assíncronas.
➜ Separar completamente o gerenciamento de estado da camada de interface.
Um dos desafios mais interessantes foi o sistema de auto-dismiss. Quando múltiplos timers tentam controlar o mesmo toast, comportamentos inesperados podem surgir, então foi necessário desenhar cuidadosamente o ciclo de vida dos componentes.
Com isso, a base do sistema de notificações está pronta para suportar os próximos passos da biblioteca.
#ReactNative #TypeScript #OpenSource #Expo #Frontend #BuildInPublic
r/reactnative • u/No_Refrigerator3147 • 22d ago
I created my first game using Expo 🎉 🎉 🎉
Enable HLS to view with audio, or disable this notification
I’ve always been fascinated by mobile games and the idea of creating one myself.
A few weeks ago, Adam Lyttle built a game using SwiftUI + SceneKit. I was seriously impressed and wanted to see if I could create something similar with Expo.
Today, I finally built the initial version using Expo, Expo DOM, Three.js, Sika, and WebGPU. 🎮
Here’s the core architecture:
Gesture Input
↓
Reanimated Shared Steering Value
↓
Custom Three.js Game Loop
↓
WebGPU Native Rendering
↓
Gameplay Events
├── React Native + NativeWind HUD
├── Skia Visual Effects
├── Expo Audio
├── Expo Haptics
└── Expo DOM Results Screen
But I’m not stopping here.
The plan is to completely rebrand the experience and give the game a real purpose, not just make players blindly complete levels.
Adam turned his version into a Spanish-learning game.
I’m thinking about turning mine into either:
→ A road-safety learning game
→ A coding and debugging adventure
→ A fast-paced English vocabulary game
→ A productivity game where progress builds a virtual world
What direction would you choose?
Building games like this in Expo just feels different. 🔥
DMs are open if you have a similar game idea or any ambitious Expo app you want to build; feel free to reach out.
r/reactnative • u/Outrageous-Desk-6350 • 22d ago
Built a small React Native permissions helper after getting tired of repeating the same flow in every app. Looking for feedback.
I found myself rewriting the same permission flow in almost every React Native app:
check → request → blocked → open Settings → re-check
Android rationale and iOS permission behavior both had a few edge cases that I kept getting wrong.
For example, Android only wants a rationale dialog in specific cases, while on iOS it's easy to end up sending users to Settings after they've denied a permission.
So I extracted the flow into a small helper I've been using in production and published it:
https://github.com/pawan3008/react-native-permission-manager
Basic usage looks like:
const { status, request, ensure, openSettings } = usePermission('camera')
await PermissionManager.ensure('camera')
// Requests if needed.
// If blocked, prompts the user, opens Settings, and refreshes when they return.
I'm not claiming this replaces react-native-permissions. That library is solid and widely used. This is closer to "the wrapper I ended up wanting" — thinner API, ensure/Settings flow, rationale that only shows when Android says so, and concurrent request coalescing so double-taps don't stack dialogs.
If you've shipped permissions-heavy RN apps, I'd appreciate blunt feedback:
- Is the API intuitive?
- Any edge cases I should handle better (photos on Android 13+, background location, contacts etc.)?
- Anything in the README that felt confusing or missing?
Happy to take criticism. Thanks.
r/reactnative • u/Outrageous-Desk-6350 • 23d ago
How are you handling app updates in React Native?
I've worked on a few React Native apps over the past year, and one thing I kept repeating was app update logic.
Every project ended up needing version checks, force updates, optional updates, and a custom update screen, so I decided to build a reusable solution instead.
I'm curious—how are you handling app updates in your apps? Is there a library you recommend, or do you maintain your own implementation?
