diff --git a/mkdocs.base.yml b/mkdocs.base.yml
new file mode 100644
index 0000000000000000000000000000000000000000..69f573acabd3c4776c973b21cae3c8a83e27be18
--- /dev/null
+++ b/mkdocs.base.yml
@@ -0,0 +1,133 @@
+## Base config for MkDocs site, INHERIT-ed by mkdocs.yml
+
+# A human-friendly name for the site as a whole.
+site_name: "DevOps Division Guidebook"
+
+# The canonical URL of the site.
+site_url: "https://guidebook.devops.uis.cam.ac.uk/"
+
+# Links for sufficiently with it people to submit changes.
+repo_url: "https://gitlab.developers.cam.ac.uk/uis/devops/docs/guidebook/"
+edit_uri: "-/edit/master/docs/"
+repo_name: "Developer Hub Project"
+
+# Make us look pretty.
+theme:
+  name: "material"
+  font:
+    text: "Lato"
+  features:
+    - navigation.tracking
+    - navigation.top
+    - navigation.tabs
+    - navigation.tabs.sticky
+    - navigation.indexes
+    - toc.integrate
+    - content.action.edit
+    - content.code.copy
+    - content.tooltips
+  palette:
+    # Palette toggle for light mode
+    - media: "(prefers-color-scheme: light)"
+      scheme: "default"
+      primary: "teal"
+      secondary: "teal"
+      toggle:
+        icon: material/brightness-7
+        name: Switch to dark mode
+
+    # Palette toggle for dark mode
+    - media: "(prefers-color-scheme: dark)"
+      scheme: "slate"
+      primary: "teal"
+      secondary: "teal"
+      toggle:
+        icon: material/brightness-4
+        name: Switch to light mode
+
+markdown_extensions:
+  # Support notes, warnings, etc.
+  - admonition
+
+  # Allow the use of Pygments to do code highlighting. Do not attempt to guess
+  # the language if we don't specify.
+  - codehilite:
+      guess_lang: false
+
+  # Provide permalinks to help with linking to sections.
+  - toc:
+      permalink: true
+
+  # Support GitLab/GitHub-style task lists.
+  - pymdownx.tasklist:
+      custom_checkbox: true
+
+  # Allow code blocks to be nested inside other elements
+  - pymdownx.superfences
+
+  # Allow Markdown to be used within HTML elements with the "markdown" attribute set.
+  - md_in_html
+
+  # Definition lists
+  - def_list
+
+  # Tables
+  - tables
+
+  # Inline icons and emoji
+  - attr_list
+  - pymdownx.emoji:
+      emoji_index: !!python/name:material.extensions.emoji.twemoji
+      emoji_generator: !!python/name:material.extensions.emoji.to_svg
+
+  - pymdownx.details
+
+  # Allow for inline highlighting of code blocks.
+  - pymdownx.highlight
+  - pymdownx.inlinehilite
+
+  # Footnotes for the Pterry-inclined.
+  - footnotes
+
+  - pymdownx.superfences:
+      custom_fences:
+        - name: mermaid
+          class: mermaid
+          format: !!python/name:pymdownx.superfences.fence_code_format
+
+extra_css:
+  - stylesheets/badges.css
+  - stylesheets/code-block.css
+  - stylesheets/gitlab-labels.css
+
+extra_javascript:
+  - https://unpkg.com/tablesort@5.3.0/dist/tablesort.min.js
+  - javascripts/tablesort.js
+
+plugins:
+  - search
+  - macros
+  - badges
+  - git-revision-date-localized
+  - redirects:
+      redirect_maps:
+        "best-practice/git.md": "explanations/git.md"
+        "deployment/gcp-folders.md": "reference/cloud-platform/gcp-folders.md"
+        "deployment/permissions-and-roles.md": "reference/cloud-platform/permissions-and-roles.md"
+        "deployment/backups.md": "reference/cloud-platform/backups.md"
+        "deployment/dns.md": "reference/cloud-platform/dns.md"
+        "explanations/tech-lead-forum.md": "standards-and-compliance/tech-lead-forum.md"
+  - build_plantuml:
+      allow_multiple_roots: false # in case your codebase contains more locations for diagrams (all ending in diagram_root)
+      diagram_root: "docs/plantuml-diagrams" # should reside under docs_dir
+      input_extensions: "puml"
+      input_folder: "src"
+      output_folder: "out"
+      output_format: "svg" # or "png"
+      render: "server"
+      server: "http://plantuml:8080"
+  - exclude:
+      glob:
+        - "services/service-template.md"
+        - "services/temporary-employment-service.md"
+        - "standards-and-compliance/index.md"
\ No newline at end of file
diff --git a/mkdocs.yml b/mkdocs.yml
index ca80d38acacd763a31d305b13d636cc25303b153..3164d0c17e1a1fceba43f1e23ee4baabd99a0238 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -1,10 +1,5 @@
-# A human-friendly name for the site as a whole.
-site_name: "DevOps Division Guidebook"
-
-# The canonical URL of the site.
-site_url: "https://guidebook.devops.uis.cam.ac.uk/"
-
-# Site layout
+INHERIT: ./mkdocs.base.yml
+# Navigation layout for the mkdocs site
 nav:
   - index.md
   - "Contact us":
