diff --git a/.gitignore b/.gitignore
index 544034f37bcad9646e87ba19e5d50ad66e6f7c1f..455987363a61f392987ecef79891e8e35fad4793 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,3 +11,4 @@ data/pubs.yaml
 
 gallery/*
 user_map/*
+swift/*
diff --git a/make_page.sh b/make_page.sh
new file mode 100755
index 0000000000000000000000000000000000000000..ed86b1a0f43fe752316e36e8e82195338cc8fc89
--- /dev/null
+++ b/make_page.sh
@@ -0,0 +1,51 @@
+#!/bin/bash
+
+# Tested on winkel.strw.leidenuniv.nl
+module purge
+module load localhosts
+
+# Uncomment to create new venv
+#python -m venv venv
+source venv/bin/activate
+
+pip install -r requirements.txt
+
+# TODO Remove
+#git checkout user_map
+git pull
+rm -r gallery
+cp -r /home/mcgibbon/public_html/SWIFT/webpage_image_gallery gallery
+python query.py rLY4HeXMXttDOSedTGrYuRufATu2gDwgE84Hqy3B
+python generate_map.py
+python compiler.py
+rsync -auv compiled/* ../
+
+[ ! -d "swift" ] && git clone "git@gitlab.cosma.dur.ac.uk:swift/swiftsim.git" "swift"
+cd swift
+git checkout master
+git pull
+# Generate read the docs
+cd doc/RTD
+rm -rf build
+make html > docbuild.out 2> docbuild.err
+# Generate onboarding guide
+cd ../onboardingGuide
+rm -rf build
+make latexpdf > onbuild.out 2> onbuild.err
+# Copy both to webpage
+cd ../../..
+rm -rf ../docs/*
+cp -r swift/doc/RTD/build/html/ ../docs
+cp swift/doc/onboardingGuide/build/latex/onboarding.pdf ../onboarding.pdf
+ 
+# Generate read the docs for the zoom branch
+cd swift
+git checkout zoom_docs
+git pull
+cd doc/RTD
+rm -rf build
+make html > docbuild.out 2> docbuild.err
+cd ../../..
+rm -rf ../docs_will/*
+cp -r swift/doc/RTD/build/html/ ../docs_will
+
diff --git a/requirements.txt b/requirements.txt
index 62bf977fe3def41d9d3f74e1a77d250edf8d6cf8..a8ea3b322f563fde2fa26a5a5b5973a90ae86fd5 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,6 +1,10 @@
+# Required for SWIFTweb
 pyyaml
 jinja2
 mistune
 python-dateutil
 myads
 bokeh
+
+# Required for swift docs
+sphinx_rtd_theme