diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c4b3e1ec785175268eeb9d4251c7ad7095abb2b4..bbdd49619032f8fd3c0c0da08ba03b6148aa8d0d 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,4 +1,5 @@
-image: omalaspinas/pandoc_website:latest
+image: omalaspinas/hakyll-bootstrap:latest
+# image: omalaspinas/pandoc_website:latest
 
 variables:
   GIT_SUBMODULE_STRATEGY: recursive
@@ -31,8 +32,12 @@ before_script:
 
 build_and_deploy:
   script:
+    - pandoc -v
     - make
     - rsync -avzz css ur1bg_malas@ur1bg.ftp.infomaniak.com:web/malaspinas/
     - rsync -avzz figs ur1bg_malas@ur1bg.ftp.infomaniak.com:web/malaspinas/
     - rsync -avzz index.html ur1bg_malas@ur1bg.ftp.infomaniak.com:web/malaspinas/
+    - make build_revealjs -C hakyll-bootstrap
+    - make build -C hakyll-bootstrap
+    - make deploy -C hakyll-bootstrap
     # - blc https://malaspinas.academy -ro --exclude *.pdf --filter-level 3
diff --git a/hakyll-bootstrap/404.html b/hakyll-bootstrap/404.html
new file mode 100644
index 0000000000000000000000000000000000000000..772f302ac44a96dcec9647165fc504c8ec77e315
--- /dev/null
+++ b/hakyll-bootstrap/404.html
@@ -0,0 +1,9 @@
+---
+title: Page not found
+---
+
+<h1>Error 404</h1>
+<p>
+    The page you were looking for does not exist. You might want to
+    <a href="/">go back home</a>.
+</p>
diff --git a/hakyll-bootstrap/Main.hs b/hakyll-bootstrap/Main.hs
index 59dbe7332e46603d167c26fd9a777f5867e4de62..3516f25ff066c541e0e65d3a2e217fd1b2369f31 100644
--- a/hakyll-bootstrap/Main.hs
+++ b/hakyll-bootstrap/Main.hs
@@ -21,11 +21,12 @@ import           Data.Maybe (isJust)
 import           Hakyll.Images ( loadImage
                                 , scaleImageCompiler
                                )
+import           System.Exit     (ExitCode)
 
 --------------------------------------------------------------------------------
 -- | Entry point
 main :: IO ()
-main = hakyllWith cfg $ do
+main = hakyllWith config $ do
     -- Resize images
     match "img/thumbnails/**.png" $ do
         route idRoute
@@ -58,6 +59,12 @@ main = hakyllWith cfg $ do
       route idRoute
       compile $ copyFileCompiler
 
+    -- Render the 404 page, we don't relativize URL's here.
+    match "404.html" $ do
+        route idRoute
+        compile $ pandocCompiler
+            >>= loadAndApplyTemplate "templates/page.html"    postCtx
+
     -- Phys app posts
     match "cours/isc_physics/*.markdown" $ do
         route $ setExtension "html"
@@ -337,25 +344,15 @@ pandocRevealCompiler = do
 --     makeItem $ TmpFile pdfPath
 
 
-cfg :: Configuration
-cfg = defaultConfiguration
-
--- main :: IO ()
--- main = hakyllWith cfg $ do
---   pages
---   posts
---   cours_conc
---   conc
---   cours_mti
---   mti
---   cours_phys_app
---   phys_app
---   research
---   bachelor
---   index
---   templates
---   resizeThumbnails
---   resizeLarge
---   resizeHeads
---   static
-
+--------------------------------------------------------------------------------
+config :: Configuration
+config = defaultConfiguration
+    { deploySite = deploy
+    }
+  where
+    deploy :: Configuration -> IO ExitCode
+    deploy _c = do
+        Process.rawSystem "rsync"
+                [ "--checksum", "-avzz"
+                , "_site/", "ur1bg_malas@ur1bg.ftp.infomaniak.com:web/malaspinas/beta/"
+                ]
diff --git a/hakyll-bootstrap/Makefile b/hakyll-bootstrap/Makefile
index 1c0e0c971063ccc735fdb932b596487acb0cecdc..50b5909175c25d92eafaa3ade7cfb7e3eae5ef7e 100644
--- a/hakyll-bootstrap/Makefile
+++ b/hakyll-bootstrap/Makefile
@@ -1,10 +1,16 @@
-watch: Main.hs cours/math_tech_info/*.md cours/isc_physics/*.md
+watch: build
+	stack exec blog -- watch
+
+deploy: build
+	stack exec blog -- deploy
+
+build: Main.hs cours/math_tech_info/*.md cours/isc_physics/*.md
 	make hakyll_gen -C cours/math_tech_info
 	make hakyll_gen -C cours/isc_physics
 	make -C cours/math_tech_info
 	make -C cours/isc_physics
 	make markdown -C cours/prog_seq/slides
-	stack build && stack exec blog -- build && stack exec blog -- watch
+	stack build && stack exec blog -- build
 
 build_revealjs:
 	cd reveal.js && npm install && npm run build && cd ..