diff --git a/nix/config/common-packages.nix b/nix/config/common-packages.nix
index 5c85bedb8daba5e6f9e90283363dd15718a3208c..bf07ee34e340eb5358682395cd8d4fedbe0e25c0 100644
--- a/nix/config/common-packages.nix
+++ b/nix/config/common-packages.nix
@@ -25,7 +25,7 @@ with pkgs'; [
   libffi
   logrotate
   meld
-  nodejs_22
+  nodejs_20
   open-sans
   plantuml
   ranger
diff --git a/nix/scripts/build-and-publish.nix b/nix/scripts/build-and-publish.nix
index 23f61671a49e0c3930f8c9d9068944a21063d47a..e16391987dbc7ab3d4c0487d780c92b9c31571e6 100644
--- a/nix/scripts/build-and-publish.nix
+++ b/nix/scripts/build-and-publish.nix
@@ -16,7 +16,7 @@ in
     archive=$(ls ${monster} | grep tgz)
  
     ## npm instead of pnpm because of https://github.com/pnpm/pnpm/issues/7950
-    if ! publishingResult=$(${pkgs'.nodejs_22}/bin/npm publish "${monster}/$archive" --json --dry-run --no-git-checks --access public)
+    if ! publishingResult=$(${pkgs'.nodejs_20}/bin/npm publish "${monster}/$archive" --json --dry-run --no-git-checks --access public)
     then
       echo_fail "Failed to publish the project."
       exit 1
diff --git a/nix/scripts/build-stylesheets.nix b/nix/scripts/build-stylesheets.nix
index 74ccd42c02d07bf0ab3757d61dda9d24b0a4d574..6b69d264cb91e3cf6fdfec2146c66e24e03bd2e1 100644
--- a/nix/scripts/build-stylesheets.nix
+++ b/nix/scripts/build-stylesheets.nix
@@ -13,7 +13,7 @@ in
         source ${pkgs'.common}/bin/common
         local prefix="''${sourcePath}/"
         echo_step "build stylesheet ''${1#$prefix}"
-        ${pkgs'.nodejs_22}/bin/node ./development/scripts/buildStylesheets.mjs "$1"
+        ${pkgs'.nodejs_20}/bin/node ./development/scripts/buildStylesheets.mjs "$1"
     }
 
     export -f build
diff --git a/nix/scripts/create-new-component-class.nix b/nix/scripts/create-new-component-class.nix
index 92393f417eaae3e9590438898e5307169d822fe2..7b2da894e551feeb212eb4aafdf2944d3fdc4959 100644
--- a/nix/scripts/create-new-component-class.nix
+++ b/nix/scripts/create-new-component-class.nix
@@ -6,7 +6,7 @@
     echo_hint "The command is executed in the current working directory and not in a nix derivation."
     cd_working_dir
 
-    if ! ${pkgs'.nodejs_22}/bin/node development/scripts/createNewComponentClass.mjs "$@"
+    if ! ${pkgs'.nodejs_20}/bin/node development/scripts/createNewComponentClass.mjs "$@"
     then
       echo_fail "script createNewClass.mjs failed, check your JS!"
       exit 1
diff --git a/nix/scripts/release.nix b/nix/scripts/release.nix
index dd1b8c4e4a2edd3d64bdded290112c8981b5c92c..c5fe369b47582192149b91a79470839db48ad11e 100644
--- a/nix/scripts/release.nix
+++ b/nix/scripts/release.nix
@@ -58,7 +58,7 @@ in
     export MNEMONIC=$(echo $NAME | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]//g')
     ${pkgs'.envsubst}/bin/envsubst < ./nix/config/release.nix.template > ./nix/config/release.nix
     
-    if ! ${pkgs'.nodejs_22}/bin/npm version "$gitVersion" --no-git-tag-version; then
+    if ! ${pkgs'.nodejs_20}/bin/npm version "$gitVersion" --no-git-tag-version; then
         echo_fail "Error: Could not write project version."
         exit 1
     fi
diff --git a/nix/scripts/run-ci-web-tests.nix b/nix/scripts/run-ci-web-tests.nix
index f5f9c36c43f6b9e7664d428395bb94fa8c8ab531..0f801080d6ea51b77cd7bdc1577890e02a45726d 100644
--- a/nix/scripts/run-ci-web-tests.nix
+++ b/nix/scripts/run-ci-web-tests.nix
@@ -22,7 +22,7 @@
        exit 1
     fi
 
-    if ! ${pkgs'.nodejs_22}/bin/node "''${TEST_CASES_PATH}/puppeteer.mjs" --browser ${pkgs'.chromium}/bin/chromium --path "''${TEST_CASES_PATH}/test.html"
+    if ! ${pkgs'.nodejs_20}/bin/node "''${TEST_CASES_PATH}/puppeteer.mjs" --browser ${pkgs'.chromium}/bin/chromium --path "''${TEST_CASES_PATH}/test.html"
     then
        echo "Tests failed, check your JS!"
        exit 1
diff --git a/nix/scripts/run-web-tests.nix b/nix/scripts/run-web-tests.nix
index ebfb770c90a2a4755cf09d02aa33b8a521f2581f..028ef6b13257fbc1226081d7708861a6fbbed669 100644
--- a/nix/scripts/run-web-tests.nix
+++ b/nix/scripts/run-web-tests.nix
@@ -8,7 +8,7 @@ in
     echo_hint "The command is executed in the current working directory and not in a nix derivation."
     cd_working_dir
 
-    if ! ${pkgs'.nodejs_22}/bin/node "$(pwd)/test/web/puppeteer.mjs" --browser ${pkgs'.ungoogled-chromium}/bin/chromium --path "$(pwd)/test/web/test.html"
+    if ! ${pkgs'.nodejs_20}/bin/node "$(pwd)/test/web/puppeteer.mjs" --browser ${pkgs'.ungoogled-chromium}/bin/chromium --path "$(pwd)/test/web/test.html"
     then
        echo_fail "Tests failed, check your JS!"
        exit 1
diff --git a/nix/scripts/start-server.nix b/nix/scripts/start-server.nix
index 31a7492663803a54c528076935e0330dbbd9c50f..4b0d6968b614b35dbb3fe9343ac29a1f349f3cd7 100644
--- a/nix/scripts/start-server.nix
+++ b/nix/scripts/start-server.nix
@@ -29,7 +29,7 @@ in
     export COMMIT=${releaseInfo.commit}
     
     export PNPX_BIN=${pkgs'.nodePackages.pnpm}/bin/pnpx
-    export NODE_BIN=${pkgs'.nodejs_22}/bin/node
+    export NODE_BIN=${pkgs'.nodejs_20}/bin/node
 
     cd development
 
diff --git a/nix/scripts/update-web-test.nix b/nix/scripts/update-web-test.nix
index f443945562f3118688f51c140b3c120c94f3179d..477ad41b3c76883de4d5f72cc65245820737520a 100644
--- a/nix/scripts/update-web-test.nix
+++ b/nix/scripts/update-web-test.nix
@@ -40,7 +40,7 @@ in
       exit 1
     fi
 
-    url="$(${pkgs'.nodejs_22}/bin/npx create-polyfill-service-url analyse --cwd="''${TMPDIR}" --file=monster.js)"
+    url="$(${pkgs'.nodejs_20}/bin/npx create-polyfill-service-url analyse --cwd="''${TMPDIR}" --file=monster.js)"
     ${pkgs'.coreutils}/bin/rm  ''${TMPDIR}/monster.js
     ${pkgs'.coreutils}/bin/rm -rf ''${TMPDIR}/js*
     ${pkgs'.coreutils}/bin/rmdir ''${TMPDIR}
@@ -57,7 +57,7 @@ in
     ${pkgs'.gnused}/bin/sed -i "1 i import \"./prepare.js\";" ''${TEST_WEB_PATH}/import.js
     ${pkgs'.gnused}/bin/sed -i "1 i /** this file was created automatically by the run-web-tests script */" ''${TEST_WEB_PATH}/import.js
 
-    if ! ${pkgs'.nodejs_22}/bin/npx esbuild --platform=browser --sourcemap=inline --external:ws \
+    if ! ${pkgs'.nodejs_20}/bin/npx esbuild --platform=browser --sourcemap=inline --external:ws \
              --external:jsdom --external:fs --external:process --external:crypto --bundle ''${TEST_WEB_PATH}/import.js --outfile=''${TEST_WEB_PATH}/tests.js
     then
       echo "ERROR: esbuild failed, check your JS!"