diff --git a/gui/.gitignore b/gui/.gitignore
index 934d6a8981ad1a047d8ad41f64a5478e37a911b7..dfa47e48416cf605a28eb39000507437496a74e9 100644
--- a/gui/.gitignore
+++ b/gui/.gitignore
@@ -11,6 +11,7 @@
 
 # generated
 public/metainfo/
+public/meta.json
 
 # misc
 .DS_Store
diff --git a/gui/generateBuildVersion.js b/gui/generateBuildVersion.js
new file mode 100644
index 0000000000000000000000000000000000000000..8a5482b95848b05ece4a3e4c67fee791e9aae614
--- /dev/null
+++ b/gui/generateBuildVersion.js
@@ -0,0 +1,19 @@
+const fs = require('fs')
+const packageJson = require('./package.json')
+
+const appVersion = packageJson.version
+
+const jsonData = {
+  version: appVersion
+}
+
+var jsonContent = JSON.stringify(jsonData)
+
+fs.writeFile('./public/meta.json', jsonContent, 'utf8', function(err) {
+  if (err) {
+    console.log('An error occured while writing JSON Object to meta.json')
+    return console.log(err)
+  }
+
+  console.log('meta.json file has been saved with latest version number')
+})
diff --git a/gui/package.json b/gui/package.json
index 72bfb37240d80230f1b888285aa1e5c4782821f1..34f88cf59d72edf16dc2649e34acaf88cab6c61a 100644
--- a/gui/package.json
+++ b/gui/package.json
@@ -37,6 +37,8 @@
     "url-parse": "^1.4.3"
   },
   "scripts": {
+    "generate-build-version": "node generateBuildVersion",
+    "prebuild": "npm run generate-build-version",
     "start": "react-scripts start",
     "build": "react-scripts build",
     "test": "react-scripts test --env=jsdom",
diff --git a/gui/src/components/App.js b/gui/src/components/App.js
index 77ed9192469378cceb13e5d7eb6e64528b1ff384..e8508f1a2ad9f5762e77d980d6de0a927c58d734 100644
--- a/gui/src/components/App.js
+++ b/gui/src/components/App.js
@@ -26,6 +26,7 @@ import LoginLogout from './LoginLogout'
 import { genTheme, repoTheme, archiveTheme } from '../config'
 import { DomainProvider } from './domains'
 import MetaInfoBrowser from './metaInfoBrowser/MetaInfoBrowser'
+import packageJson from '../../package.json'
 
 const drawerWidth = 200
 
@@ -155,6 +156,20 @@ class NavigationUnstyled extends React.Component {
     this.handleDrawerClose = this.handleDrawerClose.bind(this)
   }
 
+  componentDidMount() {
+    fetch('/meta.json')
+      .then((response) => response.json())
+      .then((meta) => {
+        if (meta.version !== packageJson.version) {
+          console.log('Different version, hard reloading...')
+          window.location.reload(true)
+        }
+      })
+      .catch(() => {
+        console.log('Could not validate version, continue...')
+      })
+  }
+
   handleDrawerOpen() {
     this.setState({ open: true })
   }