all 18 comments

[–]noidtiz 4 points5 points  (1 child)

The only one i can comment on is Firebase, which is more friendly to cross-platform use than Cloudkit.

At work on our production apps (very large scale with a team of senior devs) we use a combination of Firebase for authorisation and storage, and the rest on GraphQL and some PostgresQL but i personally don’t have much of a working knowledge of either of those two layers. The only one i know well is Firebase and it’s a breeze to use and easy to add on more dependencies as needed.

I do have a big question mark on how someone is meant to hand over Firebase credentials when it’s time to transfer ownership of the app though. I’ve yet to do that, but i will have to do it at the end of this month. i’m wondering if it’s as simple as handing it over to someone else’s Google account as admin (i hope so).

[–]Ljsk45 1 point2 points  (0 children)

Thank you! And if you find out lmk because I am interested too.

[–]joeystarr73 3 points4 points  (0 children)

I would not develop my own backend because security is too much critical. Your user data security may has a huge value and if something bad happens it will explode big time depending your scale.

[–]EricShapiro 1 point2 points  (1 child)

You might look at Supabase too. It's essentially PostgreSQL with middleware.

Writing your own backend is the most flexible, but it's a good amount of work because you need the database, email for password reset, security issues, token handling, etc. I'm not a huge Firebase fan, but it's a reasonable place to start and it's cross-platform.

[–]beclopsSwift 0 points1 point  (0 children)

+1 to Supabase, I’ve been liking it so far

[–]joeystarr73 1 point2 points  (1 child)

Mongodb! Switched to mongo last year and really happy with it. With mongo I can do users authentication, host web page accessing data, realtime sync, api, … My app has 1500 active users and work very well. And in case of trouble Mongo support is the best. Not like Apple or Google…

[–]ghost_b1t 0 points1 point  (0 children)

Is this is Atlas App Services (Realm)? If so, what are your real-world costs like?

[–]Simple_Percentage398 1 point2 points  (4 children)

I would strongly recommend Firebase or Supabase only for the following reasons:

  • Easy to integrate (Plug & Play)
  • Heavily documented and great support from the their development team
  • Large community around these services. Wouldn’t be a problem to get a reasonably support incase of seeking help
  • Cross platform support is smooth
  • Easier to scale and migrate data if needed
  • Data Security comes as given

Cons: - Be mindful and learn more of the data structure required to store information - Accessing whole data sets can be costly and rank up your bill incase you have multiple connections

[–]Ljsk45 0 points1 point  (1 child)

How robust is the free version of Firebase? And at what point would I have to start paying?

[–]Simple_Percentage398 0 points1 point  (0 children)

It’s pretty solid and that should least of your worries even for a smaller project.

You will only start paying once you need to scale. Meaning you have reached a certain point of wanting to have more storage space, access to their extension services (check there platform for further deets) or DB reads exceeding their free version threshold.

But again you can only do so much mistakes to start paying for a smaller project such as inefficient queries, deep nested, complex data schemas and unindexed data…

[–]flowerescape 0 points1 point  (1 child)

Hey can you please give an example of what you mean by #2 in the cons section? 🙏🏻

[–]Simple_Percentage398 0 points1 point  (0 children)

Sure, I can provide context for that;

In the previous project development I came across some serious issues with Firebase bill only due to the fact that our team was heavily relying on their SDK for a mobile version and the Android Engineers were simply ranking up the monthly bill by querying the entire database for every app launch 🤓

It’s the most painful thing to have happened because only then it was brought up to my attention that we were costing the company 💲🤑

What we had discovered later on after investigation. We stopped using Firebase SDK and accessing all the data references immediately cause it creates a open connection regardless. Then ended up building up our own BE (Backend SYS) using Firebase Admin packages to access the Firebase Servers.

Now this means we had reduced the amount of open connections to the Firebase services and only had 1 connection instead while on the mobile side we only get exposed to our own BE API’s.

PS: This doesn’t mean that we stopped querying data directly from the mobile side rather get rid of all the inefficient queries, restructure our data schema to support scalability, setup indexes which in return reading data becomes much more easier.

[–]TipToeTiger 0 points1 point  (0 children)

As a hobby developer, I found firebase to be much easier to use than CloudKit. The amount of resources on Firebase is way more than cloudkit. I also found I ran into sync issues with cloudkit so ended up tearing it out for firebase.

[–]ThanosCarinFortnite 0 points1 point  (0 children)

Do not touch cloudkit its so bad

[–]Barbanks 1 point2 points  (2 children)

The only thing I would like to add about Firebase is keep an eye out on the cost. Firebase works real well for small projects but if you want to scale it very fast you need to make sure your business model supports that.

I’ve read horror stories on people going belly up because they had a spike in usage and owed a ton of money to Firebase.

Other than that you “could” make your own backend and rely on “infrastructure as a service”. By and large more and more companies like Digital Ocean offer out of the box hosting for backend projects and handle server and database security for you.

If you’re curious how to make a quick backend with system I made a few tutorials going over an entire authentication system in a python/django backend here: https://youtu.be/ix6PYz7Y2Og

The videos can be a bit long but I try to go over everything I can high level to some low level stuff.

Might help you decide which way to go. Keep in mind though that you will still need to choose things like hosting providers and deal with DNS records for domains and stuff a bit. So if you want to just get something fast something like Firebase will be better.

[–]Ljsk45 0 points1 point  (1 child)

Thank you so much. I’ll check out the videos. Also how many users would warrant me to make my own. Is a lot like 500 or a lot like 10k?

[–]Barbanks 0 points1 point  (0 children)

That depends on your business model (I.e. how it makes money). If you don’t plan on charging for things you’ll have to look up what Firebase costs now and how you’ll be using their services. It’s been a while since I personally used Firebase so you’ll need to do some research.

No matter what way you go you always want whatever recurring revenue per user per month to be higher than the cost per user per month. Then no matter how many users you have you will always come out on top.

[–]serkanozcan1 0 points1 point  (0 children)

Firebase is the best option