diff --git a/.gitignore b/.gitignore
index 51d2e0f9105c3a182f45b7aaafb6aee53ca00ced..a36d2b45701272faf5c4bd9afe766d29eeb1f6d2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,13 +2,14 @@
 /node_modules
 
 # Production
-/docs/_build
+/build
 
 # Generated files
 .docusaurus
 .cache-loader
 
 # Misc
+.idea
 .DS_Store
 .env.local
 .env.development.local
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 65f249862c4660bcf258035aa37740be2401ec67..1a5497da22e51e166c7c5f33aedf165b80d7527c 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -6,26 +6,23 @@ stages:
 
 docs-build:
   stage: build
-  image: python:3.10
+  image: node:20
   script:
-    - pip install -U jupyter-book
-    - jupyter-book clean docs
-    - jupyter-book toc from-project docs > docs/_toc.yml
-    - jupyter-book build docs
+    - npm install
+    - npm run build
   artifacts:
     paths:
-      - docs/_build/
+      - build
 
 pages:
   stage: deploy
   image: busybox:latest
   needs: [docs-build]
   script:
-    - ls
-    - mv docs/_build/html public
+    - mv build public
   artifacts:
     paths:
       - public
   rules:
-    - if: $CI_COMMIT_BRANCH == "main"
+    - if: '$CI_COMMIT_TAG =~ /^\d+\.\d+(\.\d+)?(-pl\d+){0,1}$/'