diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 124cf93e688ed3a1e7a4cbc9fbfc7d96b1a5c337..b868e0ba41d54231ddb872ace1400d32bbbcf30d 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -6,21 +6,20 @@ stages:
 build:
   stage: build
   script:
-    - cat /etc/issue
-    - uname -a
     - apt-get -y update
     - apt-get -y install zip
-    - cd extension
-    - zip -r ../safelinks-cleaner-thunderbird.xpi *
+    - bash scripts/build.sh
   artifacts:
     paths:
-      - ./safelinks-cleaner-thunderbird.xpi
+      - ./build/safelinks-cleaner-thunderbird.xpi
+      - ./build/safelinks-cleaner-firefox.xpi
 
 pages:
   stage: deploy
   script:
     - cp -r site .public
     - cp safelinks-cleaner-thunderbird.xpi .public
+    - cp safelinks-cleaner-firefox.xpi .public
     - mv .public public
     - ls -lr public
   artifacts:
diff --git a/scripts/build.sh b/scripts/build.sh
index 5b5adfb8a3c0da1f7f764b2578e3fb6691d4e3ee..cf2829954d3cab4f88a76598428caaff3cea5046 100644
--- a/scripts/build.sh
+++ b/scripts/build.sh
@@ -1,20 +1,30 @@
 #! /bin/bash
 
+set -eu
 
 TARGETS=(thunderbird firefox)
 
-BASEDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+BASEDIR="$( cd "$(dirname "${BASH_SOURCE[0]}")/.." >/dev/null 2>&1 && pwd )"
 BUILDDIR="$BASEDIR/build"
 SHAREDDIR="$BASEDIR/shared"
 
 for target in "${TARGETS[@]}" ; do
     targetdir="$BUILDDIR/$target"
-    sourcedir="$basedir/$target"
+    sourcedir="$BASEDIR/$target"
     outputfile="$BUILDDIR/safelinks-cleaner-$target.xpi"
     
+    echo "[+] building target '$target'"
     [ -d "$targetdir" ] && rm -r "$targetdir"
     mkdir -p "$targetdir"
-    cp -r "$SHAREDDIR"/* "$sourcedir"/* "$targetdir"
-    cd "$targetdir"
-    zip -r ../"$outputfile" *
+
+    cp -r "$SHAREDDIR"/* "$targetdir"
+    cp -r "$sourcedir"/* "$targetdir"
+    rm "$targetdir"/manifest.part.json
+
+    python3 "$BASEDIR/scripts/makemanifest.py" \
+	    "$SHAREDDIR/manifest.part.json" \
+	    "$sourcedir/manifest.part.json" \
+	    > "$targetdir/manifest.json"
+    (cd "$targetdir" ; zip -r "$outputfile" *)
+    echo "[-] output to '$outputfile'"
 done
diff --git a/shared/manifest.part.json b/shared/manifest.part.json
index 764aa8ac7dfbdd7e0d8524fc883c25185ad63dd0..0ad066e055dc2e586d2401a9f46eaa2a4c188cb2 100644
--- a/shared/manifest.part.json
+++ b/shared/manifest.part.json
@@ -2,7 +2,7 @@
     "manifest_version": 2,
     "name": "ATP Safe Links Cleaner",
     "description": "__MSG_extensionDescription__",
-    "version": "1.3",
+    "version": "1.4",
     "author": "David Byers",
     "homepage_url": "https://gitlab.liu.se/safelinks/safelinks-cleaner/",
     "default_locale": "en",
diff --git a/site/index.html b/site/index.html
index 51c263a331196bc5ca0a409b85df6fb8c5aee0b6..ad650cbf39bdfc199d8ee61e40d267d4a4f7f1f4 100644
--- a/site/index.html
+++ b/site/index.html
@@ -1,8 +1,10 @@
 <html>
   <head>
-    <title>safelinks-cleaner-mailextension</title>
+    <title>Safe Links Cleaner</title>
   </head>
   <body>
-    <a href="safelinks-cleaner-thunderbird.xpi">Download latest version</a>
+    <a href="safelinks-cleaner-thunderbird.xpi">Download latest version for thunderbird</a>
+    <br />
+    <a href="safelinks-cleaner-firefox.xpi">Download latest version for firefox</a>
   </body>
 </html>