Just want to note Couchbase is not just for mobile. Couchbase Server is an enterprise-class document-oriented (like Mongo) db with a dynamic query language that's a superset of SQL. (FD: I work for Couchbase).
This was a bit of humor delivered for entertainment at the closing of an Android conference (360AnDev, which I highly recommend). The speakers are two of the most well known in the Android community (Chet Haase and Romain Guy, both from Google).
On the "easy" front, your suggestions are cool. Why do you think this hasn't happened?
That analysis is from 4 years ago and is wrong in many, many ways at this point. As for "the general consensus", I'd like to see evidence that's true among real enterprise users. (FD: I work for Couchbase.)
The native/hybrid/web discussion has been going on a long time. The general consensus I've found is that web/hybrid is fine for some things, like magazine style apps, and untenable for more complex needs.
The app described seems to fit into the magazine style category (and was developed on a pretty high-end device). So to me this comes off as a "works for me" inappropriate generalization.
Couchbase (not CouchDB) gives you a whole bunch of things. You get the embedded document database, sync/replication, conflict management, auth, scale, data routing, querying, and more. Not every project needs all these things, of course. It's just damn hard to get this stuff right when you do need it.
I also personally find it way easier to use than the standard stores on Android and iOS for on-device persistence. 2.0 is coming up and should simplify the use a bit, too. So as it stands now I'd say the main sweet spots are, ironically, around the two ends of the spectrum. Easy to use for persistent local storage with no sync, and the industrial strength solution when used with sync.
With Couchbase Mobile, we shy away from the "realtime" claim, because it's vague. (Ask a high-frequency trader how they define realtime...) Having said that, we have customers that are very happy with the response times. Always been open-source. Check our blogs for steps to get everything set up front to back to develop on one machine.
Couchbase Mobile is open source. Couchbase only provides the data platform, but is significantly more sophisticated at it than Firebase. Firebase offers many other services, so you can't really make a direct comparison. In simple terms, the way I think of it, Firebase goes wide, offering a package with many elements, while Couchbase goes deep on one area, the data platform. (FYI I work at Couchbase.)
Thanks for the kudos. The team works very hard to make the offline first capabilities best in class.
I'm not sure who at Couchbase is "strongly" recommending against the Community Edition. Of course we'd like to have people on the Enterprise Edition, but I think the information is out there to make an informed decision. You should only be getting a hard push away from CE if they really believe you'll need the support. Anyway, this is good feedback.
I think I can give one concrete example where a NoSQL choice (often) makes sense. Common modern day scenario in mobile is to build an app and iterate. Migration in RDBMS rapidly becomes a real pain. Worse, you have no good sync solution in case you need it. Contrast with something like Couchbase Mobile. NoSQL embedded db is much easier to get going with. (Just check the Android docs on using SQLite and see how it compares to "here's my JSON, done".) Sync doesn't get in the way, but if/when you need it, you're going to be really happy it's there. (Disclosure: I work for Couchbase.)
If you're looking for offline-first, Couchbase Mobile natively supports a range of platforms. CouchDB + PouchDB gives you a JavaScript option. (Currently you can use PouchDB with Couchbase as well.)
I don't think of Realm as being at all like Firebase, except from a very high level. Realm isn't hosted, it's an object database, until recently didn't do sync, and more.
NoSQL databases arose in response to the growth and change in data use, driven largely by the web. Typical needs cited include scalability, availability, performance, and flexibility. Development has been going on for a long time.
I think most would agree there is no longer a one size fits all (or even most).
Realm (and I know someone will correct me if I'm wrong) started out as an on-device only replacement for relational-style dbs focused on ease-of-use and performance.
It's not the only one. Couchbase Mobile is a NoSQL stack that has an on-device db that's also easier to use, and has focused for many years on getting sync right (which is a hard problem).
Not understanding the idea here. PouchDB isn't a BaaS. RxDB is a wrapper for PouchDB, correct? PouchDB is a great project, so not criticizing, just not sure what criteria you're using.
Another option to check out is Couchbase Mobile. Open source, self-hosted database with full offline functionality and a solid sync solution.
I think Firebase is pretty amazing. Have been a fan since I met some of the team (I think it was at the 2011 Launch conference). Like anything, though, there are tradeoffs.
Briefly, I'd say that there's overlap, with Couchbase Mobile tending to shine toward the more complex end (including making the 10% much easier), and also being extremely easy to use as a substitute for SQLite/Core.