diff --git a/script/deployslidepdf b/script/deployslidepdf
new file mode 100644
index 0000000000000000000000000000000000000000..6209db498e1799409cda6b2a0ac1e0fabd8293d6
--- /dev/null
+++ b/script/deployslidepdf
@@ -0,0 +1,61 @@
+#!/usr/bin/env bash
+set -e
+
+shopt -s globstar
+
+apt-get update
+apt-get install -y \
+    ca-certificates \
+    fonts-liberation \
+    libappindicator3-1 \
+    libasound2 \
+    libatk-bridge2.0-0 \
+    libatk1.0-0 \
+    libc6 \
+    libcairo2 \
+    libcups2 \
+    libdbus-1-3 \
+    libexpat1 \
+    libfontconfig1 \
+    libgbm1 \
+    libgcc1 \
+    libglib2.0-0 \
+    libgtk-3-0 \
+    libnspr4 \
+    libnss3 \
+    libpango-1.0-0 \
+    libpangocairo-1.0-0 \
+    libstdc++6 \
+    libx11-6 \
+    libx11-xcb1 \
+    libxcb1 \
+    libxcomposite1 \
+    libxcursor1 \
+    libxdamage1 \
+    libxext6 \
+    libxfixes3 \
+    libxi6 \
+    libxrandr2 \
+    libxrender1 \
+    libxss1 \
+    libxtst6 \
+    lsb-release \
+    wget \
+    xdg-utils
+
+npm install decktape
+
+bundle exec jekyll build --config _config_production.yml -d remarkpdf -b "$(pwd)/remarkpdf"
+
+cd remarkpdf
+
+for html in slides/**/*.html; do
+    if [[ "$html" == *"unused"* ]]; then
+        continue
+    fi
+    set +e
+    $(npm bin)/decktape remark --chrome-arg=--disable-web-security --chrome-arg=--no-sandbox "$html" "../public/$html.pdf"
+    set -e
+done
+
+cd ../