diff --git a/.docs/images/hero.png b/.docs/images/hero.png
new file mode 100644
index 0000000000000000000000000000000000000000..a972e6cc48f4110c9a186cf789c077ad97f7a70a
Binary files /dev/null and b/.docs/images/hero.png differ
diff --git a/.docs/index.md b/.docs/index.md
index 0ac7b018dff1a0422f69d9661f67ba2d762920a6..bd57d84cf4e8f75b023bdab2feba9fbb59baba0e 100644
--- a/.docs/index.md
+++ b/.docs/index.md
@@ -1,12 +1,14 @@
 ---
-title: Home
+template: home.html
 author: Martin Weise
 hide:
 - navigation
+- toc
+social:
+  cards_layout_options:
+    title: Documentation that simply works
 ---
 
-# DBRepo: A Database Repository to Support Research
-
 ## Problem Statement
 
 Digital repositories see themselves more frequently encountered with the problem of making databases accessible in their
@@ -14,9 +16,6 @@ collection. Challenges revolve around organizing, searching and retrieving conte
 constitute a major technical burden as their internal representation greatly differs from static documents most digital
 repositories are designed for.
 
-[System Description](./system){ .action-button .md-button .md-button--secondary }
-[How to use](./usage-overview){ .action-button .md-button .md-button--primary }
-
 ## Application Areas
 
 We present a database repository system that allows researchers to ingest data into a central, versioned repository
