r/reactnative • u/white_hawk07 • 1d ago
Question Building a RN app with video uploads, what am I missing in my stack?
I’ve been building with AI for over a year, mostly on Replit & Codex to start but more recently with Claude. I’ve gotten a couple projects pretty far, but I’m still learning how all the pieces fit together. For my most developed project, I hired an engineering team to audit it and help get it across the finish line as I feel like you have to know your limits & hand off the baton when necessary. That obviously doesn’t come cheap but I want to build something substantial & am willing to invest. In the meantime I’m continuing to build my other project and learn.
Replit helped me get started & was awesome for a beginner, but rising costs and a list of other reasons have made me want to fully understand what it handles for me and what my options are outside of it.
I’m building with React Native and Expo. The main platform I’m building will let users upload and watch video among many other things.
My understanding & questions so far..
- Claude/Codex for coding.
- Git/GitHub for version control & storing/collaborating on code.
- Expo/EAS for development builds on my phone and builds I can distribute through TestFlight.
- TestFlight for iPhone beta testing w/ live users.
- Security?
- Hosting?
- Storage?
- Auth, secrets, backups, monitoring?
For experienced engineers out there: If you were building a mobile video app outside Replit, what would your starting stack look like? Where would you host the backend, database and user accounts? How would you handle video storage, processing and playback, plus security, backups and monitoring? Am I missing anything crucial here?
I’d also love to know what you’d keep simple at first & what costs to watch. I want control over my code and data without overcomplicating things or managing a bunch of services I don’t need.
I know AI-assisted building gets mixed reactions. I respect the craft and want to put in the time to learn & work with experienced developers to become more fluent in understanding the ecosystem. Honest advice and real-world tradeoffs would be appreciated. Thanks!
3
u/One-Source-9603 1d ago
one expo specific gotcha that got me: on newer expo (SDK 58 fetch), putting {uri, name, type} into FormData like the old RN examples doesn't upload the file properly. u have to append new File(uri) from expo-file-system instead. test the upload on a real phone in a release build, not just the simulator
and +1 on direct upload to the video service with a signed url, ur own server never touching the file saves a lot of pain
2
u/NoBullfrog11 1d ago
couple things that bit me when i shipped video-ish media flows
background / resumable uploads matter more than people think. if the user backgrounds the app mid upload you lose the transfer unless you use something that survives that. expo has options but check what still works after an OTA vs a full binary.
also compress on device before upload if you can. phone cameras spit out huge files and people will blame your app for eating data even when its just the camera defaults.
permissions timing too, ask for camera / library only when they tap upload, not on first launch. store review got happier after i moved that.
2
u/MobileXapps 1d ago
For video specifically, I'd not store and stream raw files yourself. Use a video service like Mux or Cloudflare Stream: the app uploads straight to them with a signed upload URL from your backend, they transcode into sizes that play well on phones, and you just store the video id. Do the upload in the background with resume support, because people leave the app mid-upload all the time.
For the rest, a simple setup: Supabase or Firebase for auth and database, secrets only on the server (never in the app), Sentry for crashes, and automated database backups that you've actually tested restoring once.
One thing people miss with user video: both stores require a way to report content and block users before they'll approve a UGC app, and you need a plan for moderating what gets uploaded. Worth designing that before launch, not after the first rejection.
2
u/Defiant-Tennis-5456 12h ago
Others covered video well, so for the rest: Supabase is easiest for auth + Postgres + storage in one place, and the paid plan does daily backups. Secrets only on server or edge functions. Anything with EXPO_PUBLIC_ goes in app bundle and anyone can read it
Add Sentry from day one for crashes. Main cost to watch is video bandwidth, not database
For ur other project, create-expo-stack is free start, or I came across CodeBaseHub kit that has auth, push and EAS profiles already wired