diff --git a/.eslintrc.json b/.eslintrc.json
index 87e12f25c0f2f4507cdb5ba0f7628e5b1bb40fb5..285f121c12b659a30f02afac79848a3c640eb414 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -14,5 +14,8 @@
     "ecmaVersion": 2018,
     "sourceType": "module"
   },
-  "rules": {}
+  "rules": {
+    "no-var": "error",
+    "prefer-const": "error"
+  }
 }
diff --git a/src/app.js b/src/app.js
index 8a881f8b1e539695376351829ef7975dfa196a78..7ff594618951fab10a969d073d40c0010d532d55 100644
--- a/src/app.js
+++ b/src/app.js
@@ -91,10 +91,10 @@ HTML.rectangle.addEventListener("click", () => {
   showElement(HTML.palette)
 })
 
-let svg = HTML.wheel.children
-for (var i = 1; i < svg.length; i++) {
+const svg = HTML.wheel.children
+for (let i = 1; i < svg.length; i++) {
   svg[i].addEventListener("click", (event) => {
-    let paletteColour = event.target.getAttribute("fill")
+    const paletteColour = event.target.getAttribute("fill")
     HTML.rectangle.style.backgroundColor = paletteColour
     HTML.picker.value = paletteColour
     HTML.labelColour.style.backgroundColor = paletteColour
@@ -112,7 +112,7 @@ function hideElement(element) {
 }
 
 HTML.picker.addEventListener("change", () => {
-  let paletteColour = event.target.value
+  const paletteColour = event.target.value
   HTML.rectangle.style.backgroundColor = paletteColour
   HTML.labelColour.style.backgroundColor = paletteColour
   canvas.setStrokeColour(paletteColour)
diff --git a/src/room.js b/src/room.js
index 08df89425bdcc5524ade1c2749280e933efe208d..b726ba505ceed6d3a10a009c6bcf56d526ad35d6 100644
--- a/src/room.js
+++ b/src/room.js
@@ -34,9 +34,9 @@ class Room extends EventTarget {
   }
 
   getPaths() {
-    let paths = new Map()
+    const paths = new Map()
 
-    for (let id of this._y.share.strokeAdd.keys()) {
+    for (const id of this._y.share.strokeAdd.keys()) {
       paths.set(id, this._generatePath(id))
     }
 
@@ -55,13 +55,13 @@ class Room extends EventTarget {
 
   // Generate an array of points [x, y, exist] by merging the path's add and erase sets
   _generatePath(id) {
-    let addSet = this._y.share.strokeAdd.get(id)
+    const addSet = this._y.share.strokeAdd.get(id)
 
     if (addSet === undefined) {
       return []
     }
 
-    let eraseSet = this._y.share.strokeErase.get(id) || { get: () => false }
+    const eraseSet = this._y.share.strokeErase.get(id) || { get: () => false }
 
     return addSet
       .toArray()
diff --git a/src/y-webrtc/index.js b/src/y-webrtc/index.js
index 4c5d4b91b7d6ed2d1b208b2c4198bfa9460d781b..d6e0d68a98bf30ce149e7012e5aa4db3636773e5 100644
--- a/src/y-webrtc/index.js
+++ b/src/y-webrtc/index.js
@@ -109,7 +109,7 @@ function extend(Y) {
         return
       }
 
-      for (let f of this.userEventListeners) {
+      for (const f of this.userEventListeners) {
         f({ action: "userID", id: id })
       }