diff --git a/.gitmodules b/.gitmodules
index a83e793ed130c428ed818e68bc9ba1c50e05af7b..f39e4287a285e576ece78971a8897f64bc137808 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -46,3 +46,6 @@
 [submodule "ThirdParty/ogs6py"]
 	path = ThirdParty/ogs6py
 	url = https://github.com/joergbuchwald/ogs6py.git
+[submodule "ThirdParty/json-cmake"]
+	path = ThirdParty/json-cmake
+	url = https://github.com/ufz/json-cmake.git
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d15d2dd0cbf34157b172b3786c1be9051fef1d8c..43c3169781dee9043d05114a8ead73d5b52a0bb7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -61,6 +61,7 @@ endif()
 option(OGS_USE_CVODE "Use the Sundials CVODE module?" OFF)
 
 # ---- CMake includes ----
+include(Versions)
 include(PreFind)
 include(CheckTypeSizes)
 include(Functions)
diff --git a/ThirdParty/json-cmake b/ThirdParty/json-cmake
new file mode 160000
index 0000000000000000000000000000000000000000..9708cb091f6b89b94d71ae98f8b9e68ea04c47dd
--- /dev/null
+++ b/ThirdParty/json-cmake
@@ -0,0 +1 @@
+Subproject commit 9708cb091f6b89b94d71ae98f8b9e68ea04c47dd
diff --git a/scripts/cmake/CompilerSetup.cmake b/scripts/cmake/CompilerSetup.cmake
index 03bd4dafc37b2362bb647df5d55d3da481c94744..c5af43ae39bf692e8f4a40828b06b1977e0e3544 100644
--- a/scripts/cmake/CompilerSetup.cmake
+++ b/scripts/cmake/CompilerSetup.cmake
@@ -95,18 +95,18 @@ if(COMPILER_IS_GCC OR COMPILER_IS_CLANG OR COMPILER_IS_INTEL)
     endif()
 
     if(COMPILER_IS_GCC)
-        if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "7.3")
-            message(FATAL_ERROR "GCC minimum required version is 7.3! You are \
-                using ${CMAKE_CXX_COMPILER_VERSION}.")
+        if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${ogs.minimum_version.gcc})
+            message(FATAL_ERROR "GCC minimum required version is ${OGS_GCC_MINIMUM_VERSION}! \
+                You are using ${CMAKE_CXX_COMPILER_VERSION}.")
         endif()
         add_compile_options(-fext-numeric-literals)
         include(GCCSanitizer)
     endif()
 
     if(COMPILER_IS_CLANG)
-        if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "3.5")
-            message(FATAL_ERROR "Aborting: Clang 3.5 is required! Found version \
-                ${CMAKE_CXX_COMPILER_VERSION}")
+        if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${ogs.minimum_version.clang})
+            message(FATAL_ERROR "Aborting: Clang ${OGS_CLANG_MINIMUM_VERSION} \
+                is required! Found version ${CMAKE_CXX_COMPILER_VERSION}")
         endif()
         include(ClangSanitizer)
     endif()
diff --git a/scripts/cmake/SubmoduleSetup.cmake b/scripts/cmake/SubmoduleSetup.cmake
index 14b87e8af07f2f5bcb09c2cf1f5a9ee90f17039f..d2bc2ac8f3c7c53dda89a7fadf62ae0fd4ba72e4 100644
--- a/scripts/cmake/SubmoduleSetup.cmake
+++ b/scripts/cmake/SubmoduleSetup.cmake
@@ -15,6 +15,7 @@ set(REQUIRED_SUBMODULES
     ThirdParty/googletest
     ThirdParty/iphreeqc/src
     ThirdParty/jedbrown-cmake-modules
+    ThirdParty/json-cmake
     ThirdParty/tclap
     ThirdParty/tetgen
     ThirdParty/vtkdiff
diff --git a/scripts/cmake/Versions.cmake b/scripts/cmake/Versions.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..7d9eed4199c3e840e375473ae7b4c3952e831388
--- /dev/null
+++ b/scripts/cmake/Versions.cmake
@@ -0,0 +1,8 @@
+include(${PROJECT_SOURCE_DIR}/ThirdParty/json-cmake/JSONParser.cmake)
+file(READ ${PROJECT_SOURCE_DIR}/web/data/versions.json jsonFileString)
+sbeParseJson(ogs jsonFileString)
+# Provides variables, e.g. ogs.minimum_version.gcc
+# Output all variables with
+#   foreach(var ${ogs})
+#     message("${var} = ${${var}}")
+#   endforeach()
diff --git a/web/content/docs/devguide/getting-started/prerequisites.pandoc b/web/content/docs/devguide/getting-started/prerequisites.pandoc
index 477f64bb4c51f8994994b954b389e46d0d60ff8a..cdf58c4a41733557022da0d09ff31cf93ecad22f 100644
--- a/web/content/docs/devguide/getting-started/prerequisites.pandoc
+++ b/web/content/docs/devguide/getting-started/prerequisites.pandoc
@@ -31,11 +31,11 @@ As we use lots of features of the C++11-standard we support **Visual Studio 2015
 :::
 
 ::: {.linux}
-If you have a recent linux distribution you should also have a recent gcc. Please check that you have at least **gcc 6.2**:
+If you have a recent linux distribution you should also have a recent gcc. Please check that you have at least **gcc {{< dataFile "versions.minimum_version.gcc" >}}**:
 
 ```bash
 $ gcc --version
-gcc (GCC) 6.2.0
+gcc (GCC) {{< dataFile "versions.minimum_version.gcc" >}}.0
 ```
 :::
 
diff --git a/web/data/versions.json b/web/data/versions.json
new file mode 100644
index 0000000000000000000000000000000000000000..2f6053556ab896dc5914a65bef90df79dc968c3e
--- /dev/null
+++ b/web/data/versions.json
@@ -0,0 +1,6 @@
+{
+  "minimum_version": {
+    "gcc": "7.3",
+    "clang": "3.5"
+  }
+}
diff --git a/web/layouts/shortcodes/dataFile.html b/web/layouts/shortcodes/dataFile.html
new file mode 100644
index 0000000000000000000000000000000000000000..d47c61c71a2be7278b7c8d5d967c9cebc5b19fd1
--- /dev/null
+++ b/web/layouts/shortcodes/dataFile.html
@@ -0,0 +1,9 @@
+{{- with .Get 0 -}}
+  {{- $map := split . "." }}
+  {{- $url := index $.Site.Data $map -}}
+  {{- if $url -}}
+{{- $url -}}
+  {{- else -}}
+{{- errorf "No data for key %s" . -}}
+  {{- end -}}
+{{- end -}}