diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 9d0ea6c5e1332a19476af1503be847a0df25ba14..f5b1fbd2fe47fb9e8f98e390b296bf6e959275b0 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -134,7 +134,8 @@ deploy-image:
     - kubectl apply -f secrets.yaml --namespace "${ENVIRONMENT_NAME}-${K8S_NAMESPACE}"
     - kubectl apply -f gitlab-registry-credentials.yaml --namespace "${ENVIRONMENT_NAME}-${K8S_NAMESPACE}"
     - kubectl apply -f configmap.yaml --namespace "${ENVIRONMENT_NAME}-${K8S_NAMESPACE}"
-    - kubectl apply -f deployment.yaml --namespace "${ENVIRONMENT_NAME}-${K8S_NAMESPACE}"
+    - DEPLOYMENT_MANIFEST=$(sed -e "s,{{image}},${IMAGE},g" ./deployment.yaml.tmpl)
+    - echo "${DEPLOYMENT_MANIFEST}" | kubectl apply --namespace "${ENVIRONMENT_NAME}-${K8S_NAMESPACE}" --filename -
     - kubectl apply -f service.yaml --namespace "${ENVIRONMENT_NAME}-${K8S_NAMESPACE}"
     - kubectl apply -f ingress.yaml --namespace "${ENVIRONMENT_NAME}-${K8S_NAMESPACE}"
 
diff --git a/README.md b/README.md
index 30a24ead3adc32e7504e7fb7ce7c3a6b6bee6707..a9f9d7eb4b861be9b68355eb85ee190904fa514a 100644
--- a/README.md
+++ b/README.md
@@ -1,114 +1,17 @@
-Lecture: DevOps - Application
+SS22-DevOps-Deployable
 =============================
 
+### Introduction 
 
-> :warning: __Invoking `make` in a path containing white spaces will break execution and may lead to
-> unforeseen side effects like DATA LOSS !__
+This repository demonstrates the automated deployment of a simple web application. It consists of two branches - **staging** and **main**.
+These branches are protected, meaning that commits targetting them will fail.
+Changes to the codebase are realized through the use of other temporary branches and Merge Requests to **staging**. Merge Requests to **main** should
+only be opened from **staging** as a source branch.
 
+As soon as a new change through a MR is commited to **staging**, a pipeline is triggered. It deploys the application to the **staging-todoapp-devops** namespace in a Kubernetes cluster, run on GKE. After that, the application is accessible on the URL:
 
