diff --git a/.travis.yml b/.travis.yml
index a147c22ea7030e03630dd1c3129aa1561ed65763..3dd82d8838774cd081502c8987b820f0512129d3 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -43,6 +43,50 @@ jobs:
       - NODE_ENV=test
       - PORT=12234
 
+    - stage: Check version numbers and release notes
+      name: Check version number advanced (package.json)
+      if: |
+        (type = pull_request AND branch = staging) OR \
+        (type = pull_request AND branch = master AND NOT head_branch = staging)
+      script:
+      - MASTER_VERSION=$(git show origin/master:package.json | jq '.version')
+      - THIS_VERSION=$(jq '.version' < package.json)
+      - test "$MASTER_VERSION" == "$THIS_VERSION" && exit 1 || exit 0
+
+    - name: Check release notes authored (docs/releases/v?.?.?.md)
+      if: |
+        (type = pull_request AND branch = staging) OR \
+        (type = pull_request AND branch = master AND NOT head_branch = staging)
+      script:
+      - |
+        VERSION_NUM=$(jq '.version' < package.json) && \
+        VERSION_NUM=${VERSION_NUM#\"} && \
+        VERSION_NUM=${VERSION_NUM%\"} && \
+        test -f docs/releases/v$VERSION_NUM.md && exit 0 || exit 1
+    - name: Release notes linked in mkdocs.yml
+      if: |
+        (type = pull_request AND branch = staging) OR \
+        (type = pull_request AND branch = master AND NOT head_branch = staging)
+      script:
+      - VERSION_NUM=$(jq '.version' < package.json)
+      - VERSION_NUM=${VERSION_NUM#\"} 
+      - VERSION_NUM=${VERSION_NUM%\"} 
+      - 'echo "VERSION_NUM: $VERSION_NUM"'
+      - cat mkdocs.yml
+      - GREP_VERSION_NUM=$(cat mkdocs.yml | grep $VERSION_NUM)
+      - 'echo GREP_VERSION_NUM: $GREP_VERSION_NUM'
+      - test -z "$GREP_VERSION_NUM" && exit 1 || exit 0
+
+    - stage: Create github release
+      if: |
+        type = push AND \
+        branch = master
+      before_script:
+      - chmod ugo+x ./release.sh
+      script: ./release.sh
+      env:
+      - secure: "mERkfztriSCECF/liheC4zFmq4h+MxausY8N0soTytOWUuTmz+NfxObsQ8w8Zl0h3XVe0BZdueJ15zeoipNBDisHZ2kbfLYnCJ8nsym+0O7mpYUSEiT5nDVE0Yj/9a+ZOAW0h0mvWNOwQZId0uTPr8rEst4IvCr+HkLZEUOM06lnftz1edYN3EsVih6MuTymXNLUaYkMBCErq2AFGvgOy6oP6Mq/D2QkBvM+RUNIxcJ2SrM9lMw4i5L/PeOnxbm0MBUndFhR/P0rJ7qz0j4kRP3DvgXfeW+hQsYcECGsnxMgC+Q59ULTBrRGuD03PnHI+7H8CrX+8maHYy+yf7S/iblaCcr0E5gZq/U0mUJbicymBhw4Ygu76X2Rj6E4jUeoC60MqDZovSisV6xuRXXFDqbfYxlBgFSsSS4Ozbl/RUA5MtLx/N4LwAKv5kafktFwZih/ZfQMAOZQfUDB60y4Mvh1Eg6XK4HhnRxdBE8GWP1tQLq/3n8NLr9KBIR4ceHUNEFXjWw3nPIAujnCqUoxSJotfDEnFUpV6KMgZxiC9vv/vq7IgnzzTXRGdvFfjzBbFmYv4+nqYzZhqKb7BI9y++0v+4Jdu9eHGdYVIpiYzzEKhqImK6I4CsUdcakXiPecdxlwA1zc/yET8qyBNGPGnXvYAw1hBt1VbtP8Rf3PKfo="
+
 
     # Temporarily disabling browserstack e2e tests. They seem to fail without any reason
 
diff --git a/docs/releases/v2.3.0.md b/docs/releases/v2.3.0.md
index bd3c04a72e17891577f1027cb2da88d59d969b3d..2ffdd59932e3d4b2a5c66942f089ca30fa56717e 100644
--- a/docs/releases/v2.3.0.md
+++ b/docs/releases/v2.3.0.md
@@ -1,5 +1,7 @@
 # v2.3.0
 
+11 Dec 2020
+
 ## New features
 
 - update dataset preview functionality, allow the previewing of png
@@ -16,7 +18,7 @@
 - reworked regional dataset previews (iEEG & receptor density)
 - **experimental** : previewing of curated regional features: iEEG coordinates
 
-## Bugfixes:
+## Bugfixes
 
 - dataset list view explicitly show loading status
 - fixed a few typos
diff --git a/docs/releases/v2.3.1.md b/docs/releases/v2.3.1.md
new file mode 100644
index 0000000000000000000000000000000000000000..5517468d33961969d036e9c12430c69785a72975
--- /dev/null
+++ b/docs/releases/v2.3.1.md
@@ -0,0 +1,7 @@
+# v2.3.1
+
+## Bugfixes
+
+- fixes iEEG panel sometimes not loading spatial data (#816 #744)
+- fixes fetching of non-existent data when in big brain reference space (#817)
+- restore CI for staging/release
\ No newline at end of file
diff --git a/mkdocs.yml b/mkdocs.yml
index 5d484b5032699be962e152a95cb4b3ae3223c760..568eea6b071a757c3f8d6e9c0f325f305a268bf1 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -40,6 +40,7 @@ pages:
     - Fetching datasets: 'advanced/datasets.md'
     - Display non-atlas volumes: 'advanced/otherVolumes.md'
   - Release notes:
+    - v2.3.1: 'releases/v2.3.1.md'
     - v2.3.0: 'releases/v2.3.0.md'
     - v2.2.7: 'releases/v2.2.7.md'
     - v2.2.6: 'releases/v2.2.6.md'
diff --git a/package.json b/package.json
index aa5a9d92d5c9578622a44e5e9e81cb46f7fdb146..54f3068a4d587256c482e7e0384e2dbb7a1dce82 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "interactive-viewer",
-  "version": "2.3.0",
+  "version": "2.3.1",
   "description": "HBP interactive atlas viewer. Integrating KG query, dataset previews & more. Based on humanbrainproject/nehuba & google/neuroglancer. Built with angular.io",
   "scripts": {
     "dev-server-export": "webpack-dev-server --config webpack.export.js",