HTTP 429

Rate limiting explained


March 27, 2023

HTTP 409

When is a conflict a conflict?


March 27, 2023

HTTP 200, 201 & 202

What does success mean in Cloudant?


March 27, 2023

Taxi Service

How to build a taxi service with Cloudant

Replication PouchDB

March 09, 2023

Replication Efficiency Improvements

How to make replication go faster


February 08, 2023

CouchApp function deprecation

Show/List/Rewrite/Update functions are deprecated

Deprecation CouchApp

August 16, 2022

Simple Geospatial Queries

Using Cloudant Search for simple geo searches

Geospatial Search

June 28, 2022

Indexing with the Cloudant Dashboard

Creating and using indexes using the Cloudant Dashboard

Indexing Querying

March 28, 2022

Getting Cloudant Support

Raising a support ticket in the IBM Cloud


March 11, 2022

Using the Changes Feed

Best practice and pitfalls


January 21, 2022

Migrating from TXE

Switching from TXE to Standard

Migration TXE

January 14, 2022


Storing data in an index for faster retrieval.

Views Performance

November 12, 2021

CouchApps No Longer Work

A new HTTP header makes CouchApps inoperable.

CouchApp Static

October 20, 2021

Code Engine & Cloudant

Running serverless services with IBM Cloud Code Engine

CodeEngine Serverless

August 16, 2021

Cloudant SDK Transition

Introducing Cloudant's new SDKS and changes to supported SDKs

SDKs mobile

June 30, 2021

Removing Tombstones

Expunging deleted documents from Cloudant or CouchDB databases

Deletion Replication

GitHub Webhooks and Cloud Functions

Syncing GitHub JSON files to Cloudant using Webhooks

GitHub Serverless

February 08, 2021

Repairing a database with conflicts

Three ways to eliminate conflicts from a Cloudant database

Conflicts Replication

November 26, 2020

Migrating a Cloudant Account

Using replication to copy data from one account to another

Replication Migration

November 25, 2020

HAProxy as a reverse proxy

Using two Cloudant instances in active-passive mode.

Proxy HA

October 27, 2020

Automated Daily Backups

Using serverless functions to backup to Object Storage

Backup Serverless

October 09, 2020

Compliance automation via Auditree

Auditree - open source compliance automation for the cloud

Automation Compliance Open Source

July 30, 2020

JSON Schema Validation

Validating incoming JSON schemas with VDU functions

Schema Validation

July 24, 2020

How to recover a deleted document

How to recover a document in Cloudant that has been deleted or overwritten


July 17, 2020

Selective restoration from backup

Only restore the Cloudant documents you need

Backup Restore

July 01, 2020

Automatic Cross-region Failover

Using CIS Edge functions switch between Cloudant services

Failover HA

July 01, 2020

Building a Store Finder

Sorting documents be distance from a point

Search Geo

Optimising Cloudant Queries

Making the best index to match your query

Querying Indexing

April 24, 2020

Fast Data Transfer

Copying data faster than replication

Replication Transfer

January 17, 2020

Filtered Replication

Replicating while leaving behind deletions, design docs or anything you like.

Replication Filter

December 13, 2019

Timing HTTP Requests

Detailed HTTP timings for your Node.js application

HTTP Performance

December 06, 2019

Best & Worst Practice

Advice for new users


November 21, 2019

Case-sensitivity in queries

Making Cloudant query, search and MapReduce case sensitive or case-insensitive

Query Search MapReduce

November 08, 2019

Improve and then improve some more

The journey our team took to move a modern CI using Jenkins Pipeline.

Continuous Delivery Continuous Integration

November 01, 2019

Paginating _all_docs

Paging through all_docs and views

Pagination All docs

October 25, 2019

Logging with LogDNA

Analyse your IBM Cloudant logs with LogDNA

Logging Analysis

September 16, 2019

Design Docs For Life

All about Cloudant Design Documents.

Design Docs Query

August 16, 2019

Fuzzy search using Double Metaphone

Using the Double Metaphone algorithm to find words that sound alike.

Double Metaphone views Search

August 08, 2019

Replicating from a Query

Taking a subset of data offline and writing your own replicator.

Replication Query

June 21, 2019

Paging with Bookmarks

Using bookmarks to page through results sets.

Search Query

Partitioned Databases and Node.js

Using Partitioned Databases with the Node.js library.

Node.js Partitioned Databases

Scheduled Cloudant Backups

Backing up your data periodically using Kubernetes.

Backup COS Kubernetes

Optimal Cloudant Indexing

Getting away with fewer indexes

Indexing Query

Analysing Backups with SQL Query

Exploring your Cloudant backups using IBM SQL Query


April 23, 2019

Time-series Data Storage

Storing and querying time-series data in Cloudant.

Time-series Partitioned Databases

April 08, 2019

Building a CRM System

Creating a customer relations system with a partitioned Cloudant database.

Partitioned Databases Serverless

March 29, 2019

Partitioned Databases - Sizing

Calculating the size of each partition in a partitioned database.

Partitioned Databases Sizing

March 05, 2019

