diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index abf6e568aa222716c210e535969493faa8d0426d..16675752f7075dd4ff46fc47ddc06377bc680dd0 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -3,6 +3,11 @@ image: beagle/sphinx-build-env:latest
 stages:
   - deploy
 
+cache:
+  key: $CI_COMMIT_REF_SLUG
+  paths:
+    - public
+
 pages:
   stage: deploy
   script:
diff --git a/conf.py b/conf.py
index 2e6dbb712196ceb73cf607f7093095e81baa3300..5f97e1eac4f875faefcab62498f6b3d801656d38 100644
--- a/conf.py
+++ b/conf.py
@@ -100,7 +100,10 @@ with open(BBDOCS_BASE  / "PAGES") as f:
         url, slug = m.groups(1)
         pages_url = url
         pages_slug = slug
-        docs_url = "/".join((url, slug))
+        if slug == "main":
+            docs_url = "/".join((url, "latest"))
+        else:
+            docs_url = "/".join((url, slug))
 
 html_context = {
     "display_gitlab": True,