diff --git a/.docs/overrides/home.html b/.docs/overrides/home.html
new file mode 100644
index 0000000000000000000000000000000000000000..7325252aad993f2418b13e83c7efa78702acf4a9
--- /dev/null
+++ b/.docs/overrides/home.html
@@ -0,0 +1,147 @@
+{% extends "main.html" %}
+
+<!-- Render hero under tabs -->
+{% block tabs %}
+{{ super() }}
+
+<!-- Additional styles for landing page -->
+<style>
+
+    /* Application header should be static for the landing page */
+    .md-header {
+        position: initial;
+    }
+
+    .md-content > article h1 {
+        display: none;
+        visibility: hidden;
+    }
+
+    /*!* Remove spacing, as we cannot hide it completely *!*/
+    .md-main__inner {
+        margin-top: 0;
+    }
+
+    /*!* Hide main content for now *!*/
+    /*.md-content {*/
+    /*  display: none;*/
+    /*}*/
+
+    /*!* Hide table of contents *!*/
+    /*@media screen and (min-width: 60em) {*/
+    /*  .md-sidebar--secondary {*/
+    /*    display: none;*/
+    /*  }*/
+    /*}*/
+
+    /*!* Hide navigation *!*/
+    /*@media screen and (min-width: 76.25em) {*/
+    /*  .md-sidebar--primary {*/
+    /*    display: none;*/
+    /*  }*/
+    /*}*/
+</style>
+
+<!-- Hero for landing page -->
+<section class="mdx-container">
+    <div class="md-grid md-typeset">
+        <div class="mdx-hero">
+
+            <!-- Hero image -->
+            <div class="mdx-hero__image">
+                <img
+                        src="images/hero.png"
+                        alt=""
+                        class="img-border"
+                        width="100%"
+                        draggable="false"/>
+            </div>
+
+            <!-- Hero content -->
+            <div class="mdx-hero__content" style="margin-top:24px;margin-bottom:24px;">
+                <h1>DBRepo: A Database Repository to Support Research</h1>
+                <p>Set up in a few minutes.</p>
+                <a
+                        href="{{ page.next_page.url | url }}"
+                        title="{{ page.next_page.title | e }}"
+                        style="margin-right: 10px;"
+                        class="action-button md-button md-button--primary">
+                    Get started
+                </a>
+                <a
+                        href="{{ 'insiders/' | url }}"
+                        title="Material for MkDocs Insiders"
+                        class="action-button md-button md-button--secondary">
+                    Learn more
+                </a>
+            </div>
+        </div>
+    </div>
+</section>
+<section>
+    <div class="md-grid md-typeset">
+        <div class="mdx-spotlight">
+            <figure class="mdx-spotlight__feature">
+                <a href="setup/setting-up-site-search/" tabindex="-1" title="Built-in search">
+                    <img src="images/screenshots/jupyterhub4.png"
+                         alt="Built-in search" loading="lazy"
+                         width="500"
+                         height="327">
+                </a>
+                <figcaption class="md-typeset">
+                    <h2>Built-in search</h2>
+                    <p>Reusable datasets</p>
+                    <p>
+                        <a href="setup/setting-up-site-search/" aria-label="Built-in search">Learn more</a>
+                    </p>
+                </figcaption>
+            </figure>
+            <figure class="mdx-spotlight__feature">
+                <a href="setup/setting-up-site-search/" tabindex="-1" title="Built-in search">
+                    <img src="images/screenshots/jupyterhub4.png"
+                         alt="Built-in search" loading="lazy"
+                         width="500"
+                         height="327">
+                </a>
+                <figcaption class="md-typeset">
+                    <h2>Citable datasets</h2>
+                    <p>OAI-PMH, Google Datasets, FAIR Signposting</p>
+                    <p>
+                        <a href="setup/setting-up-site-search/" aria-label="Built-in search">Learn more</a>
+                    </p>
+                </figcaption>
+            </figure>
+            <figure class="mdx-spotlight__feature">
+                <a href="setup/setting-up-site-search/" tabindex="-1" title="Built-in search">
+                    <img src="images/screenshots/jupyterhub4.png"
+                         alt="Built-in search" loading="lazy"
+                         width="500"
+                         height="327">
+                </a>
+                <figcaption class="md-typeset">
+                    <h2>Powerful API for Data Scientists</h2>
+                    <p>Python Library, Pandas, Juypter Notebook, etc.</p>
+                    <p>
+                        <a href="setup/setting-up-site-search/" aria-label="Built-in search">Learn more</a>
+                    </p>
+                </figcaption>
+            </figure>
+            <figure class="mdx-spotlight__feature">
+                <a href="setup/setting-up-site-search/" tabindex="-1" title="Built-in search">
+                    <img src="images/screenshots/jupyterhub4.png"
+                         alt="Built-in search" loading="lazy"
+                         width="500"
+                         height="327">
+                </a>
+                <figcaption class="md-typeset">
+                    <h2>Cloud Native</h2>
+                    <p>Easy deployment</p>
+                    <p>
+                        <a href="setup/setting-up-site-search/" aria-label="Built-in search">Learn more</a>
+                    </p>
+                </figcaption>
+            </figure>
+        </div>
+    </div>
+</section>
+{% endblock %}
diff --git a/.docs/overrides/main.html b/.docs/overrides/main.html
deleted file mode 100644
index 59631a600e66098e4224067117f8dc6b89c315db..0000000000000000000000000000000000000000
--- a/.docs/overrides/main.html
+++ /dev/null
@@ -1,12 +0,0 @@
-{% extends "base.html" %}
-
-{% block announce %}
-<label for="version">Version</label>
-<select style="margin-left:8px;" id="version" name="version" onchange="switchVersion(this.options[this.selectedIndex].value)">
-    <option value="latest">latest</option>
-    <option value="1.4.2">1.4.2</option>
-    <option value="1.4.1">1.4.1</option>
-    <option value="1.4.0">1.4.0</option>
-    <option value="1.3.0">1.3.0</option>
-</select>
-{% endblock %}
diff --git a/.docs/scripts/extra.js b/.docs/scripts/extra.js
deleted file mode 100644
index 2360d0d2db8579cfbd71d6077fe894cc46056c61..0000000000000000000000000000000000000000
--- a/.docs/scripts/extra.js
+++ /dev/null
@@ -1,14 +0,0 @@
-function getVersion() {
-    const segments = location.pathname.split('/');
-    if (segments.length > 4 && (segments[3].match(/[0-9]\.[0-9]\.[0-9]/g) || segments[3] == 'latest')) {
-        console.debug('version', segments[3]);
-        return segments[3];
-    }
-    console.debug('default version', '__APPVERSION__');
-    return '__APPVERSION__';
-}
-function switchVersion(value) {
-    if (!value) { return }
-    this.location.href = location.protocol + '//' + location.host + '/infrastructures/dbrepo/' + value + '/';
-}
-document.getElementById("version").value = getVersion();
\ No newline at end of file
diff --git a/.docs/stylesheets/.sass-cache/04e8358553d0156a67b95297c054a24cd7eab863/_colors.scssc b/.docs/stylesheets/.sass-cache/04e8358553d0156a67b95297c054a24cd7eab863/_colors.scssc
new file mode 100644
index 0000000000000000000000000000000000000000..f52406685694c61de36cfc27b015f1f98bbb7ded
Binary files /dev/null and b/.docs/stylesheets/.sass-cache/04e8358553d0156a67b95297c054a24cd7eab863/_colors.scssc differ
diff --git a/.docs/stylesheets/.sass-cache/04e8358553d0156a67b95297c054a24cd7eab863/_typeset.scssc b/.docs/stylesheets/.sass-cache/04e8358553d0156a67b95297c054a24cd7eab863/_typeset.scssc
new file mode 100644
index 0000000000000000000000000000000000000000..f6a80da3534c65beab6b28b85ea0a3a10ee15266
Binary files /dev/null and b/.docs/stylesheets/.sass-cache/04e8358553d0156a67b95297c054a24cd7eab863/_typeset.scssc differ
diff --git a/.docs/stylesheets/.sass-cache/10990fa183107f4149f38216a4d00fe324a8131e/_config.scssc b/.docs/stylesheets/.sass-cache/10990fa183107f4149f38216a4d00fe324a8131e/_config.scssc
new file mode 100644
index 0000000000000000000000000000000000000000..20fac36e42b9c065be8d5e1e50ebd22c4e821fdd
Binary files /dev/null and b/.docs/stylesheets/.sass-cache/10990fa183107f4149f38216a4d00fe324a8131e/_config.scssc differ
diff --git a/.docs/stylesheets/.sass-cache/10990fa183107f4149f38216a4d00fe324a8131e/custom.scssc b/.docs/stylesheets/.sass-cache/10990fa183107f4149f38216a4d00fe324a8131e/custom.scssc
new file mode 100644
index 0000000000000000000000000000000000000000..ee214c5de92c28b3cbcb078e4d2aa2d2450a4b32
Binary files /dev/null and b/.docs/stylesheets/.sass-cache/10990fa183107f4149f38216a4d00fe324a8131e/custom.scssc differ
diff --git a/.docs/stylesheets/.sass-cache/10990fa183107f4149f38216a4d00fe324a8131e/main.scssc b/.docs/stylesheets/.sass-cache/10990fa183107f4149f38216a4d00fe324a8131e/main.scssc
new file mode 100644
index 0000000000000000000000000000000000000000..ec1210c17ed880a36d713cdf087f2134f3afaee2
Binary files /dev/null and b/.docs/stylesheets/.sass-cache/10990fa183107f4149f38216a4d00fe324a8131e/main.scssc differ
diff --git a/.docs/stylesheets/.sass-cache/10990fa183107f4149f38216a4d00fe324a8131e/palette.scssc b/.docs/stylesheets/.sass-cache/10990fa183107f4149f38216a4d00fe324a8131e/palette.scssc
new file mode 100644
index 0000000000000000000000000000000000000000..7f71c61f4d4b2e986bb266940ac47ca07d60a0b3
Binary files /dev/null and b/.docs/stylesheets/.sass-cache/10990fa183107f4149f38216a4d00fe324a8131e/palette.scssc differ
diff --git a/.docs/stylesheets/.sass-cache/2c2cf16e0f132dd6db83c98c5ec5508783194a8a/_hero.scssc b/.docs/stylesheets/.sass-cache/2c2cf16e0f132dd6db83c98c5ec5508783194a8a/_hero.scssc
new file mode 100644
index 0000000000000000000000000000000000000000..ce4a196a7c8a18ad198a6738bde9f253e27559fd
Binary files /dev/null and b/.docs/stylesheets/.sass-cache/2c2cf16e0f132dd6db83c98c5ec5508783194a8a/_hero.scssc differ
diff --git a/.docs/stylesheets/.sass-cache/bfcb905bbd9d3baa11ae35b689811451966d11bf/_accent.scssc b/.docs/stylesheets/.sass-cache/bfcb905bbd9d3baa11ae35b689811451966d11bf/_accent.scssc
new file mode 100644
index 0000000000000000000000000000000000000000..5edd0c57d74b636ef1f7b2f4cea20a558105c465
Binary files /dev/null and b/.docs/stylesheets/.sass-cache/bfcb905bbd9d3baa11ae35b689811451966d11bf/_accent.scssc differ
diff --git a/.docs/stylesheets/.sass-cache/bfcb905bbd9d3baa11ae35b689811451966d11bf/_scheme.scssc b/.docs/stylesheets/.sass-cache/bfcb905bbd9d3baa11ae35b689811451966d11bf/_scheme.scssc
new file mode 100644
index 0000000000000000000000000000000000000000..1ad33e4220951570b80a301e336f7a390c5b7314
Binary files /dev/null and b/.docs/stylesheets/.sass-cache/bfcb905bbd9d3baa11ae35b689811451966d11bf/_scheme.scssc differ
diff --git a/.docs/stylesheets/_config.scss b/.docs/stylesheets/_config.scss
new file mode 100644
index 0000000000000000000000000000000000000000..859fe38e70821f3227af8e2d9b6f1ce04bfbaec6
--- /dev/null
+++ b/.docs/stylesheets/_config.scss
@@ -0,0 +1,20 @@
+// ----------------------------------------------------------------------------
+// Variables: breakpoints
+// ----------------------------------------------------------------------------
+
+// Device-specific breakpoints
+$break-devices: (
+  mobile: (
+    portrait:  px2em(220px)  px2em(479.75px),
+    landscape: px2em(480px)  px2em(719.75px)
+  ),
+  tablet: (
+    portrait:  px2em(720px)  px2em(959.75px),
+    landscape: px2em(960px)  px2em(1219.75px)
+  ),
+  screen: (
+    small:     px2em(1220px) px2em(1599.75px),
+    medium:    px2em(1600px) px2em(1999.75px),
+    large:     px2em(2000px)
+  )
+);
\ No newline at end of file
diff --git a/.docs/stylesheets/custom.css b/.docs/stylesheets/custom.css
new file mode 100644
index 0000000000000000000000000000000000000000..0c66cfd3021a37c2850e74f494229d8edcf3aa94
--- /dev/null
+++ b/.docs/stylesheets/custom.css
@@ -0,0 +1,143 @@
+:root,
+[data-md-color-accent=indigo] {
+  --md-primary-fg-color: #006699;
+  --md-accent-fg-color: #005c8a /* darken 10% */;
+  --md-primary-fg-color--dark: #00537c /* darken 10% */; }
+
+img.img-border {
+  border: 1px solid #b3b3b3; }
+
+.md-main .md-content a:not(.action-button):not([tabindex]),
+.md-main .md-content a:not(.action-button):not([tabindex]) {
+  color: var(--md-typeset-color);
+  border-bottom: 2px solid var(--md-primary-fg-color); }
+
+.md-main .md-content a:not(.action-button):not([tabindex]):focus,
+.md-main .md-content a:not(.action-button):not([tabindex]):hover {
+  color: var(--md-typeset-color);
+  border-bottom: 2px solid var(--md-primary-fg-color--dark); }
+
+.md-banner {
+  background-color: var(--md-primary-fg-color--dark); }
+
+@keyframes heart {
+  0%,
+  40%,
+  80%,
+  100% {
+    transform: scale(1); }
+  20%,
+  60% {
+    transform: scale(1.15); } }
+.md-typeset .twitter {
+  color: #00acee; }
+.md-typeset .mastodon {
+  color: #897ff8; }
+.md-typeset .mdx-video {
+  width: auto; }
+  .md-typeset .mdx-video__inner {
+    position: relative;
+    width: 100%;
+    height: 0;
+    padding-bottom: 56.138%; }
+  .md-typeset .mdx-video iframe {
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    overflow: hidden;
+    border: none; }
+.md-typeset .mdx-heart {
+  animation: heart 1000ms infinite; }
+.md-typeset .mdx-badge {
+  font-size: 0.85em; }
+  .md-typeset .mdx-badge--right {
+    float: right;
+    margin-left: 0.35em; }
+.md-typeset .mdx-switch button {
+  cursor: pointer;
+  transition: opacity 250ms; }
+  .md-typeset .mdx-switch button:is(:focus, :hover) {
+    opacity: 0.75; }
+  .md-typeset .mdx-switch button > code {
+    display: block;
+    color: var(--md-primary-bg-color);
+    background-color: var(--md-primary-fg-color); }
+.md-typeset .mdx-columns ol,
+.md-typeset .mdx-columns ul {
+  columns: 2; }
+.md-typeset .mdx-columns li {
+  break-inside: avoid; }
+.md-typeset .mdx-flags {
+  margin: 2em auto; }
+  .md-typeset .mdx-flags ol {
+    list-style: none; }
+    .md-typeset .mdx-flags ol li {
+      margin-bottom: 1em; }
+  .md-typeset .mdx-flags__item {
+    display: flex;
+    gap: 0.125rem; }
+  .md-typeset .mdx-flags__content {
+    display: flex;
+    flex: 1;
+    flex-direction: column; }
+    .md-typeset .mdx-flags__content span {
+      display: inline-flex;
+      align-items: baseline;
+      justify-content: space-between; }
+    .md-typeset .mdx-flags__content > span:nth-child(2) {
+      font-size: 80%; }
+    .md-typeset .mdx-flags__content code {
+      float: right; }
+
+.mdx-container {
+  padding-top: 0.25rem;
+  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1123 258'><path d='M1124,2c0,0 0,256 0,256l-1125,0l0,-48c0,0 16,5 55,5c116,0 197,-92 325,-92c121,0 114,46 254,46c140,0 214,-167 572,-166Z' style='fill: hsla(0, 0%, 100%, 1)' /></svg>") no-repeat bottom, linear-gradient(to bottom, var(--md-primary-fg-color), #363949 99%, var(--md-default-bg-color) 99%); }
+  [data-md-color-scheme="slate"] .mdx-container {
+    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1123 258'><path d='M1124,2c0,0 0,256 0,256l-1125,0l0,-48c0,0 16,5 55,5c116,0 197,-92 325,-92c121,0 114,46 254,46c140,0 214,-167 572,-166Z' style='fill: hsla(230, 15%, 14%, 1)' /></svg>") no-repeat bottom, linear-gradient(to bottom, var(--md-primary-fg-color), #363949 99%, var(--md-default-bg-color) 99%); }
+
+.mdx-hero {
+  margin: 0 16px;
+  color: var(--md-primary-bg-color); }
+  .mdx-hero h1 {
+    margin-bottom: 20px;
+    font-weight: 700;
+    color: currentcolor; }
+  .mdx-hero__content {
+    padding-bottom: 120px; }
+
+.mdx-spotlight__feature {
+  flex-direction: row-reverse; }
+
+.mdx-spotlight .mdx-spotlight__feature {
+  width: 100%;
+  display: flex;
+  flex: 1 0 48%;
+  flex-flow: row nowrap;
+  gap: 3.2rem;
+  margin: 0 0 3.2rem; }
+  .mdx-spotlight .mdx-spotlight__feature:nth-child(odd) {
+    flex-direction: row-reverse; }
+  .mdx-spotlight .mdx-spotlight__feature > figcaption {
+    text-align: left;
+    font-style: inherit;
+    max-width: inherit;
+    margin: 1em auto 0 .8rem; }
+  .mdx-spotlight .mdx-spotlight__feature > a {
+    margin: 2rem 0;
+    display: block;
+    flex-shrink: 0; }
+    .mdx-spotlight .mdx-spotlight__feature > a > img {
+      border-radius: .2rem;
+      box-shadow: var(--md-shadow-z2);
+      display: block;
+      height: auto;
+      max-width: 100%;
+      width: 25rem; }
+
+[data-md-component=announce] .md-banner__inner {
+  margin-top: 0.2rem;
+  margin-bottom: 0.2rem; }
+
+/*# sourceMappingURL=custom.css.map */
diff --git a/.docs/stylesheets/custom.css.map b/.docs/stylesheets/custom.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..31d7e2dcf0af12f27e657b19f298edca26731752
--- /dev/null
+++ b/.docs/stylesheets/custom.css.map
@@ -0,0 +1,7 @@
+{
+"version": 3,
+"mappings": "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",
+"sources": ["custom/_colors.scss","custom/_typeset.scss","custom/layout/_hero.scss","custom.scss"],
+"names": [],
+"file": "custom.css"
+}
diff --git a/.docs/stylesheets/custom.scss b/.docs/stylesheets/custom.scss
new file mode 100644
index 0000000000000000000000000000000000000000..fa839622a427ca13e1aab8d4500e38723ff10676
--- /dev/null
+++ b/.docs/stylesheets/custom.scss
@@ -0,0 +1,15 @@
+// ----------------------------------------------------------------------------
+// Local imports
+// ----------------------------------------------------------------------------
+
+@import "config";
+
+@import "custom/colors";
+@import "custom/typeset";
+
+@import "custom/layout/hero";
+
+[data-md-component=announce] .md-banner__inner {
+    margin-top: 0.2rem;
+    margin-bottom: 0.2rem;
+}
\ No newline at end of file
diff --git a/.docs/stylesheets/extra.css b/.docs/stylesheets/custom/_colors.scss
similarity index 85%
rename from .docs/stylesheets/extra.css
rename to .docs/stylesheets/custom/_colors.scss
index b6614e14009c0ffb7f9d2921c4a051152fe8bb01..566a7fb1c8165f38308fb49856432a6fecd10a63 100644
--- a/.docs/stylesheets/extra.css
+++ b/.docs/stylesheets/custom/_colors.scss
@@ -5,7 +5,7 @@
     --md-primary-fg-color--dark: #00537c /* darken 10% */;
 }
 
-figure img.img-border {
+img.img-border {
     border: 1px solid #b3b3b3;
 }
 
@@ -23,9 +23,4 @@ figure img.img-border {
 
 .md-banner {
     background-color: var(--md-primary-fg-color--dark);
-}
-
-[data-md-component=announce] .md-banner__inner {
-    margin-top: 0.2rem;
-    margin-bottom: 0.2rem;
 }
\ No newline at end of file
diff --git a/.docs/stylesheets/custom/_typeset.scss b/.docs/stylesheets/custom/_typeset.scss
new file mode 100644
index 0000000000000000000000000000000000000000..46e625cc0a83ed456ac6607d9776349f12ebd4bd
--- /dev/null
+++ b/.docs/stylesheets/custom/_typeset.scss
@@ -0,0 +1,160 @@
+// ----------------------------------------------------------------------------
+// Keyframes
+// ----------------------------------------------------------------------------
+
+// Pumping heart animation
+@keyframes heart {
+  0%,
+  40%,
+  80%,
+  100% {
+    transform: scale(1);
+  }
+
+  20%,
+  60% {
+    transform: scale(1.15);
+  }
+}
+
+// ----------------------------------------------------------------------------
+// Rules
+// ----------------------------------------------------------------------------
+
+// Scoped in typesetted content to match specificity of regular content
+.md-typeset {
+
+  // Twitter icon
+  .twitter {
+    color: #00acee;
+  }
+
+  // Mastodon icon - it's not the exact brand color, because that doesn't work
+  // well on dark backgrounds, so we lightened it up a bit.
+  .mastodon {
+    color: #897ff8;
+  }
+
+  // Insiders video
+  .mdx-video {
+    width: auto;
+
+    // Insiders video container
+    &__inner {
+      position: relative;
+      width: 100%;
+      height: 0;
+      padding-bottom: 56.138%;
+    }
+
+    // Insiders video iframe
+    iframe {
+      position: absolute;
+      top: 0;
+      left: 0;
+      width: 100%;
+      height: 100%;
+      overflow: hidden;
+      border: none;
+    }
+  }
+
+  // Pumping heart
+  .mdx-heart {
+    animation: heart 1000ms infinite;
+  }
+
+  // BETA #####################################################################
+
+  // Badge
+  .mdx-badge {
+    font-size: 0.85em;
+
+    // Badge moved to the right
+    &--right {
+      float: right;
+      margin-left: 0.35em;
+    }
+
+  }
+
+  // BETA #####################################################################
+
+  // Switch buttons
+  .mdx-switch button {
+    cursor: pointer;
+    transition: opacity 250ms;
+
+    // Button on focus/hover
+    &:is(:focus, :hover) {
+      opacity: 0.75;
+    }
+
+    // Code block
+    > code {
+      display: block;
+      color: var(--md-primary-bg-color);
+      background-color: var(--md-primary-fg-color);
+    }
+  }
+
+  // Two-column layout
+  .mdx-columns {
+
+    // Column
+    ol,
+    ul {
+      columns: 2;
+    }
+
+    // Column item
+    li {
+      break-inside: avoid;
+    }
+  }
+
+  // Language list
+  .mdx-flags {
+    margin: 2em auto;
+
+    // Language list
+    ol {
+      list-style: none;
+
+      // Language list item
+      li {
+        margin-bottom: 1em;
+      }
+    }
+
+    // Language item
+    &__item {
+      display: flex;
+      gap: 0.125rem;
+    }
+
+    // Language content
+    &__content {
+      display: flex;
+      flex: 1;
+      flex-direction: column;
+
+      // Language name
+      span {
+        display: inline-flex;
+        align-items: baseline;
+        justify-content: space-between;
+      }
+
+      // Language link
+      > span:nth-child(2) {
+        font-size: 80%;
+      }
+
+      // Language code
+      code {
+        float: right;
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/.docs/stylesheets/custom/layout/.sass-cache/991e99d4fce80f9249c84e5c2787c7c15c1ba446/hero.scssc b/.docs/stylesheets/custom/layout/.sass-cache/991e99d4fce80f9249c84e5c2787c7c15c1ba446/hero.scssc
new file mode 100644
index 0000000000000000000000000000000000000000..ece25c2d04f5148bfde39da0ce142961a24b3df5
Binary files /dev/null and b/.docs/stylesheets/custom/layout/.sass-cache/991e99d4fce80f9249c84e5c2787c7c15c1ba446/hero.scssc differ
diff --git a/.docs/stylesheets/custom/layout/_hero.scss b/.docs/stylesheets/custom/layout/_hero.scss
new file mode 100644
index 0000000000000000000000000000000000000000..7850ad2f5bb148b3639b61bc0cca4d832701e7ee
--- /dev/null
+++ b/.docs/stylesheets/custom/layout/_hero.scss
@@ -0,0 +1,88 @@
+// ----------------------------------------------------------------------------
+// Rules
+// ----------------------------------------------------------------------------
+
+// Landing page container
+.mdx-container {
+  padding-top: 0.25rem;
+  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1123 258'><path d='M1124,2c0,0 0,256 0,256l-1125,0l0,-48c0,0 16,5 55,5c116,0 197,-92 325,-92c121,0 114,46 254,46c140,0 214,-167 572,-166Z' style='fill: hsla(0, 0%, 100%, 1)' /></svg>") no-repeat bottom,
+  linear-gradient(
+                  to bottom,
+                  var(--md-primary-fg-color),
+                  hsla(230, 15%, 25%, 1) 99%,
+                  var(--md-default-bg-color) 99%
+  );
+
+  // Adjust background for slate theme
+  [data-md-color-scheme="slate"] & {
+    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1123 258'><path d='M1124,2c0,0 0,256 0,256l-1125,0l0,-48c0,0 16,5 55,5c116,0 197,-92 325,-92c121,0 114,46 254,46c140,0 214,-167 572,-166Z' style='fill: hsla(230, 15%, 14%, 1)' /></svg>") no-repeat bottom,
+    linear-gradient(
+                    to bottom,
+                    var(--md-primary-fg-color),
+                    hsla(230, 15%, 25%, 1) 99%,
+                    var(--md-default-bg-color) 99%
+    );
+  }
+}
+
+// Landing page hero
+.mdx-hero {
+  margin: 0 16px;
+  color: var(--md-primary-bg-color);
+
+  // Hero headline
+  h1 {
+    margin-bottom: 20px;
+    font-weight: 700;
+    color: currentcolor;
+
+  }
+
+  // Hero content
+  &__content {
+    padding-bottom: 120px;
+  }
+}
+
+.mdx-spotlight__feature {
+  flex-direction: row-reverse;
+}
+
+// Landing page spotlight
+.mdx-spotlight {
+
+  .mdx-spotlight__feature {
+    width: 100%;
+    display: flex;
+    flex: 1 0 48%;
+    flex-flow: row nowrap;
+    gap: 3.2rem;
+    margin: 0 0 3.2rem;
+
+    &:nth-child(odd) {
+      flex-direction: row-reverse;
+    }
+
+    & > figcaption {
+      text-align: left;
+      font-style: inherit;
+      max-width: inherit;
+      margin: 1em auto 0 .8rem;
+    }
+
+    & > a {
+      margin: 2rem 0;
+      display: block;
+      flex-shrink: 0;
+
+      & > img {
+        border-radius: .2rem;
+        box-shadow: var(--md-shadow-z2);
+        display: block;
+        height: auto;
+        max-width: 100%;
+        width: 25rem;
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/mkdocs.yml b/mkdocs.yml
index d669b11c5447f015fc4bdb9aba369eeb35efe072..4b5e6ab58e7cad5ed59bd89c945cf95271b7e8eb 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -43,9 +43,7 @@ nav:
   - publications.md
   - contact.md
 extra_css:
-  - stylesheets/extra.css
-extra_javascript:
-  - scripts/extra.js
+  - stylesheets/custom.css
 theme:
   favicon: images/signet_white.png
   custom_dir: .docs/overrides
@@ -104,6 +102,13 @@ markdown_extensions:
           - .docs/overrides/.icons
 extra:
   homepage: https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/
+  version:
+    default: 1.4.2
+    provider: mike
   social:
+    - icon: fontawesome/brands/docker
+      link: https://hub.docker.com/search?q=dbrepo
+    - icon: fontawesome/brands/python
+      link: https://pypi.org/project/dbrepo/
     - icon: fontawesome/brands/gitlab
       link: https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services
diff --git a/requirements.txt b/requirements.txt
index 6bfd02cb2349bbbd7a967948c355411908a48054..6442ea60759d27863ddf1879ab4e6be9151a5901 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,5 +1,5 @@
 mkdocs==1.5.3
-mkdocs-material==9.5.5
+mkdocs-material==9.5.17
 mkdocs-with-pdf==0.9.3
 mkdocs-material-extensions>=1.0.3
 requests>=2.27.0
@@ -13,4 +13,5 @@ furo==2024.1.29
 requests==2.31.0
 pika==1.3.2
 pydantic==2.6.4
-tuspy==1.0.3
\ No newline at end of file
+tuspy==1.0.3
+mike==2.0.0
\ No newline at end of file
diff --git a/versions.json b/versions.json
new file mode 100644
index 0000000000000000000000000000000000000000..4378f772357e093e48e74b7a254be20bd62538fc
--- /dev/null
+++ b/versions.json
@@ -0,0 +1,17 @@
+[
+  {
+    "version": "1.4.2",
+    "title": "1.4.2",
+    "aliases": ["latest"]
+  },
+  {
+    "version": "1.4.1",
+    "title": "1.4.1",
+    "aliases": []
+  },
+  {
+    "version": "1.4.0",
+    "title": "1.4.0",
+    "aliases": []
+  }
+]
\ No newline at end of file