diff --git a/docs/getting-started.asciidoc b/docs/getting-started.asciidoc
new file mode 100644
index 000000000..268f8db18
--- /dev/null
+++ b/docs/getting-started.asciidoc
@@ -0,0 +1,168 @@
+[[getting-started-java]]
+== Getting started
+
+This page guides you through the installation process of the Java client, shows
+you how to instantiate the client, and how to perform basic Elasticsearch
+operations with it.
+
+[discrete]
+=== Requirements
+
+* Java 8 or later.
+* A JSON object mapping library to allow seamless integration of
+your application classes with the Elasticsearch API. The examples below
+show usage with Jackson.
+
+[discrete]
+=== Installation
+
+[discrete]
+==== Installation in a Gradle project by using Jackson
+
+["source","groovy",subs="attributes+"]
+--------------------------------------------------
+dependencies {
+ implementation 'co.elastic.clients:elasticsearch-java:{version}'
+ implementation 'com.fasterxml.jackson.core:jackson-databind:2.12.3'
+}
+--------------------------------------------------
+
+[discrete]
+==== Installation in a Maven project by using Jackson
+
+In the `pom.xml` of your project, add the following repository definition and
+dependencies:
+
+["source","xml",subs="attributes+"]
+--------------------------------------------------
+
+
+
+
+ co.elastic.clients
+ elasticsearch-java
+ {version}
+
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ 2.12.3
+
+
+
+
+--------------------------------------------------
+
+
+Refer to the <> page to learn more.
+
+
+[discrete]
+=== Connecting
+
+You can connect to the Elastic Cloud using an API key and the Elasticsearch
+endpoint.
+
+["source","java"]
+--------------------------------------------------
+include-tagged::{doc-tests-src}/getting_started/ConnectingTest.java[create-client]
+--------------------------------------------------
+
+Your Elasticsearch endpoint can be found on the **My deployment** page of your
+deployment:
+
+image::images/es-endpoint.jpg[alt="Finding Elasticsearch endpoint",align="center"]
+
+You can generate an API key on the **Management** page under Security.
+
+image::images/create-api-key.png[alt="Create API key",align="center"]
+
+For other connection options, refer to the <> section.
+
+
+[discrete]
+=== Operations
+
+Time to use Elasticsearch! This section walks you through the basic, and most
+important, operations of Elasticsearch. For more operations and more advanced
+examples, refer to the <> page.
+
+
+[discrete]
+==== Creating an index
+
+This is how you create the `product` index:
+
+["source","java"]
+--------------------------------------------------
+include-tagged::{doc-tests-src}/usage/IndexingTest.java[create-products-index]
+--------------------------------------------------
+
+[discrete]
+==== Indexing documents
+
+This is a simple way of indexing a document, here a `Product` application object:
+
+["source","java"]
+--------------------------------------------------
+include-tagged::{doc-tests-src}/usage/IndexingTest.java[single-doc-dsl]
+--------------------------------------------------
+
+[discrete]
+==== Getting documents
+
+You can get documents by using the following code:
+
+["source","java"]
+--------------------------------------------------
+include-tagged::{doc-tests-src}/usage/ReadingTest.java[get-by-id]
+--------------------------------------------------
+<1> The get request, with the index name and identifier.
+<2> The target class, here `Product`.
+
+
+[discrete]
+==== Searching documents
+
+This is how you can create a single match query with the Java client:
+
+["source","java"]
+--------------------------------------------------
+include-tagged::{doc-tests-src}/usage/SearchingTest.java[search-getting-started]
+--------------------------------------------------
+
+[discrete]
+==== Updating documents
+
+This is how you can update a document, for example to add a new field:
+
+["source","java"]
+--------------------------------------------------
+include-tagged::{doc-tests-src}/usage/IndexingTest.java[single-doc-update]
+--------------------------------------------------
+
+
+
+[discrete]
+==== Deleting documents
+
+["source","java"]
+--------------------------------------------------
+include-tagged::{doc-tests-src}/usage/IndexingTest.java[single-doc-delete]
+--------------------------------------------------
+
+
+[discrete]
+==== Deleting an index
+
+["source","java"]
+--------------------------------------------------
+include-tagged::{doc-tests-src}/usage/IndexingTest.java[create-products-index]
+--------------------------------------------------
+
+
+[discrete]
+== Further reading
+
+* Learn more about the <> of the Java client.
diff --git a/docs/images/create-api-key.png b/docs/images/create-api-key.png
new file mode 100644
index 000000000..d75c23030
Binary files /dev/null and b/docs/images/create-api-key.png differ
diff --git a/docs/images/es-endpoint.jpg b/docs/images/es-endpoint.jpg
new file mode 100644
index 000000000..6da2e7565
Binary files /dev/null and b/docs/images/es-endpoint.jpg differ
diff --git a/docs/index-custom-title-page.html b/docs/index-custom-title-page.html
index 29a20ec8b..ddae54a03 100644
--- a/docs/index-custom-title-page.html
+++ b/docs/index-custom-title-page.html
@@ -63,7 +63,7 @@
Documentation
The Java API client provides strongly typed requests and responses for all Elasticsearch APIs.