-This repository contains the [application](./app/README.md) that can be used as *deployable workload* for the
-[project assignment](https://github.com/lucendio/lecture-devops-material/blob/master/assignments/project-work.md)
-implementation.
+> https://staging.todoapp-devops.software
 
-In order to adapt the application and integrate it into your automation and deployment processes, it's usually not
-required to change any existing code. Instead, you probably just want to add some *pipeline* code or even a container
-file (e.g. `Dockerfile`).
+The same process happens with commits (merged from **staging**) on the **main** branch. The web application is then accessible on:
 
-
-### Getting started 
-
-For more information regarding the app, please take a look into its [README](./app/README.md).
-
-The `Makefile` in this directory can be seen as the main entry point for this repository. It's meant to locally run the
-application and allow to mess around with the source code in order to better understand how it works and to be able to
-tear it apart if necessary.
-Additionally, it documents various invocations that may help you adapting this application as *workload* for the
-assignment. 
-
-**_Please note, that the `Makefile` is only meant to showcase steps that are usually taken to automate the deployment
-lifecycle of such an application and code base.
-It is NOT recommended to invoke `make` targets from the CI/CD, but rather to utilize platform-specific interfaces 
-(e.g. `.gitlab-ci.yml`, `Jenkinsfile`, etc.), which may then invoke commands shown in the `make` target or in the
-`scripts` section of one of the `package.json` files._**
-
-
-### Prerequisites
-
-The following software must be installed and available in `${PATH}`:
-
-* `node` ([NodeJS](https://nodejs.org/en/download)): latest v16
-* `npm` ([npm](https://www.npmjs.com/get-npm)): latest v8
-* `mongod` ([MongoDB](https://docs.mongodb.com/manual/installation/)): latest v4.4
-
-*NOTE: the application in this repository has not been tested with versions newer than that*
-
-Choose for yourself how you want to install these dependencies. Perhaps you can use the package manager
-available on your operating system, or maybe you prefer using container images. 
-
-
-### Commands
-
-The following commands are available from the root directory:
-
-
-#### `make install`
-
-* installs all *server* and *client* dependencies via package manager `npm` 
-
-
-#### `make build`
-
-1. copy server source into some empty location
-2. copy dependency manifest (`package*`) into the same location right next to the server source
-3. install server dependencies there
-4. install all client dependencies next to its source
-5. build client code and put it next to the server source (step 1)   
-
-
-#### `make test`
-
-*NOTE: requires/assumes a MongoDB service (see `MONGODB_URL`) to be reachable from the context where tests are being
-executed*
-
-* runs client & server tests in [CI mode](https://jestjs.io/docs/en/cli.html#--ci) (exits regardless of the test outcome;
-  closed tty)
-
-
-#### `make dev-test-client`
-
-*NOTE: only demonstrates a use case during local development and are not meant to run in any other context (e.g. automation)*
-
-* runs client tests in a local development mode
-
-
-#### `make dev-start-db`
-
-*NOTE: only demonstrates a use case during local development and are not meant to run in any other context (e.g. automation)*
-
-* starts a local MongoDB service
-
-
-#### `make dev-start-app`
-
-*NOTE (1): only demonstrates a use case during local development and are not meant to run in any other context (e.g. automation)*
-*NOTE (2): it might be desired to first start a database service (e.g. `make dev-start-db`)*
-
-* builds client
-* starts server in development mode with development configuration
-
-
-#### `make run`
-
-*NOTE (1): showcases plain executable invocation with a shared parent process. Press `Ctrl+C` to send termination signal.*
-*NOTE (2): in reality those two services would always be invoked independently and __never__ share a parent process!*
-
-* starts a MongoDB service as a child process with an explicit inline-configuration
-* starts the application service with variables being set in a way so that they are only *visible* to that invocation
-  (as an alternative to the configuration file `app/server/dev.env` that is used to set environment variables)
-* blocks terminal and keeps it as output device until termination signal is being send.
-
-
-#### `make clean`
-
-* removes all `node_modules` dependencies that have been installed locally via `npm`
-* removes other temporarily created folder in `.local` 
+> https://todoapp-devops.software
diff --git a/app/README.md b/app/README.md
index 61839f4e246f1f7f4ce9a2bdfc5de254f3c43791..0252c9197bec439d28ce5ea150dcb76e153af60d 100644
--- a/app/README.md
+++ b/app/README.md
@@ -1,6 +1,5 @@
 Todo-App
 ========
-d
 
 This application represents the *deployable workload* for the
 [lecture assignment](https://github.com/lucendio/lecture-devops-material/blob/master/assignments/exercise.md). 
diff --git a/k8s-manifests/deployment.yaml b/k8s-manifests/deployment.yaml.tmpl
similarity index 96%
rename from k8s-manifests/deployment.yaml
rename to k8s-manifests/deployment.yaml.tmpl
index 2de3f43c765498278154fba0a25f3ee2cb4758c6..1afcb905ef44ad9b173f4afc68128f1016090bdc 100644
--- a/k8s-manifests/deployment.yaml
+++ b/k8s-manifests/deployment.yaml.tmpl
@@ -19,7 +19,7 @@ spec:
       imagePullSecrets:
       - name: 'gitlab-registry-credentials'
       containers:
-      - image: devops-app
+      - image: {{image}}
         name: todo-app-container
         ports:
         - containerPort: 3000