diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index c2a9e2cfa662e0705c27ac709003883aae431b54..1c9572d6a5f272043cb356f461c9b5abcad8060b 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -32,6 +32,7 @@ Changed
 
 * [Dev] ActionForm now checks permissions on objects before executing
 * [Dev] ActionForm now returns a proper return value from the executed action
+* Pin version of javascript dependencies
 
 2.8.1`_ - 2022-03-13
 --------------------
diff --git a/aleksis/core/settings.py b/aleksis/core/settings.py
index 3fdcbd99316f7f70f6bf232e45509715735e428c..60facaa04a1430f4e5fc756a4be31deee2a4b532 100644
--- a/aleksis/core/settings.py
+++ b/aleksis/core/settings.py
@@ -561,20 +561,20 @@ MEDIA_ROOT = _settings.get("media.root", os.path.join(BASE_DIR, "media"))
 NODE_MODULES_ROOT = _settings.get("node_modules.root", os.path.join(BASE_DIR, "node_modules"))
 
 YARN_INSTALLED_APPS = [
-    "cleave.js",
-    "@fontsource/roboto",
-    "jquery",
-    "@materializecss/materialize",
-    "material-design-icons-iconfont",
-    "select2",
-    "select2-materialize",
-    "paper-css",
-    "jquery-sortablejs",
-    "sortablejs",
-    "@sentry/tracing",
-    "luxon",
-    "@iconify/iconify",
-    "@iconify/json",
+    "cleave.js@^1.6.0",
+    "@fontsource/roboto@^4.5.5",
+    "jquery@^3.6.0",
+    "@materializecss/materialize@~1.0.0",
+    "material-design-icons-iconfont@^6.6.0",
+    "select2@^4.1.0-rc.0",
+    "select2-materialize@^0.1.8",
+    "paper-css@^0.4.1",
+    "jquery-sortablejs@^1.0.1",
+    "sortablejs@^1.15.0",
+    "@sentry/tracing@^6.19.6",
+    "luxon@^2.3.2",
+    "@iconify/iconify@^2.2.1",
+    "@iconify/json@^2.1.30",
 ]
 
 merge_app_settings("YARN_INSTALLED_APPS", YARN_INSTALLED_APPS, True)