diff --git a/.gitignore b/.gitignore
index a82cecedb5f56c4cbf64a4c33bf18660775d101f..cf9dc350f8ba9265fc482813d2b6ea9d1666da7f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,4 +5,5 @@ vendor/
 .swp
 crdschemas/
 
-.gitpod/_output/
\ No newline at end of file
+developer-workspace/gitpod/_output
+kind
\ No newline at end of file
diff --git a/.gitpod.yml b/.gitpod.yml
index e8c0760f4430580fe8891ab601ef9848084e1865..47ce355ee55e71c138738d79dc990271586da92e 100644
--- a/.gitpod.yml
+++ b/.gitpod.yml
@@ -24,17 +24,17 @@ tasks:
       chmod +x ${PWD}/.git/hooks/pre-commit
   - name: run kube-prometheus
     command: |
-      .gitpod/prepare-k3s.sh
-      .gitpod/deploy-kube-prometheus.sh
+      developer-workspace/gitpod/prepare-k3s.sh
+      developer-workspace/common/deploy-kube-prometheus.sh
   - name: kernel dev environment
     init: |
       sudo apt update -y
       sudo apt install qemu qemu-system-x86 linux-image-$(uname -r) libguestfs-tools sshpass netcat -y
       sudo curl -o /usr/bin/kubectl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
       sudo chmod +x /usr/bin/kubectl
-      .gitpod/prepare-rootfs.sh
+      developer-workspace/gitpod/prepare-rootfs.sh
     command: |
-      .gitpod/qemu.sh
+      developer-workspace/gitpod/qemu.sh
 ports:
   - port: 3000
     onOpen: open-browser
diff --git a/Makefile b/Makefile
index e2c265cdd3e229c00fd03014c0950bcb7d1a1dea..c100667788db3cb8fd427e1e441a6f62df59edb0 100644
--- a/Makefile
+++ b/Makefile
@@ -78,3 +78,8 @@ $(BIN_DIR):
 $(TOOLING): $(BIN_DIR)
 	@echo Installing tools from scripts/tools.go
 	@cd scripts && cat tools.go | grep _ | awk -F'"' '{print $$2}' | xargs -tI % go build -modfile=go.mod -o $(BIN_DIR) %
