diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index fc94d792819a4421f0900c3b06ba73377ac9c112..2e5bd00fb6878216f2f66c66c1dc337053cfa34b 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,52 +1,20 @@
+include:
+  - project: coscine/tools/gitlab-ci-templates
+    file: 
+      - /docker-runner.yml
+      - /nodejs.yml
+
 stages:
-  - test
+  - build
+# there are more stages in the imported file but we only want to import some
+#  - test
   - publish
-  - release
-  - pre_release
-
-before_script:
-    - yarn install
-
-test:
-  stage: test
-  script:
-    - yarn run build
-  except:
-    refs:
-      - master
-      - tags
-    variables:
-      - $GITLAB_USER_ID == $GIT_BOT_USER_ID
 
-publish:
-  stage: publish
-  script:
-    - yarn run build
-    - yarn dlx semantic-release
-  only:
-    - master
-  except:
-    variables:
-      - $GITLAB_USER_ID == $GIT_BOT_USER_ID
+build-branch:
+  extends: .build-branch
 
-release:
-  stage: release
-  script:
-    - yarn run build
-  artifacts:
-    paths:
-      - dist
-  only:
-    - tags
+build-npm-release:
+  extends: .build-npm-release
 
-pre_release:
-  stage: pre_release
-  script:
-    - yarn run build
-  artifacts:
-    paths:
-      - dist
-  when: manual
-  except:
-    - tags
-    - master
+publish-gitlab:
+  extends: .publish-gitlab-release
diff --git a/.yarnrc.yml b/.yarnrc.yml
index c26c5e296cccaaf4c7653b36b0772b4b5d4d349d..b8c11af498e7cd2a21a4ab90569c5a9bccb5c469 100644
--- a/.yarnrc.yml
+++ b/.yarnrc.yml
@@ -1,4 +1,3 @@
-enableGlobalCache: true
 packageExtensions:
   "@vue/cli-service@*":
     peerDependencies:
diff --git a/package.json b/package.json
index 0be725f1469a9ff733fe9b7192f6dce3b9cb8a04..ecc0ef5b915707943d3538d72c5f9641fd9c5a1a 100644
--- a/package.json
+++ b/package.json
@@ -11,9 +11,9 @@
     "lint": "vue-cli-service lint"
   },
   "dependencies": {
-    "@coscine/api-connection": "^1.23.1",
-    "@coscine/app-util": "^1.7.1",
-    "@coscine/component-library": "1.4.1",
+    "@coscine/api-connection": "^1.23.2",
+    "@coscine/app-util": "^1.7.2",
+    "@coscine/component-library": "1.4.2",
     "@itcenter-layout/bootstrap": "^1.5.5",
     "@itcenter-layout/masterpage": "^1.3.0",
     "@types/jquery": "^3.5.2",
@@ -21,7 +21,6 @@
     "jquery": "^3.5.1",
     "vue": "^2.6.12",
     "vue-i18n": "^8.22.0",
-    "vue-loading-overlay": "^3.4.2",
     "vue-runtime-helpers": "^1.1.2",
     "vuelidate": "^0.7.5"
   },
diff --git a/tsconfig.json b/tsconfig.json
index 499f5e22e076ba461c904cf5754c70c67561e14e..cb5b2eda5256a21687aa1089b804be16f92899d8 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -10,8 +10,13 @@
     "allowSyntheticDefaultImports": true,
     "sourceMap": true,
     "baseUrl": ".",
+    "skipLibCheck": true,
+    "outDir": "dist",
+    "declaration": true,
+    "declarationDir": "dist",
     "types": [
-      "webpack-env"
+      "webpack-env",
+      "node"
     ],
     "paths": {
       "@/*": [