diff --git a/tools/README.md b/tools/README.md
new file mode 100644
index 00000000..0e05e9d7
--- /dev/null
+++ b/tools/README.md
@@ -0,0 +1,56 @@
+These files are stored here as reference and backup for me. You likely
+won’t need them, as the script runs on one of my servers and handles all
+the building for you.
+
+Still, here’s how it goes down:
+- `iitc-nightly.sh` is run by a cronjob. Config: `50 1 * * * /home/pi/iitc-nightly.sh > /dev/null`
+- the ZSH script grabs the latest IITC tarball and extracts it
+- it gets the latest revision sha1
+- builds
+- uploads to Dropbox using [Dropbox-Up](https://github.com/andreafabrizi/Dropbox-Uploader)
+- wild copy magic to get the correct folder structure for app engine
+- uploading to app engine using Google’s appcfg.sh script (available [in the Java AppEngine SDK](https://developers.google.com/appengine/downloads))
+
+
+You don’t need the whole app engine folder, only some files *and folders*.
+The directory structure is shown below where `./appenginesmall/bin/appcfg.sh update war`
+will update all files in `war/` without `war/WEB-INF`.
+
+```
+~/iitc-appengine $ tree
+.
+├── appenginesmall
+│ ├── bin
+│ │ └── appcfg.sh
+│ ├── config
+│ │ └── sdk
+│ │ └── logging.properties
+│ ├── docs
+│ │ └── appengine-web.xsd
+│ └── lib
+│ ├── appengine-tools-api.jar
+│ ├── impl
+│ │ └── agent
+│ ├── opt
+│ │ └── tools
+│ │ └── appengine-local-endpoints
+│ │ └── v1
+│ ├── shared
+│ │ └── jsp
+│ ├── tools
+│ │ └── jsp
+│ └── user
+└── war
+ ├── dist
+ │ ├── …
+ ├── iitc-nightly
+ │ ├── iitc-nightly-latest.user.js
+ │ └── …
+ ├── images
+ │ ├── …
+ ├── screenshots
+ │ ├── …
+ └── WEB-INF
+ ├── appengine-web.xml
+ └── web.xml
+```
diff --git a/tools/appengine/war/WEB-INF/appengine-web.xml b/tools/appengine/war/WEB-INF/appengine-web.xml
new file mode 100644
index 00000000..1e1734da
--- /dev/null
+++ b/tools/appengine/war/WEB-INF/appengine-web.xml
@@ -0,0 +1,12 @@
+
+ iitcserv
+ 1
+
+
+
+
+
+
+
+ true
+
diff --git a/tools/appengine/war/WEB-INF/web.xml b/tools/appengine/war/WEB-INF/web.xml
new file mode 100644
index 00000000..029e4c77
--- /dev/null
+++ b/tools/appengine/war/WEB-INF/web.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/tools/iitc-nightly.sh b/tools/iitc-nightly.sh
index ad593803..d017f93f 100644
--- a/tools/iitc-nightly.sh
+++ b/tools/iitc-nightly.sh
@@ -1,15 +1,30 @@
-#!/bin/sh
+#!/bin/zsh
+
+GIT="git://github.com/breunigs/ingress-intel-total-conversion.git"
+URL="https://nodeload.github.com/breunigs/ingress-intel-total-conversion/tar.gz/gh-pages"
+PTH="ingress-intel-total-conversion-gh-pages"
set -e
cd /tmp
-rm -rf ingress-intel-total-conversion
-git clone --depth=1 git://github.com/breunigs/ingress-intel-total-conversion.git
-cd ingress-intel-total-conversion
+rm -rf $PTH
+wget -q -O - $URL | (cd /tmp && tar xfz -)
+cd $PTH
./build.py
date=$(date +"%Y-%m-%d")
-commit=$(git rev-parse HEAD | head -c 10)
-
+commit=$(git ls-remote --heads $GIT | head -c 10)
# https://github.com/andreafabrizi/Dropbox-Uploader
-dropbox-up upload iitc-debug.user.js iitc-nightly/iitc-nightly-$date-$commit.user.js
+/opt/dropbox-up upload iitc-debug.user.js iitc-nightly/iitc-nightly-$date-$commit.user.js
+/opt/dropbox-up upload iitc-debug.user.js iitc-nightly/iitc-nightly-latest.user.js
+
+cp iitc-debug.user.js /home/pi/iitc-appengine/war/iitc-nightly/iitc-nightly-$date-$commit.user.js
+cp iitc-debug.user.js /home/pi/iitc-appengine/war/iitc-nightly/iitc-nightly-latest.user.js
+mv screenshots/* /home/pi/iitc-appengine/war/screenshots
+mv images/* /home/pi/iitc-appengine/war/images
+mv dist/images/* /home/pi/iitc-appengine/war/dist/images/
+rmdir dist/images
+mv dist/* /home/pi/iitc-appengine/war/dist/
+cd /home/pi/iitc-appengine/
+rm **/*@* # not supported by app engine
+./appenginesmall/bin/appcfg.sh update war