<story><title>CouchDB 3.0</title><url>https://blog.couchdb.org/2020/02/26/3-0/</url></story><parent_chain></parent_chain><comment><author>splatcollision</author><text>CouchDB is awesome, full stop.&lt;p&gt;While it&amp;#x27;s missing some popularity from MongoDB and having wide adoption of things like mongoose in lots of open source CMS-type projects, it wins for the (i believe) unique take on map &amp;#x2F; reduce and writing custom javascript view functions that run on every document, letting you really customize the way you can query slice and access parts of your data...&lt;p&gt;Example: I&amp;#x27;m building a document analysis app that does topic + keyword frequency vectorization of a corpus of documents, only a few thousand for now.&lt;p&gt;I end up with a bunch of documents that have &amp;quot;text&amp;quot;: &amp;quot;here is my document text...&amp;quot; and &amp;quot;vector&amp;quot;: [ array of floating point values ...].&lt;p&gt;What I can do with couchdb is store that 20d vector and emit integers of it as a query key:&lt;p&gt;&lt;pre&gt;&lt;code&gt;    var intVectors = doc.vector.map(function(val){
      return Math.floor(val)
    })
    emit(intVectors, 1);
&lt;/code&gt;&lt;/pre&gt;
Then I can match an input document&amp;#x27;s vector (calculated the same as corpus documents), calculate a &amp;#x27;range&amp;#x27; of those vectors, pass it as start and end keys, and super quickly get a result from the database of &amp;#x27;here are documents that have vectors similar to your input&amp;#x27;...&lt;p&gt;Super fun, quick and flexible to work with!</text></comment>
<story><title>CouchDB 3.0</title><url>https://blog.couchdb.org/2020/02/26/3-0/</url></story><parent_chain></parent_chain><comment><author>newfeatureok</author><text>One interesting thing you can do with CouchDB is that you can have a webapp where a user can specify their own database and credentials and it works over HTTP(s). That&amp;#x27;s pretty unique. I&amp;#x27;d love to see a SaaS using CouchDB and their &amp;quot;on-premise&amp;quot; offering just means the user provides their own database. I&amp;#x27;m not sure how payment would work though - perhaps some verification proxy?&lt;p&gt;Firebase is the gold-standard for offline apps (as a service). CouchDB replaces Cloud Firestore, and Keycloak replaces Authentication. I haven&amp;#x27;t seen OSS equivalents of Cloud Functions, ML Kit, and the other things (e.g. In-App messaging, and Cloud Messaging). It&amp;#x27;d be nice to have the entire stack of Firebase bundled as a group of OSS projects, including CouchDB.&lt;p&gt;Sad to see that per doc access control didn&amp;#x27;t make it in 3.0. Hopefully it&amp;#x27;ll be in 3.1.</text></comment>