diff --git a/README.md b/README.md
index 97891a7fa..dd5bf0a26 100644
--- a/README.md
+++ b/README.md
@@ -17,7 +17,7 @@ tool gives you the powers of a developer without leaving your browser.
 [![Deploy to Heroku](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/bram2w/baserow/tree/master)
 
 ```bash
-docker run -v baserow_data:/baserow/data -p 80:80 -p 443:443 baserow/baserow:1.8.3
+docker run -v baserow_data:/baserow/data -p 80:80 -p 443:443 baserow/baserow:1.9
 ```
 
 ![Baserow screenshot](docs/assets/screenshot.png "Baserow screenshot")
@@ -86,7 +86,7 @@ Created by Baserow B.V. - bram@baserow.io.
 
 Distributes under the MIT license. See `LICENSE` for more information.
 
-Version: 1.8.3
+Version: 1.9
 
 The official repository can be found at https://gitlab.com/bramw/baserow.
 
diff --git a/backend/setup.py b/backend/setup.py
index cddcf1f66..e66695124 100644
--- a/backend/setup.py
+++ b/backend/setup.py
@@ -6,7 +6,7 @@ from setuptools import find_packages, setup
 
 PROJECT_DIR = os.path.dirname(__file__)
 REQUIREMENTS_DIR = os.path.join(PROJECT_DIR, "requirements")
-VERSION = "1.8.3"
+VERSION = "1.9"
 
 
 def get_requirements(env):
diff --git a/backend/src/baserow/config/settings/base.py b/backend/src/baserow/config/settings/base.py
index ecd077418..336076518 100644
--- a/backend/src/baserow/config/settings/base.py
+++ b/backend/src/baserow/config/settings/base.py
@@ -254,7 +254,7 @@ SPECTACULAR_SETTINGS = {
         "name": "MIT",
         "url": "https://gitlab.com/bramw/baserow/-/blob/master/LICENSE",
     },
-    "VERSION": "1.8.3",
+    "VERSION": "1.9",
     "SERVE_INCLUDE_SCHEMA": False,
     "TAGS": [
         {"name": "Settings"},
diff --git a/backend/src/baserow/version.py b/backend/src/baserow/version.py
index 5abd408d5..063bf41fa 100644
--- a/backend/src/baserow/version.py
+++ b/backend/src/baserow/version.py
@@ -1 +1 @@
-VERSION = "1.8.3"
+VERSION = "1.9"
diff --git a/changelog.md b/changelog.md
index 78f45a25f..e0d12d2b5 100644
--- a/changelog.md
+++ b/changelog.md
@@ -2,6 +2,8 @@
 
 ## Unreleased
 
+## Released (2022-03-02 1.9)
+
 * Added accept `image/*` attribute to the form cover and logo upload. 
 * Added management to import a shared Airtable base.
 * Fixed adding new fields in the edit row popup that require refresh in Kanban and Form views.
diff --git a/deploy/all-in-one/README.md b/deploy/all-in-one/README.md
index d83e5f39d..81fc6736f 100644
--- a/deploy/all-in-one/README.md
+++ b/deploy/all-in-one/README.md
@@ -15,7 +15,7 @@ tool gives you the powers of a developer without leaving your browser.
   [Vue.js](https://vuejs.org/) and [PostgreSQL](https://www.postgresql.org/).
 
 ```bash
-docker run -v baserow_data:/baserow/data -p 80:80 -p 443:443 baserow/baserow:1.8.3
+docker run -v baserow_data:/baserow/data -p 80:80 -p 443:443 baserow/baserow:1.9
 ```
 
 ## Quick Reference
@@ -49,7 +49,7 @@ docker run \
   -p 80:80 \
   -p 443:443 \
   --restart unless-stopped \
-  baserow/baserow:1.8.3
+  baserow/baserow:1.9
 ```
 
 * Change `BASEROW_PUBLIC_URL` to `https://YOUR_DOMAIN` or `http://YOUR_IP` to enable
@@ -71,7 +71,7 @@ docker run \
 
 ## Image Feature Overview
 
-The `baserow/baserow:1.8.3` image by default runs all of Baserow's various services in a
+The `baserow/baserow:1.9` image by default runs all of Baserow's various services in a
 single container for ease of use. A quick summary of its features are:
 
 * Runs a Postgres database and Redis server by default internally and stores all data in
@@ -114,7 +114,7 @@ docker run \
   -p 80:80 \
   -p 443:443 \
   --restart unless-stopped \
-  baserow/baserow:1.8.3
+  baserow/baserow:1.9
 ```
 
 ### Behind a reverse proxy already handling ssl
@@ -127,7 +127,7 @@ docker run \
   -v baserow_data:/baserow/data \
   -p 80:80 \
   --restart unless-stopped \
-  baserow/baserow:1.8.3
+  baserow/baserow:1.9
 ```
 
 ### On a nonstandard HTTP port
@@ -140,7 +140,7 @@ docker run \
   -v baserow_data:/baserow/data \
   -p 3001:80 \
   --restart unless-stopped \
-  baserow/baserow:1.8.3
+  baserow/baserow:1.9
 ```
 
 ### With an external PostgresSQL server
@@ -159,7 +159,7 @@ docker run \
   -p 80:80 \
   -p 443:443 \
   --restart unless-stopped \
-  baserow/baserow:1.8.3
+  baserow/baserow:1.9
 ```
 
 ### With an external Redis server
@@ -178,7 +178,7 @@ docker run \
   -p 80:80 \
   -p 443:443 \
   --restart unless-stopped \
-  baserow/baserow:1.8.3
+  baserow/baserow:1.9
 ```
 
 ### With an external email server
@@ -198,7 +198,7 @@ docker run \
   -p 80:80 \
   -p 443:443 \
   --restart unless-stopped \
-  baserow/baserow:1.8.3
+  baserow/baserow:1.9
 ```
 
 ### Start just the embedded database
@@ -211,7 +211,7 @@ docker run -it \
   --name baserow \
   -p 5432:5432 \
   -v baserow_data:/baserow/data \
-  baserow/baserow:1.8.3 \
+  baserow/baserow:1.9 \
   start-only-db 
 # Now get the password from
 docker exec -it baserow cat /baserow/data/.pgpass
@@ -229,7 +229,7 @@ docker run -it \
   --rm \
   --name baserow \
   -v baserow_data:/baserow/data \
-  baserow/baserow:1.8.3 \
+  baserow/baserow:1.9 \
   backend-cmd-with-db manage dbshell
 ```
 
@@ -286,16 +286,16 @@ the command below.
 
 ```bash 
 # First read the help message for this command
-docker run -it --rm -v baserow_data:/baserow/data baserow/baserow:1.8.3 \
+docker run -it --rm -v baserow_data:/baserow/data baserow/baserow:1.9 \
    backend-cmd-with-db backup
    
 # By default backs up to the backups folder in the baserow_data volume.
-docker run -it --rm -v baserow_data:/baserow/data baserow/baserow:1.8.3 \
+docker run -it --rm -v baserow_data:/baserow/data baserow/baserow:1.9 \
    backend-cmd-with-db backup -f /baserow/data/backups/backup.tar.gz
    
 # Or backup to a file on your host instead run something like:
 docker run -it --rm -v baserow_data:/baserow/data -v $PWD:/baserow/host \
-   baserow/baserow:1.8.3 backend-cmd-with-db backup -f /baserow/host/backup.tar.gz
+   baserow/baserow:1.9 backend-cmd-with-db backup -f /baserow/host/backup.tar.gz
 ```
 
 ### Restore only Baserow's Postgres Database
@@ -364,7 +364,7 @@ docker run \
   -p 80:80 \
   -p 443:443 \
   --restart unless-stopped \
-  baserow/baserow:1.8.3
+  baserow/baserow:1.9
 ```
 
 Or you can just store it directly in the volume at `baserow_data/env` meaning it will
@@ -373,7 +373,7 @@ be loaded whenever you mount in this data volume.
 ### Building your own image from Baserow
 
 ```dockerfile
-FROM baserow/baserow:1.8.3
+FROM baserow/baserow:1.9
 
 # Any .sh files found in /baserow/supervisor/env/ will be sourced and loaded at startup
 # useful for storing your own environment variable overrides.
diff --git a/deploy/all-in-one/supervisor/start.sh b/deploy/all-in-one/supervisor/start.sh
index 2150bb228..3b04418bf 100755
--- a/deploy/all-in-one/supervisor/start.sh
+++ b/deploy/all-in-one/supervisor/start.sh
@@ -14,7 +14,7 @@ cat << EOF
 ██████╔╝██║  ██║███████║███████╗██║  ██║╚██████╔╝╚███╔███╔╝
 ╚═════╝ ╚═╝  ╚═╝╚══════╝╚══════╝╚═╝  ╚═╝ ╚═════╝  ╚══╝╚══╝
 
-Version 1.8.3
+Version 1.9
 
 =========================================================================================
 EOF
diff --git a/deploy/cloudron/CloudronManifest.json b/deploy/cloudron/CloudronManifest.json
index 905bfacdf..29e4fff38 100644
--- a/deploy/cloudron/CloudronManifest.json
+++ b/deploy/cloudron/CloudronManifest.json
@@ -8,7 +8,7 @@
   "contactEmail": "bram@baserow.io",
   "icon": "file://logo.png",
   "tags": ["no-code", "nocode", "database", "data", "collaborate", "airtable"],
-  "version": "1.8.3",
+  "version": "1.9",
   "healthCheckPath": "/api/_health",
   "httpPort": 80,
   "addons": {
diff --git a/deploy/cloudron/Dockerfile b/deploy/cloudron/Dockerfile
index a4b4e65e0..5826591f0 100644
--- a/deploy/cloudron/Dockerfile
+++ b/deploy/cloudron/Dockerfile
@@ -1,4 +1,4 @@
-ARG FROM_IMAGE=baserow/baserow:1.8.3
+ARG FROM_IMAGE=baserow/baserow:1.9
 # This is pinned as version pinning is done by the CI setting FROM_IMAGE.
 # hadolint ignore=DL3006
 FROM $FROM_IMAGE as image_base
diff --git a/deploy/cloudron/README.md b/deploy/cloudron/README.md
index 35fc7b912..73a774ee0 100644
--- a/deploy/cloudron/README.md
+++ b/deploy/cloudron/README.md
@@ -31,5 +31,5 @@ guide for more details.
 * [`X.Y.Z`](https://gitlab.com/bramw/baserow/-/blob/master/deploy/cloudron/Dockerfile)
   Tagged by Baserow version.
 * [`latest`](https://gitlab.com/bramw/baserow/-/blob/master/deploy/cloudron/Dockerfile)
-* [`develop-latest`](https://gitlab.com/bramw/baserow/-/blob/1.8.3/deploy/cloudron/Dockerfile)
+* [`develop-latest`](https://gitlab.com/bramw/baserow/-/blob/1.9/deploy/cloudron/Dockerfile)
   This is a bleeding edge image from our development branch, use at your own risk.
diff --git a/docker-compose.yml b/docker-compose.yml
index cc2a9443f..cf4a67a9b 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -176,7 +176,7 @@ services:
       local:
 
   backend:
-    image: baserow/backend:1.8.3
+    image: baserow/backend:1.9
     restart: unless-stopped
     environment:
       <<: *common-backend-variables
@@ -189,7 +189,7 @@ services:
       local:
 
   web-frontend:
-    image: baserow/web-frontend:1.8.3
+    image: baserow/web-frontend:1.9
     restart: unless-stopped
     environment:
       <<: *common-variables
@@ -199,7 +199,7 @@ services:
       local:
 
   celery:
-    image: baserow/backend:1.8.3
+    image: baserow/backend:1.9
     restart: unless-stopped
     environment:
       <<: *common-backend-variables
@@ -216,7 +216,7 @@ services:
       local:
 
   celery-export-worker:
-    image: baserow/backend:1.8.3
+    image: baserow/backend:1.9
     restart: unless-stopped
     command: celery-exportworker
     # The backend image's baked in healthcheck defaults to the django healthcheck
@@ -233,7 +233,7 @@ services:
       local:
 
   celery-beat-worker:
-    image: baserow/backend:1.8.3
+    image: baserow/backend:1.9
     restart: unless-stopped
     command: celery-beat
     # We don't yet have a healthcheck for the beat worker, just assume it is healthy.
diff --git a/docs/installation/install-on-cloudron.md b/docs/installation/install-on-cloudron.md
index 482e61988..265ab63f8 100644
--- a/docs/installation/install-on-cloudron.md
+++ b/docs/installation/install-on-cloudron.md
@@ -46,7 +46,7 @@ $ cd baserow/deploy/cloudron
 After that you can install the Baserow Cloudron app by executing the following commands.
 
 ```
-$ cloudron install -l baserow.{YOUR_DOMAIN} --image baserow/cloudron:1.8.3
+$ cloudron install -l baserow.{YOUR_DOMAIN} --image baserow/cloudron:1.9
 App is being installed.
 ...
 App is installed.
@@ -89,7 +89,7 @@ the `baserow/deploy/cloudron` folder, you can upgrade your cloudron baserow serv
 the latest version by running the following command:
 
 ```
-cloudron update --app {YOUR_APP_ID} --image baserow/cloudron:1.8.3
+cloudron update --app {YOUR_APP_ID} --image baserow/cloudron:1.9
 ```
 
 > Note that you must replace the image with the most recent image of Baserow. The
diff --git a/docs/installation/install-on-ubuntu.md b/docs/installation/install-on-ubuntu.md
index 93fd7a247..44f655d25 100644
--- a/docs/installation/install-on-ubuntu.md
+++ b/docs/installation/install-on-ubuntu.md
@@ -34,7 +34,7 @@ docker run -e BASEROW_PUBLIC_URL=http://localhost \
 -v baserow_data:/baserow/data \
 -p 80:80 \
 -p 443:443 \
-baserow/baserow:1.8.3
+baserow/baserow:1.9
 # Watch the logs for Baserow to come available by running:
 docker logs baserow
 ```
@@ -77,7 +77,7 @@ docker run \
   -v /baserow/media:/baserow/data/media \
   -p 80:80 \
   -p 443:443 \
-  baserow/baserow:1.8.3
+  baserow/baserow:1.9
 # Check the logs and wait for Baserow to become available
 docker logs baserow
 ```
diff --git a/docs/installation/install-using-standalone-images.md b/docs/installation/install-using-standalone-images.md
index 06d55bfaf..91fcb8805 100644
--- a/docs/installation/install-using-standalone-images.md
+++ b/docs/installation/install-using-standalone-images.md
@@ -10,9 +10,9 @@
 
 Baserow consists of a number of services, two of which are built and provided as 
 separate standalone images by us:
-* `baserow/backend:1.8.3` which by default starts the Gunicorn Django backend server 
+* `baserow/backend:1.9` which by default starts the Gunicorn Django backend server 
   for Baserow but is also used to start the celery workers and celery beat services.
-* `baserow/web-frontend:1.8.3` which is a Nuxt server providing Server Side rendering 
+* `baserow/web-frontend:1.9` which is a Nuxt server providing Server Side rendering 
   for the website.
 
 If you want to use your own container orchestration software like Kubernetes then these
@@ -27,10 +27,10 @@ in the root of our repository.
 These are all the services you need to set up to run a Baserow using the standalone 
 images:
 
-* `baserow/backend:1.8.3` (default command is `gunicorn`)
-* `baserow/backend:1.8.3` with command `celery-worker`
-* `baserow/backend:1.8.3` with command `celery-export-worker`
-* `baserow/web-frontend:1.8.3` (default command is `nuxt-local`)
+* `baserow/backend:1.9` (default command is `gunicorn`)
+* `baserow/backend:1.9` with command `celery-worker`
+* `baserow/backend:1.9` with command `celery-export-worker`
+* `baserow/web-frontend:1.9` (default command is `nuxt-local`)
 * A postgres database 
 * A redis server
 
diff --git a/docs/installation/install-with-docker.md b/docs/installation/install-with-docker.md
index a70e409fd..960a1d5ae 100644
--- a/docs/installation/install-with-docker.md
+++ b/docs/installation/install-with-docker.md
@@ -27,7 +27,7 @@ docker run \
   -p 80:80 \
   -p 443:443 \
   --restart unless-stopped \
-  baserow/baserow:1.8.3
+  baserow/baserow:1.9
 ```
 
 * Change `BASEROW_PUBLIC_URL` to `https://YOUR_DOMAIN` or `http://YOUR_IP` to enable
@@ -49,7 +49,7 @@ docker run \
 
 ## Image Feature Overview
 
-The `baserow/baserow:1.8.3` image by default runs all of Baserow's various services in a
+The `baserow/baserow:1.9` image by default runs all of Baserow's various services in a
 single container for ease of use. A quick summary of its features are:
 
 * Runs a Postgres database and Redis server by default internally and stores all data in
@@ -92,7 +92,7 @@ docker run \
   -p 80:80 \
   -p 443:443 \
   --restart unless-stopped \
-  baserow/baserow:1.8.3
+  baserow/baserow:1.9
 ```
 
 ### Behind a reverse proxy already handling ssl
@@ -105,7 +105,7 @@ docker run \
   -v baserow_data:/baserow/data \
   -p 80:80 \
   --restart unless-stopped \
-  baserow/baserow:1.8.3
+  baserow/baserow:1.9
 ```
 
 ### On a nonstandard HTTP port
@@ -118,7 +118,7 @@ docker run \
   -v baserow_data:/baserow/data \
   -p 3001:80 \
   --restart unless-stopped \
-  baserow/baserow:1.8.3
+  baserow/baserow:1.9
 ```
 
 ### With an external PostgresSQL server
@@ -137,7 +137,7 @@ docker run \
   -p 80:80 \
   -p 443:443 \
   --restart unless-stopped \
-  baserow/baserow:1.8.3
+  baserow/baserow:1.9
 ```
 
 ### With an external Redis server
@@ -156,7 +156,7 @@ docker run \
   -p 80:80 \
   -p 443:443 \
   --restart unless-stopped \
-  baserow/baserow:1.8.3
+  baserow/baserow:1.9
 ```
 
 ### With an external email server
@@ -176,7 +176,7 @@ docker run \
   -p 80:80 \
   -p 443:443 \
   --restart unless-stopped \
-  baserow/baserow:1.8.3
+  baserow/baserow:1.9
 ```
 
 ### Start just the embedded database 
@@ -189,7 +189,7 @@ docker run -it \
   --name baserow \
   -p 5432:5432 \
   -v baserow_data:/baserow/data \
-  baserow/baserow:1.8.3 \
+  baserow/baserow:1.9 \
   start-only-db 
 # Now get the password from
 docker exec -it baserow cat /baserow/data/.pgpass
@@ -207,7 +207,7 @@ docker run -it \
   --rm \
   --name baserow \
   -v baserow_data:/baserow/data \
-  baserow/baserow:1.8.3 \
+  baserow/baserow:1.9 \
   backend-cmd-with-db manage dbshell
 ```
 
@@ -264,16 +264,16 @@ the command below.
 
 ```bash 
 # First read the help message for this command
-docker run -it --rm -v baserow_data:/baserow/data baserow/baserow:1.8.3 \
+docker run -it --rm -v baserow_data:/baserow/data baserow/baserow:1.9 \
    backend-cmd-with-db backup
 
 # By default backs up to the backups folder in the baserow_data volume.
-docker run -it --rm -v baserow_data:/baserow/data baserow/baserow:1.8.3 \
+docker run -it --rm -v baserow_data:/baserow/data baserow/baserow:1.9 \
    backend-cmd-with-db backup -f /baserow/data/backups/backup.tar.gz
 
 # Or backup to a file on your host instead run something like:
 docker run -it --rm -v baserow_data:/baserow/data -v $PWD:/baserow/host \
-   baserow/baserow:1.8.3 backend-cmd-with-db backup -f /baserow/host/backup.tar.gz
+   baserow/baserow:1.9 backend-cmd-with-db backup -f /baserow/host/backup.tar.gz
 ```
 
 ### Restore only Baserow's Postgres Database
@@ -342,7 +342,7 @@ docker run \
   -p 80:80 \
   -p 443:443 \
   --restart unless-stopped \
-  baserow/baserow:1.8.3
+  baserow/baserow:1.9
 ```
 
 Or you can just store it directly in the volume at `baserow_data/env` meaning it will
@@ -352,7 +352,7 @@ be loaded whenever you mount in this data volume.
 ### Building your own image from Baserow
 
 ```dockerfile
-FROM baserow/baserow:1.8.3
+FROM baserow/baserow:1.9
 
 # Any .sh files found in /baserow/supervisor/env/ will be sourced and loaded at startup
 # useful for storing your own environment variable overrides.
diff --git a/heroku.Dockerfile b/heroku.Dockerfile
index f2e70c74d..b1197015e 100644
--- a/heroku.Dockerfile
+++ b/heroku.Dockerfile
@@ -1,4 +1,4 @@
-ARG FROM_IMAGE=baserow/baserow:1.8.3
+ARG FROM_IMAGE=baserow/baserow:1.9
 # This is pinned as version pinning is done by the CI setting FROM_IMAGE.
 # hadolint ignore=DL3006
 FROM $FROM_IMAGE as image_base
diff --git a/web-frontend/package.json b/web-frontend/package.json
index 801b58703..18a70086b 100644
--- a/web-frontend/package.json
+++ b/web-frontend/package.json
@@ -1,6 +1,6 @@
 {
   "name": "baserow",
-  "version": "1.8.3",
+  "version": "1.9.0",
   "private": true,
   "description": "Baserow: open source no-code database web frontend.",
   "author": "Bram Wiepjes (Baserow)",