Partitioned Databases - Data Migration

Copying data from a standard database to a partitioned database.

Partitioned Databases Migration

March 05, 2019

Partitioned Databases - Data Design

Designing your data for a partitioned database, including indexing and querying

Partitioned Databases Indexing Query

March 05, 2019

Partitioned Databases - Introduction

Organise data into partitions for a speed boost and cost savings.

Partitioned Databases

March 05, 2019

Natural Language Classification

Using AI to classify reviews as positive or negative.

CSV Watson

January 18, 2019

Count Distinct

Counting distinct values using MapReduce indexes

MapReduce Count

December 14, 2018

Fuzzy search using soundex

Using the soundex algorithm to find words that sound alike.

soundex views

December 12, 2018

Caching with Nginx

Caching Cloudant reads for faster performance

Nginx Cache

November 23, 2018

The Data Warehouse

Exporting Cloudant data to a warehouse

SQL Warehouse

November 16, 2018

Stale, update and stable

Triggering indexing and permitting stale queries

indexing querying

November 06, 2018

Search Analyzers

Processing data prior to indexing


October 19, 2018

Generating sample data

Creating realistic JSON data in bulk


September 14, 2018

Time-sortable _ids

Making _ids unique and time-sortable

Time Indexing

August 24, 2018

Searching Jekyll Sites

Adding seach facility to a static website

Search Static

August 10, 2018

Cloudant Fundamentals 10/10


Fundamentals Aggregation

August 06, 2018


How to deal with conflicts in Cloudant documents


July 25, 2018

Cloudant Fundamentals 9/10


Fundamentals Indexing

July 12, 2018

Modelling with TypeScript

Making TypeScript objects to store in Cloudant

TypeScript Modelling

June 29, 2018

Cloudant Fundamentals 8/10

Querying in Node.js

Fundamentals Query

June 25, 2018

Cloudant Fundamentals 7/10


Fundamentals Query

June 18, 2018

Optimising Cloudant for Serverless

Reusing your connection to Cloudant


June 14, 2018

Cloudant Fundamentals 6/10

Programmatic CRUD

Fundamentals Node.js

June 12, 2018

Cloudant Fundamentals 5/10

Using the Bulk API

Fundamentals API

June 04, 2018

Emoji in Cloudant

🤔 ?


Cloudant Fundamentals 4/10

Using the API with curl

Fundamentals API

Date formats

Storing date & time in JSON


Cloudant Fundamentals 3/10

The _rev token


Cloudant Fundamentals 2/10

The _id


Cloudant Fundamentals 1/10

The Document


April 27, 2018


Managing replication from the command-line

Replication CLI

February 22, 2018

Local documents

When you need to leave a bit of config behind


February 13, 2018

Partial Indexes

Filter data before it's indexed


January 10, 2018

Detaching attachments

Using Cloud Functions and Object Storage

Attachments Serverless

December 21, 2017

Using your own domain

Using Cloud Functions as a proxy

Domain Serverless

December 07, 2017

Elasticsearch hybrid

Moving Cloudant data to ES

ElasticSearch Serverless

November 30, 2017

Tracking cryptocurrencies

Using Cloud Functions and Cloudant


November 16, 2017

Replication topologies

Designing for Cloudant failover

Architecture Replication

November 07, 2017

Cloudant Envoy

Serverless Edition


October 05, 2017

Custom Indexers

With Cloud Functions and Redis

Serverless Indexing

September 26, 2017

Custom Replication

With Cloud Functions

Serverless Replication

August 22, 2017

Piecemeal, Bulk or Batch

Cloudant write modes discussed

Serverless Replication

July 25, 2017

Querying Cloudant with SQL

Converting SQL to Cloudant Query JSON

SQL Query

July 18, 2017

Choosing a Cloudant library

Which level of abstraction is right for you?

Library Node.js

July 12, 2017


Compare two databases on the command line



The Swiss Army Knife of databases


Moving data from DocumentDB

Using the documentdbexport npm module


March 28, 2017

Moving data from DynamoDB

Using the dynamodbexport npm module


March 24, 2017

Build a serverless web app

Using Cloud Functions & Cloudant


February 27, 2017


Simple Cloudant Node.js library


January 20, 2017

The Revision Tree

How Cloudant stores revisions in a tree


January 01, 2017

Caching HTTP requests

With cachemachine and redis

Cache Redis

November 22, 2016

Chrome Extensions

With PouchDB & Cloudant



For command-line backup


March 22, 2016

Understanding Indexing

Understanding how indexes work in a cluster


January 31, 2016

Understanding Read/Write

Understanding how reads/writes work in a cluster


October 19, 2015

Command-line tools

Backup, shell, migration and more


October 19, 2015

Slack to Cloudant

With Slack slash commands


August 13, 2015

Introduction to Conflicts - 3/3

Avoiding document conflicts through design.


January 26, 2015

Introduction to Conflicts - 2/3

Detecting and resolving Cloudant document conflicts.


January 20, 2015

Introduction to Conflicts - 1/3

Cloudant document conflicts - what are they?


January 12, 2015


From the basics to the actually useful