diff --git a/docs/make.jl b/docs/make.jl
index bfd62893e9e67c339b8f0dadefc62914d25ac42c..439db09f44e528de9ed8746ca901d40e9e02da56 100644
--- a/docs/make.jl
+++ b/docs/make.jl
@@ -1,3 +1,12 @@
 using Documenter, CaosDB
 
-makedocs(modules = [CaosDB], sitename = "CaosDB.jl Documentation")
+makedocs(
+    modules = [CaosDB],
+    sitename = "CaosDB.jl",
+    format = Documenter.HTML(prettyurls = false),
+    pages = [
+        "Home" => "index.md",
+        "Getting started" => "README_SETUP.md",
+        "Library" => "api.md",
+    ],
+)
diff --git a/docs/src/api.md b/docs/src/api.md
new file mode 100644
index 0000000000000000000000000000000000000000..14cdb0cca131652c8f5b8ceeeb20edc3377a174a
--- /dev/null
+++ b/docs/src/api.md
@@ -0,0 +1,20 @@
+# CaosDB.jl's API
+
+Below you find the explicit documentation of CaosDB's public
+interface. You also find the documentation of the internal API which
+is meant for expert use only. Only use those if you know what you're
+doing.
+
+## Public API
+
+```@autodocs
+Modules=[CaosDB, CaosDB.Exceptions, CaosDB.Info, CaosDB.Utility, CaosDB.Connection, CaosDB.Authentication, CaosDB.Entity]
+Private=false
+```
+
+## Expert-use only API functions
+
+```@autodocs
+Modules=[CaosDB, CaosDB.Exceptions, CaosDB.Info, CaosDB.Utility, CaosDB.Connection, CaosDB.Authentication, CaosDB.Entity]
+Public=false
+```
diff --git a/docs/src/assets/logo.svg b/docs/src/assets/logo.svg
new file mode 100644
index 0000000000000000000000000000000000000000..f9c500506cf403da71393c756d10a09a1dcd9cd2
--- /dev/null
+++ b/docs/src/assets/logo.svg
@@ -0,0 +1 @@
+<svg id="svg865" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 124.63 117.57"><defs><style>.cls-1,.cls-3{fill:#fff;}.cls-1,.cls-2,.cls-3{stroke:#0a8791;}.cls-1,.cls-2{stroke-miterlimit:2.41;stroke-width:2.58px;}.cls-2{fill:#0a8791;}.cls-3{stroke-miterlimit:2.41;stroke-width:2.58px;}</style></defs><g id="layer1"><g id="g926"><ellipse id="ellipse917" class="cls-1" cx="75.88" cy="92.55" rx="47.46" ry="23.73"/><ellipse id="ellipse920" class="cls-1" cx="75.88" cy="72.26" rx="47.46" ry="23.73"/><ellipse id="ellipse922" class="cls-2" cx="48.75" cy="50.9" rx="47.46" ry="23.73"/><ellipse id="ellipse924" class="cls-3" cx="85.19" cy="36.85" rx="23.73" ry="47.46" transform="translate(19.98 100.41) rotate(-75.49)"/></g></g></svg>
\ No newline at end of file
diff --git a/docs/src/index.md b/docs/src/index.md
index e5c4a57125c2f6faf23bc6e33af5d18cbea12a24..dd08abc213aac1d07213b173f28dc979ed71ef1f 100644
--- a/docs/src/index.md
+++ b/docs/src/index.md
@@ -1,27 +1,12 @@
 # CaosDB.jl documentation
 
-This will be the index of the documentation of the CaosDB Julia client
-library.
+Welcome to CaosDB.jl, the Julia Client for
+[CaosDB](https://caosdb.org), the opensource research data management
+system. In here you find instruction on how to [Set-up
+CaosDB.jl](@ref) and an overview of [CaosDB.jl's API](@ref).
 
-Manually add a docstring here:
+## Contents
 
-```@docs
-CaosDB.Utility.get_env_var(::AbstractString, ::AbstractString)
-```
-
-
-## Public API
-
-Similar to autodoc:
-
-```@autodocs
-Modules=[CaosDB, CaosDB.Info, CaosDB.Utility, CaosDB.Connection, CaosDB.Authentication, CaosDB.Entity]
-Private=false
-```
-
-## Expert-use only API functions
-
-```@autodocs
-Modules=[CaosDB, CaosDB.Info, CaosDB.Utility, CaosDB.Connection, CaosDB.Authentication, CaosDB.Entity]
-Public=false
+```@contents
+Pages = ["README_SETUP.md", "api.md"]
 ```