Apache CouchDB™ is a database

that uses JSON for documents,

JavaScript for MapReduce indexes,

and regular HTTP for its API

A Database for the Web

CouchDB is a database that completely embraces the web. Store your data with JSON documents. Access your documents and query your indexes with your web browser, via HTTP. Index, combine, and transform your documents with JavaScript. CouchDB works well with modern web and mobile apps. You can even serve web apps directly out of CouchDB. And you can distribute your data, or your apps, efficiently using CouchDB’s incremental replication. CouchDB supports master-master setups with automatic conflict detection.

CouchDB comes with a suite of features, such as on-the-fly document transformation and real-time change notifications, that makes web app development a breeze. It even comes with an easy to use web administration console. You guessed it, served up directly out of CouchDB! We care a lot about distributed scaling. CouchDB is highly available and partition tolerant, but is also eventually consistent. And we care a lot about your data. CouchDB has a fault-tolerant storage engine that puts the safety of your data first.

Want to Contribute?

CouchDB is an open source project. That means everything, from this website to the core of the database itself, has been contributed by helpful individuals such as yourself. The time and attention of our contributors is our most precious resource, and we always need more of it. If you have time and attention you’d like to donate, we welcome your contributions. It doesn’t matter how familiar you are with CouchDB, or whether you know how to program Erlang. There are plenty of ways to be helpful! Just ask!

Any activity that enriches the project or the community is welcome. You do not have to contribute code to be a part of our community. Anyone who shows a commitment (in the sense of being loyal to the project’s interests) will be given decision-making authority. Our primary goal is to build a welcoming, supportive, inclusive, and diverse community. We abide by a code of conduct and a set of project bylaws.

Because a healthy community is our most valuable asset, this is a good place to start contributing. Learn how CouchDB is used and why people love it. Read about it, promote it, and talk about it. Arrange or attend a meetup, give a talk, or write about your adventures with CouchDB. If you write a blog post about CouchDB (or find a blog post worth sharing) drop a mail to the marketing list (or send a tweet) and we’ll include it in the weekly news. You could also help out on the user mailing list, on IRC, or on StackOverflow. Or come join us on the developer mailing list and let us know how else you’d like to help.

We do content marketing and advocate marketing. If you want to help out with this, or any other aspect of marketing, join us on the marketing list and announce yourself. We’re looking for contributions to our web administration console, Fauxton. We would appreciate help with web design, development, user experience, and testing. Check out the list of issues to get started.

Why don’t you help us triage JIRA issues? Be the first person someone interacts with when they have a problem. This is a great way to help out while learning the project. Or maybe you’d like to help us keep the wiki up-to-date? If you want to help with translations, join us on the localisation list and specify which languages you want to help with. If you’re looking for something a little more technical, you could help us with our documentation, QA, packaging, or release efforts. Just drop by on the developer list and let us know what you want to do. There’s enough room for any sort of contribution!

Do you want to contribute code? Great! There’s lots of stuff to work on. Don’t know Erlang? Join the Erlang list, and learn you some Erlang in a friendly environment! You can use JIRA to find easy, medium, and hard issues to work on. Or, if you’d prefer, just open a new issue, and attach your patch. Don’t want to use JIRA? Fork us on GitHub and send a pull request. Why don’t you check out the Git workflow guide?