diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..01031488cb20b829b7da5c4efd38e6e2dc5e9803
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,8 @@
+PUG = $(shell pwd)/node_modules/pug-cli/index.js --basedir .
+all: index.html privacy-policy/index.html releases/index.html
+index.html: index.pug
+	$(PUG) index.pug
+privacy-policy/index.html: privacy-policy/index.pug
+	$(PUG) privacy-policy/index.pug
+releases/index.html: releases/index.pug
+	$(PUG) releases/index.pug
diff --git a/assets/css/generate_makefile.sh b/assets/css/generate_makefile.sh
index 6755fe4007e5ab3ebb4988ba1dad15ca1bf2266f..c82f4a35fb90c7ead087f22a529b7e8a8a7e329c 100755
--- a/assets/css/generate_makefile.sh
+++ b/assets/css/generate_makefile.sh
@@ -1,7 +1,4 @@
 #!/bin/bash
-QUALITY=85
-THUMB_QUALITY_PNG=70
-THUMB_QUALITY_JPG=50
 
 cd $(dirname $(realpath -s ${0}))
 
diff --git a/generate_makefile.sh b/generate_makefile.sh
new file mode 100755
index 0000000000000000000000000000000000000000..ac4ae61e8cf0b74828baafe66bcf9256e181fdf7
--- /dev/null
+++ b/generate_makefile.sh
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+cd $(dirname $(realpath -s ${0}))
+
+RULES=()
+
+function generate_rule() {
+  file=${1}
+  filename=${2}
+
+  RULES+=("${filename}.html")
+  echo "${filename}.html: ${file}" >> Makefile.wip
+  echo "	\$(PUG) ${file}" >> Makefile.wip
+}
+
+function finalize() {
+  echo -n "all:" >> Makefile
+  for rule in "${RULES[@]}"; do
+    echo -n " $rule" >> Makefile
+  done
+  echo >> Makefile
+  cat Makefile.wip >> Makefile
+  rm Makefile.wip
+}
+
+cat <<EOF > Makefile
+PUG = \$(shell pwd)/node_modules/pug-cli/index.js --basedir .
+EOF
+for file in *.pug **/*.pug; do
+  filename=${file##*/}
+  if [[ ${filename} != _* ]]; then
+    generate_rule ${file} ${file%.*}
+  fi
+done
+
+finalize
\ No newline at end of file
diff --git a/package.json b/package.json
index 68446498890128a78b73710e0e2f5b587bb5afd0..bda365e27f2f662ea005acdde10305ab88a46a3f 100644
--- a/package.json
+++ b/package.json
@@ -3,7 +3,7 @@
   "version": "3.0.0",
   "description": "This is a websearch frontend for a quassel database.",
   "scripts": {
-    "pug": "node_modules/pug-cli/index.js --basedir . **/index.pug index.pug",
+    "pug": "./generate_makefile.sh && make",
     "sass": "assets/css/generate_makefile.sh  && cd assets/css && make",
     "images": "assets/images/generate_makefile.sh && cd assets/images && make",
     "build": "npm run images && npm run sass && npm run pug"