diff --git a/app/package.json b/app/package.json
index a4a0fb0e24a64f0b1ee0951443e9f861eed77d54..a7b3b0c61fd5f0d4bb7cccc4f464cd0402e40b02 100644
--- a/app/package.json
+++ b/app/package.json
@@ -17,7 +17,7 @@
     "vue-draggable-resizable": "^2.1.0",
     "vue-emoji-picker": "^1.0.1",
     "vue-router": "^3.1.6",
-    "vuex": "^3.1.2"
+    "vuex": "^3.1.3"
   },
   "devDependencies": {
     "@vue/cli-plugin-babel": "^4.2.3",
@@ -29,7 +29,7 @@
     "babel-eslint": "^10.0.3",
     "eslint": "^6.7.2",
     "eslint-plugin-prettier": "^3.1.1",
-    "eslint-plugin-vue": "^6.2.1",
+    "eslint-plugin-vue": "^6.2.2",
     "prettier": "^1.19.1",
     "vue-template-compiler": "^2.6.11"
   }
diff --git a/app/src/components/NodesLayer.vue b/app/src/components/NodesLayer.vue
index d5682140c2a23d5582893c6b3bccee9828bc7f6b..9fe4d21b119808b0f54604d7b87e20c3a80d22d9 100644
--- a/app/src/components/NodesLayer.vue
+++ b/app/src/components/NodesLayer.vue
@@ -18,26 +18,37 @@
         style="background-color: rgb(205, 234, 255)"
       >
         <form>
-          <div v-for="value in myNodes" v-bind:key="value.node_id">
-            <textarea
-              @focus="editTrue(true)"
-              @blur="editTrue(false)"
-              autofocus
-              v-if="nodeid == value.node_id"
-              @input="editNode"
-              v-model="value.node_text"
-              :id="nodeid"
-              class="drag-cancel"
-              ref="nodetext"
-            ></textarea>
+          <div v-if="readmode == false">
+            <div v-for="value in myNodes" v-bind:key="value.node_id">
+              <!-- <div v-if="readmode == false"> -->
+              <textarea
+                v-if="nodeid == value.node_id"
+                @focus="editTrue(true)"
+                @blur="editTrue(false)"
+                autofocus
+                @input="editNode"
+                v-model="value.node_text"
+                :id="nodeid"
+                class="drag-cancel"
+                ref="nodetext"
+                placeholder="Idea goes here!"
+              ></textarea>
+            </div>
           </div>
+          <div v-else>
+            <p :id="nodeid" :inner-html.prop="nodetext | marked">{{ nodeid }}</p>
+          </div>
+
           <h3>Reactions</h3>
           <div v-for="(emojis, index) in configEmoji" :key="index">
             <p class="allemoji" v-if="nodeid == emojis.node_id">{{ emojis.emoji_text }}</p>
           </div>
 
-          <p>markdown supported</p>
-          <BaseButton buttonClass="danger" @click="deleteFlag()">Delete</BaseButton>
+          <p class="info">*markdown supported</p>
+          <div class="btn-row">
+            <BaseButton buttonClass="danger" @click="deleteFlag()">Delete</BaseButton>
+            <BaseButton class="read" buttonClass="action" @click="readFlag()">{{ mode }}</BaseButton>
+          </div>
         </form>
       </vue-draggable-resizable>
     </div>
@@ -46,6 +57,7 @@
 
 <script>
 import { mapState } from 'vuex'
+import marked from 'marked'
 
 export default {
   name: 'NodesLayer',
@@ -60,9 +72,16 @@ export default {
 
   data() {
     return {
-      pickupz: 99
+      pickupz: 99,
+      readmode: false,
+      mode: 'Read'
     }
   },
+
+  filters: {
+    marked: marked
+  },
+
   // FIXME: how do we know how to focus on the newest node ?
   // FIXME: Tab between them would also be good
   // var delay = 100
@@ -161,6 +180,15 @@ export default {
     deleteFlag(e) {
       e = this.nodeid
       this.$store.dispatch('deleteFlag', { e })
+    },
+    readFlag() {
+      if (this.readmode == true) {
+        this.readmode = false
+        this.mode = 'Read'
+      } else {
+        this.readmode = true
+        this.mode = 'Edit'
+      }
     }
   }
 }
@@ -172,17 +200,35 @@ export default {
   position: relative;
 }
 
-img {
-  width: 100%;
+.info {
+  font-size: 0.8em;
 }
-/* .draggable {
-  transform: scale(0.7);
-} */
 
 textarea {
   width: 100%;
-  height: 120px;
+  height: 125px;
   resize: none;
   box-sizing: border-box;
+  font-family: 'Inter var', Helvetica, sans-serif;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+  outline: #cab6ff;
+}
+
+.btn-row {
+  position: relative;
+  margin-bottom: 5px;
+  display: flex;
+  justify-content: center;
+  flex-wrap: wrap;
+  padding: 0 15px;
+  border-radius: 4px;
 }
+
+img {
+  width: 100%;
+}
+/* .draggable {
+  transform: scale(0.7);
+} */
 </style>
diff --git a/app/src/store/index.js b/app/src/store/index.js
index 6279f1a0b1d346d6e8506cea5548d29b27bb4569..3e14ff764b2fe5dfc639b55ef3c3fed5bd9f6f63 100644
--- a/app/src/store/index.js
+++ b/app/src/store/index.js
@@ -290,7 +290,7 @@ const store = new Vuex.Store({
           x_pos: 50,
           y_pos: 50,
           width: 200,
-          height: 250,
+          height: 275,
           z_index: 1
         })
         return pouchdb
diff --git a/app/yarn.lock b/app/yarn.lock
index 8ff5c863eda4c0e348db3599c64d8df8f40ccf02..bee1110b10bc24a14d88f73677cbc681c6f11b24 100644
--- a/app/yarn.lock
+++ b/app/yarn.lock
@@ -2797,9 +2797,9 @@ eslint-plugin-prettier@^3.1.1:
   dependencies:
     prettier-linter-helpers "^1.0.0"
 
-eslint-plugin-vue@^6.2.1:
-  version "6.2.1"
-  resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-6.2.1.tgz#ca802df5c33146aed1e56bb21d250c1abb6120a3"
+eslint-plugin-vue@^6.2.2:
+  version "6.2.2"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-6.2.2.tgz#27fecd9a3a24789b0f111ecdd540a9e56198e0fe"
   dependencies:
     natural-compare "^1.4.0"
     semver "^5.6.0"
@@ -7263,9 +7263,9 @@ vue@^2.6.11:
   version "2.6.11"
   resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.11.tgz#76594d877d4b12234406e84e35275c6d514125c5"
 
-vuex@^3.1.2:
-  version "3.1.2"
-  resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.1.2.tgz#a2863f4005aa73f2587e55c3fadf3f01f69c7d4d"
+vuex@^3.1.3:
+  version "3.1.3"
+  resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.1.3.tgz#f2ad73e3fb73691698b38c93f66e58e267947180"
 
 vuvuzela@1.0.3:
   version "1.0.3"