@@ -21,6 +16,13 @@ nav:
       - standards-and-compliance/standard-architecture-diagrams.md
       - "Non-Functional Requirements":
         - standards-and-compliance/non-functional-requirements/index.md
+        - standards-and-compliance/non-functional-requirements/apis.md
+        - standards-and-compliance/non-functional-requirements/availability.md
+        - standards-and-compliance/non-functional-requirements/gcp.md
+        - standards-and-compliance/non-functional-requirements/ownership.md
+        - standards-and-compliance/non-functional-requirements/security.md
+        - standards-and-compliance/non-functional-requirements/template.md
+        - standards-and-compliance/non-functional-requirements/user-concurrency.md
   - "Our Services":
       - services/index.md
       - "Education":
@@ -84,6 +86,7 @@ nav:
               - services/university-human-resources-api.md
               - services/university-student-api.md
           - services/information-asset-register.md
+          - services/legacy-application-backups.md
           - services/lookup-gitlab-sync.md
           - services/malware-and-virus-scanner.md
           - services/nursery-waiting-list.md
@@ -127,6 +130,7 @@ nav:
         - libraries-tools/python/index.md
   - "How-to":
       - howtos/index.md
+      - howtos/msteams-workflows-webhooks.md
       - "Products":
           - howtos/bootstrap-a-product.md
           - howtos/check-product-configuration.md
@@ -232,6 +236,7 @@ nav:
       - reference/webapp-developer-environment.md
       - reference/vulnerability-triage-process.md
       - reference/openapi-client-generation.md
+      - reference/tech-lead-forum.md
       - "Git/GitLab":
           - "Labels": reference/gitlab-labels.md
           - "Python CI jobs": "https://gitlab.developers.cam.ac.uk/uis/devops/continuous-delivery/ci-templates/-/blob/master/auto-devops/python.md"
@@ -288,124 +293,3 @@ nav:
           - notes/internal-ca.md
           - notes/raven-test-sites.md
           - notes/faq.md