+
+.PHONY: deploy
+deploy:
+	./developer-workspace/codespaces/prepare-kind.sh
+	./developer-workspace/common/deploy-kube-prometheus.sh
diff --git a/developer-workspace/README.md b/developer-workspace/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..3b9916986f04d9dafacdfd61d7e2e28ff3d1d617
--- /dev/null
+++ b/developer-workspace/README.md
@@ -0,0 +1,34 @@
+# Ephemeral developer workspaces
+
+Aiming to provide better developer experience when making contributions to kube-prometheus, whether by actively developing new features/bug fixes or by reviewing pull requests, we want to provide ephemeral developer workspaces with everything already configured (as far as tooling makes it possible).
+
+Those developer workspaces should provide a brand new kubernetes cluster, where kube-prometheus can be easily deployed and the contributor can easily see the impact that a pull request is proposing.
+
+Today there is 2 providers in the market:
+* [Github Codespaces](https://github.com/features/codespaces)
+* [Gitpod](https://www.gitpod.io/)
+
+## Codespaces
+
+Unfortunately, Codespaces is not available for everyone. If you are fortunate to have access to it, you can open a new workspace from a specific branch, or even from Pull Requests.
+
+![image](https://user-images.githubusercontent.com/24193764/135522435-44b177b4-00d4-4863-b45b-2db47c8c70d0.png)
+
+![image](https://user-images.githubusercontent.com/24193764/135522560-c64968ab-3b4e-4639-893a-c4d0a14421aa.png)
+
+After your workspace start, you can deploy a kube-prometheus inside a Kind cluster inside by running `make deploy`.
+
+If you are reviewing a PR, you'll have a fully-functional kubernetes cluster, generating real monitoring data that can be used to review if the proposed changes works as described.
+
+If you are working on new features/bug fixes, you can regenerate kube-prometheus's YAML manifests with `make generate` and deploy it again with `make deploy`. 
+
+## Gitpod
+
+Gitpod is already available to everyone to use for free. It can also run commands that we speficy in the `.gitpod.yml` file located in the root directory of the git repository, so even the cluster creation can be fully automated.
+
+You can use the same workflow as mentioned in the [Codespaces](#Codespaces) section, however Gitpod doesn't have native support for any kubernetes distribution. The workaround is to create a full QEMU Virtual Machine and deploy [k3s](https://github.com/k3s-io/k3s) inside this VM. Don't worry, this whole process is already fully automated, but due to the workaround the whole workspace may be very slow.
+
+To open up a workspace with Gitpod, you can install the [Google Chrome extension](https://www.gitpod.io/docs/browser-extension/) to add a new button to Github UI and use it on PRs or from the main page. Or by directly typing in the browser `http://gitpod.io/#https://github.com/prometheus-operator/kube-prometheus/pull/<Pull Request Number>` or just `http://gitpod.io/#https://github.com/prometheus-operator/kube-prometheus`
+
+![image](https://user-images.githubusercontent.com/24193764/135534546-4f6bf0e5-57cd-4e35-ad80-88bd47d64276.png)
+
diff --git a/developer-workspace/codespaces/prepare-kind.sh b/developer-workspace/codespaces/prepare-kind.sh
new file mode 100755
index 0000000000000000000000000000000000000000..21bbf5afc2cebea0a39c3efa1820ff67be81bc9b
--- /dev/null
+++ b/developer-workspace/codespaces/prepare-kind.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+which kind
+if [[ $? != 0 ]]; then
+    echo 'kind not available in $PATH, installing latest kind'
+    # Install latest kind
+    curl -s https://api.github.com/repos/kubernetes-sigs/kind/releases/latest \
+    | grep "browser_download_url.*kind-linux-amd64" \
+    | cut -d : -f 2,3 \
+    | tr -d \" \
+    | wget -qi -
+    mv kind-linux-amd64 kind && chmod +x kind
+fi
+
+cluster_created=$($PWD/kind get clusters 2>&1)
+if [[ "$cluster_created" == "No kind clusters found." ]]; then 
+    $PWD/kind create cluster
+else
+    echo "Cluster '$cluster_created' already present" 
+fi
\ No newline at end of file
diff --git a/.gitpod/deploy-kube-prometheus.sh b/developer-workspace/common/deploy-kube-prometheus.sh
similarity index 91%
rename from .gitpod/deploy-kube-prometheus.sh
rename to developer-workspace/common/deploy-kube-prometheus.sh
index fdd9c1d23e6b3a1fa4783541a84a1b705c4d5762..6dc6daf736cc526f933994806862fe337f262516 100755
--- a/.gitpod/deploy-kube-prometheus.sh
+++ b/developer-workspace/common/deploy-kube-prometheus.sh
@@ -1,9 +1,13 @@
+#!/bin/bash
+
 kubectl apply -f manifests/setup
 
 # Safety wait for CRDs to be working
 sleep 30
 
 kubectl apply -f manifests/
+sleep 30
+# Safety wait for resources to be created
 
 kubectl rollout status -n monitoring daemonset node-exporter
 kubectl rollout status -n monitoring statefulset alertmanager-main
diff --git a/.gitpod/prepare-k3s.sh b/developer-workspace/gitpod/prepare-k3s.sh
similarity index 100%
rename from .gitpod/prepare-k3s.sh
rename to developer-workspace/gitpod/prepare-k3s.sh
diff --git a/.gitpod/prepare-rootfs.sh b/developer-workspace/gitpod/prepare-rootfs.sh
similarity index 100%
rename from .gitpod/prepare-rootfs.sh
rename to developer-workspace/gitpod/prepare-rootfs.sh
diff --git a/.gitpod/qemu.sh b/developer-workspace/gitpod/qemu.sh
similarity index 100%
rename from .gitpod/qemu.sh
rename to developer-workspace/gitpod/qemu.sh
diff --git a/.gitpod/scp.sh b/developer-workspace/gitpod/scp.sh
similarity index 100%
rename from .gitpod/scp.sh
rename to developer-workspace/gitpod/scp.sh
diff --git a/.gitpod/ssh.sh b/developer-workspace/gitpod/ssh.sh
similarity index 100%
rename from .gitpod/ssh.sh
rename to developer-workspace/gitpod/ssh.sh