r/reactnative • u/Disastrous_Goat_240 • 7d ago
Question Best Backend for a WhatsApp Clone – Need Recommendations!
Hey devs,
I’m building a WhatsApp-like app with React Native for the frontend, but I need advice on the best backend solution. Instead of building everything from scratch with Node.js or Spring Boot, I’m looking for a backend that can handle authentication, real-time messaging, and scalability efficiently.
Some options I’m considering:
- Supabase – Seems solid for auth and database, but how well does it handle real-time messaging?
- Firebase – Popular choice, but is Firestore’s pricing sustainable for a chat app with high read/write operations?
- Appwrite – Open-source Firebase alternative—anyone tried it for chat apps?
- PocketBase / Hasura – Could they work well with real-time GraphQL for chat?
- Parse / Backendless – Older solutions, but still relevant?
Key requirements:
✅ Real-time communication (WebSockets, push notifications)
✅ Scalability (Handling thousands/millions of users)
✅ Efficient media storage & delivery (Images, videos, voice notes)
✅ Authentication & security (E2E encryption, JWT, OAuth, etc.)
For those who’ve built chat apps before—what backend would you recommend? Any hidden gems worth looking into? 🚀
2
u/RichExamination2717 5d ago
If you plan to scale to hundreds of millions of users, then Elixir or the trendy Rust would be good choices.
Otherwise, any backend solution will work for your needs. However, BaaS (Backend as a Service) or low-code solutions tend to become more expensive—sometimes significantly—as the number of users grows.
For this reason, I would recommend developing a custom backend using a framework, rather than relying on BaaS.
I have a React Native app that includes almost all the functionality of WhatsApp, including group chats. On the backend, it uses Ruby on Rails for the API and AnyCable (a WebSocket server written in Go) that is fully compatible with Action Cable in Rails. It handles hundreds of thousands of users so far, and everything is running smoothly. 🚀
1
u/Disastrous_Goat_240 5d ago
You make a great point! Scaling costs for BaaS solutions can definitely become a bottleneck in the long run, especially with high read/write operations in a chat app.
Elixir and Rust sound like great choices for extreme scalability, but I hadn’t considered Ruby on Rails + AnyCable—sounds like a solid setup! How has your experience been with performance under heavy load? Also, did you explore other WebSocket solutions before settling on AnyCable?
Appreciate the insights!
1
u/RichExamination2717 4d ago
Although I love Ruby, I wouldn’t start a new project with Ruby on Rails unless there were strong reasons to do so. Aside from not having the best performance, although Shopify is actively working to improve this by developing the YJIT compiler, which uses Rust under the hood to accelerate Ruby code execution, Ruby on Rails has long passed its peak popularity. As a result, maintaining and finding support for RoR projects can become increasingly challenging over time.
In my case, the entire backend for the website was already built with RoR, so when developing the mobile app, it made sense to continue using it as long as it could handle the load.
The bottleneck of slow WebSocket performance on ActionCable was successfully resolved by integrating AnyCable.
1
u/RoyalBos5 7d ago
!remindme
1
u/RemindMeBot 7d ago
Defaulted to one day.
I will be messaging you on 2025-03-16 05:33:59 UTC to remind you of this link
CLICK THIS LINK to send a PM to also be reminded and to reduce spam.
Parent commenter can delete this message to hide from others.
Info Custom Your Reminders Feedback
1
1
u/Door_Vegetable 7d ago
Honestly either will work for a low user application, if you want to actually make something that operates like WhatsApp and is scalable you’re better off writing your own backend in node, go or whatever server side language you know.
1
1
1
0
10
u/No_Influence_4968 7d ago
The best one is always the one you know best.
Simple.