-
-# Links for sufficiently with it people to submit changes.
-repo_url: "https://gitlab.developers.cam.ac.uk/uis/devops/docs/guidebook/"
-edit_uri: "-/edit/master/docs/"
-repo_name: "Developer Hub Project"
-
-# Make us look pretty.
-theme:
-  name: "material"
-  font:
-    text: "Lato"
-  features:
-    - navigation.tracking
-    - navigation.top
-    - navigation.tabs
-    - navigation.tabs.sticky
-    - navigation.indexes
-    - toc.integrate
-    - content.action.edit
-    - content.code.copy
-    - content.tooltips
-  palette:
-    # Palette toggle for light mode
-    - media: "(prefers-color-scheme: light)"
-      scheme: "default"
-      primary: "teal"
-      secondary: "teal"
-      toggle:
-        icon: material/brightness-7
-        name: Switch to dark mode
-
-    # Palette toggle for dark mode
-    - media: "(prefers-color-scheme: dark)"
-      scheme: "slate"
-      primary: "teal"
-      secondary: "teal"
-      toggle:
-        icon: material/brightness-4
-        name: Switch to light mode
-
-markdown_extensions:
-  # Support notes, warnings, etc.
-  - admonition
-
-  # Allow the use of Pygments to do code highlighting. Do not attempt to guess
-  # the language if we don't specify.
-  - codehilite:
-      guess_lang: false
-
-  # Provide permalinks to help with linking to sections.
-  - toc:
-      permalink: true
-
-  # Support GitLab/GitHub-style task lists.
-  - pymdownx.tasklist:
-      custom_checkbox: true
-
-  # Allow code blocks to be nested inside other elements
-  - pymdownx.superfences
-
-  # Allow Markdown to be used within HTML elements with the "markdown" attribute set.
-  - md_in_html
-
-  # Definition lists
-  - def_list
-
-  # Tables
-  - tables
-
-  # Inline icons and emoji
-  - attr_list
-  - pymdownx.emoji:
-      emoji_index: !!python/name:material.extensions.emoji.twemoji
-      emoji_generator: !!python/name:material.extensions.emoji.to_svg
-
-  - pymdownx.details
-
-  # Allow for inline highlighting of code blocks.
-  - pymdownx.highlight
-  - pymdownx.inlinehilite
-
-  # Footnotes for the Pterry-inclined.
-  - footnotes
-
-  - pymdownx.superfences:
-      custom_fences:
-        - name: mermaid
-          class: mermaid
-          format: !!python/name:pymdownx.superfences.fence_code_format
-
-extra_css:
-  - stylesheets/badges.css
-  - stylesheets/code-block.css
-  - stylesheets/gitlab-labels.css
-
-extra_javascript:
-  - https://unpkg.com/tablesort@5.3.0/dist/tablesort.min.js
-  - javascripts/tablesort.js
-
-plugins:
-  - search
-  - macros
-  - badges
-  - git-revision-date-localized
-  - redirects:
-      redirect_maps:
-        "best-practice/git.md": "explanations/git.md"
-        "deployment/gcp-folders.md": "reference/cloud-platform/gcp-folders.md"
-        "deployment/permissions-and-roles.md": "reference/cloud-platform/permissions-and-roles.md"
-        "deployment/backups.md": "reference/cloud-platform/backups.md"
-        "deployment/dns.md": "reference/cloud-platform/dns.md"
-        "explanations/tech-lead-forum.md": "standards-and-compliance/tech-lead-forum.md"
-  - build_plantuml:
-      allow_multiple_roots: false # in case your codebase contains more locations for diagrams (all ending in diagram_root)
-      diagram_root: "docs/plantuml-diagrams" # should reside under docs_dir
-      input_extensions: "puml"
-      input_folder: "src"
-      output_folder: "out"
-      output_format: "svg" # or "png"
-      render: "server"
-      server: "http://plantuml:8080"
diff --git a/requirements.txt b/requirements.txt
index 0fea6e4512594f72b581a2360e71f6d97516a6a9..56554f191d9f68e9dfa6dcc143d59689541dd3f0 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -2,6 +2,7 @@ Jinja2~=3.1
 PyYAML~=6.0
 mkdocs-badges~=0.4.4
 mkdocs-build-plantuml-plugin~=1.4
+mkdocs-exclude~=1.0.2
 mkdocs-git-revision-date-localized-plugin~=1.3.0
 mkdocs-macros-plugin~=1.3.5
 mkdocs-material~=9.5