# Awesome CouchDB

> A curated meta resources & best practices list for CouchDB.

CouchDB is a document-oriented NoSQL database that syncs.

Pull-Requests are welcomed.

## Contents

- News & Blog Posts
- Patterns & Best Practices
  - Map/Reduce
  - Joins
  - Document Versioning
- Blogs
- Docs
- Books
- Videos
- Libraries
- Community
  - Mailing List
  - Companies
    - Hosting
  - Related Projects
- Misc/Technical
  - Attachments
  - Backups
  - CouchApps
  - Scaling
- Resource Lists
- License

## News & Blog Posts

- MiniCouchDB in Rust
- The Road to CouchDB 3.0: Prepare for 4.0 (02-26-2020)

## Patterns & Best Practices

- Best Practices - Best Practices, eHealth Africa.
- Pagination strategies with PouchDB
- 12 pro tips for better code with PouchDB
- Linux tuning for better CouchDB performance

### Map/Reduce

- PouchDB - Secondary Indexes
- Cloudant - MapReduce Primer - Great intro on reduce, group, group_level.
- Using View Collation - Index mapping (emits) for data joins.
- Views Collation - More documentation on “View Collation”.
- Cloudant - MapReduce and the Secondary Index (Video) - Great videos here on mapReduce, secondary indexes, and complex keys.
- Cloudant - Design Documents - Cloudant’s documentation is also great resource for learning concepts of CouchDB.
- Cloudant - Design Document Management - How to manage design doc changes in production.

### Joins

- Joins with Views - Must read for understanding approach on doing efficient joins for CouchDB/PouchDB.
- Grouping related documents together in Cloudant - An approach that leverages CouchDB high availability nature.

### Document Versioning

- Document Revisions (from wiki)
- Simple Document Versioning

## Blogs

- Official Blog

## Docs

- Official Docs
- FAQ (old wiki) - Seems to have more faqs than the new wiki.

## Books

- The Definitive Guide - CouchDB’s “Dog” Book.
- List of books on the Wiki

## Videos

- 10 Common Misconceptions - More videos from this conference.
- The NoSQL Tapes - CouchDB is discussed on Volume 5 - CouchDB, Volume 8 - MapReduce.
- Scaling Out with BigCouch - O’Reilly video on scaling out with BigCouch.
- IBM - The New Builders Webinar Series

## Libraries

- Jaki - A simple ClojureScript CouchDB client

## Community

- IRC - `irc://irc.freenode.net/couchdb`
- Apache CouchDB Conf - Lots of video links.
- Bylaws, Minutes

### Mailing List

> -dev is where developers of couchdb chat, -user is where users of couchdb chat and there’s some crosstalk ofc -dev is appropriate if you’re talking about changes to couchdb itself (“developer” doesn’t mean you have to have a commit bit or anything) -rnewson

- Mailing Lists
- Mailing Lists Description
- Grokbase - Mailing lists in a Stack Overflow-like interface.

:star2:The Amazing CouchDB Committers and Project Managers :heart_eyes_cat:

### Companies

- eHealth Africa - Big user of CouchDB, check out their best practices.

#### Hosting

- Cloudant - Distributed database as a service (DBaaS).
- Fly.io use this Guide to host
- Bitnami Launchpad for Google Cloud Platform - Host CouchDB on Google Cloud Platform.

### Related Projects

- PouchDB - A pocket-sized database.
- FoundationDB - CouchDB 4.0 will utilize FoundationDB.
- Hoodie - A backend for Offline First applications.
- Couchbase - NoSQL database.
  - Migrating from Apache CouchDB - Comparison of CouchDB and CouchBase
- RxDB - NoSQL-database for JavaScript Applications. RxDB provides modules for realtime replication with any CouchDB compliant endpoint and also with custom GraphQL endpoints.

## Misc/Technical

- Dynamo and CouchDB Clusters - Article about scaling CouchDB, using clusters.
- Google’s paper on Sawzall - Exotic Reductions Examples.
- What Every Developer Should Know About CouchDB - Article about lessons learned.
- CouchDB Maximum Database Size
- NOSQL Patterns
- Persistent Trees in git, Clojure and CouchDB
- CouchDB - JSON and B-trees and REST, oh my!

### Attachments

- PouchDB - Attachments are overrated - “Update: since this post was written, the stability and performance of attachments in PouchDB has greatly improved. …”
- Cloudant - Attachments Performance Considerations
- Are attachments duplicated for each revision? - Mailing list discussion about attachments across revisions.

### Backups

- Simple CouchDB and Cloudant Backup - Article on IBM about backups.
- Cloudant Backup Guide - Cloudant docs on backups.

### CouchApps

- List of CouchApps
- Ddoc Lab - Create couchapps and CouchDB design docs right in your browser.

### Scaling

- Bitnami CouchDB - Bitnami makes it easy to run CouchDB in the cloud.

## Resource Lists

- Official CouchDB Wiki
- Official CouchDB Wiki (old) - Some things aren’t on new wiki yet.
- Cloudant Official Guides - Applicable to CouchDB.
- List of CouchDB Clients
- List of CouchDB Useful Utilities
- Old Wiki’s Related Projects List

## License

This work is licensed under a Creative Commons Attribution 4.0 International License.

couchdb.md Github