diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f37d36a60abfe307f1f07de13fb15e41f2ff8bf0..96ee0dbf2da223d55e8a493193d3f9b8c8b871f3 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -64,6 +64,31 @@ release-package-json-version-as-git-tag:
     - '   echo package-json-tag: keeping older tag for $NPM_VERSION'
     - fi
 
+release-notes:
+  stage: release
+  rules:
+    - if: $CI_COMMIT_TAG
+  needs:
+    - job: build
+      artifacts: true
+    - job: changelog
+      artifacts: true
+  variables:
+    # we just need the artifacts and don't need up-to-date source, so don't even fetch
+    GIT_STRATEGY: none
+  # we don't need anything in node_modules or python, so don't fetch the cache
+  cache: []
+  script:
+    - echo "# $CI_PROJECT_TITLE $CI_COMMIT_TAG" > RELEASE_NOTES.md
+    - echo "Die APKGs im Pack _${CI_PROJECT_TITLE}_ stehen in der neuen Version $CI_COMMIT_TAG zum Download bereit 🎉" >> RELEASE_NOTES.md
+    - echo "" >> RELEASE_NOTES.md
+    - echo "Direkt zur APKG-Liste und Download:" >> RELEASE_NOTES.md
+    - echo "$ARTIFACTS_URL" >> RELEASE_NOTES.md
+    - cat CHANGELOG.md >> RELEASE_NOTES.md
+  artifacts:
+    paths:
+      - RELEASE_NOTES.md
+
 create-gitlab-release:
   image: registry.gitlab.com/gitlab-org/release-cli:latest
   stage: release
@@ -74,6 +99,8 @@ create-gitlab-release:
       artifacts: true
     - job: changelog
       artifacts: true
+    - job: release-notes
+      artifacts: true
   variables:
     # we just need the artifacts and don't need up-to-date source, so don't even fetch
     GIT_STRATEGY: none
@@ -83,8 +110,8 @@ create-gitlab-release:
     - echo Creating GitLab release…
   release:
     tag_name: '$CI_COMMIT_TAG'
-    name: '$CI_COMMIT_TAG'
-    description: CHANGELOG.md
+    name: '$CI_PROJECT_TITLE $CI_COMMIT_TAG'
+    description: RELEASE_NOTES.md
     assets:
       links:
         - name: 'Browse all APKGS…'