diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 919cbe3984a5a4481f8c71fd4148364185b30b3b..55d2f6ea29420dadb8d58b765accb7ca13d4e380 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,22 +1,3 @@
-image: registry.eisfunke.com/software/container/pandoc-plus:latest
-
-build:
-  stage: build
-  script:
-    - make slides.pdf
-    - make slides.tex
-  artifacts:
-    paths:
-      - slides.pdf
-      - slides.tex
-
-pages:
-  stage: deploy
-  script:
-    - mkdir public
-    - mv slides.pdf public
-  artifacts:
-    paths:
-      - public
-  only:
-    - master
+include:
+  - remote: https://git.eisfunke.com/document/pandoc-template/slides/-/raw/main/build.gitlab-ci.yml
+  - remote: https://git.eisfunke.com/document/pandoc-template/slides/-/raw/main/pages.gitlab-ci.yml
diff --git a/makefile b/makefile
deleted file mode 100644
index 836c502b1839f587ec4719fd9bf4c67b7eb53f3d..0000000000000000000000000000000000000000
--- a/makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-inputs = $(shell ls src/*.md)  # $(wildcard src/*.md) outputs in the wrong order
-pandoc = pandoc $(inputs) -f markdown -t beamer \
---slide-level 2 -V theme:metropolis -H theme.tex
-
-slides.pdf: $(inputs) res/* theme.tex
-	$(pandoc) --pdf-engine=xelatex -o $@
-
-slides.tex: $(inputs) theme.tex
-	$(pandoc) -o $@
-
-slides.html: $(inputs) theme.tex
-	pandoc $(inputs) -f markdown -t revealjs -s --slide-level 2 -o $@
-
-clean:
-	rm -f slides.pdf slides.tex
-
-.PHONY: clean
diff --git a/metadata.yaml b/metadata.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..71c63321ddb00e482b9c079ba7b677cda6128ce0
--- /dev/null
+++ b/metadata.yaml
@@ -0,0 +1,5 @@
+title: Functional Programming
+subtitle: An introductory Workshop
+author: Nicolas Lenz
+institute: "[eisfunke.com](https://www.eisfunke.com)"
+logo: res/logo-haskell.png
diff --git a/src/00-introduction.md b/src/00-introduction.md
index 05b6b2edb8b8e4ab746cc25a8f67b742a4633b2c..9f0d505c0050702b8429ff3fc3cd286c9fd18d80 100644
--- a/src/00-introduction.md
+++ b/src/00-introduction.md
@@ -1,11 +1,3 @@
----
-title: Functional Programming
-subtitle: An introductory Workshop
-author: Nicolas Lenz
-institute: "[eisfunke.com](https://www.eisfunke.com)"
-titlegraphic: res/logo-haskell.png
----
-
 # Introduction
 
 ## Me
diff --git a/theme.tex b/theme.tex
deleted file mode 100644
index 100b722b7a6267ed1422ca1d54b537a4a67ff1ce..0000000000000000000000000000000000000000
--- a/theme.tex
+++ /dev/null
@@ -1,52 +0,0 @@
-\definecolor{primary-medium}{HTML}{F19204}
-\definecolor{accent-bright}{HTML}{F07D8F}
-\definecolor{accent-light}{HTML}{EB4F67}
-\definecolor{accent-medium}{HTML}{E41131}
-\definecolor{accent-dim}{HTML}{A90D24}
-\definecolor{background-very-dark}{HTML}{232124}
-\definecolor{background-dark}{HTML}{3F3C41}
-\definecolor{background-super-bright}{HTML}{F8F7F8}
-
-\metroset{sectionpage=progressbar, progressbar=frametitle, titleformat=smallcaps, background=light}
-
-\setbeamercolor{normal text}{fg=black}
-\setbeamercolor{background canvas}{fg=background-dark, bg=background-super-bright}
-\setbeamercolor*{palette primary}{fg=white,bg=primary-medium}
-\setbeamercolor*{progress bar}{fg=accent-dim, bg=accent-bright}
-
-\setlength{\leftmargini}{1em}
-
-\usepackage{sourcesanspro}
-\usepackage{sourcecodepro}
-
-\usepackage{polyglossia}
-    \setdefaultlanguage[variant=american]{english}
-\usepackage{listings}
-
-
-
-\usepackage{mathtools, amssymb, stmaryrd, unicode-math}
-\usepackage{xspace}
-
-\usepackage{fvextra}
-\usepackage{color}
-\usepackage{fancyvrb}
-% \renewcommand{\VERB}{\Verb[commandchars=\\\{\}]}
-\DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\},breaklines,fontsize=\small}
-\DefineVerbatimEnvironment{verbatim}{Verbatim}{commandchars=\\\{\},breaklines,fontsize=\small}
-
-% \input{macros.tex}
-
-\lstnewenvironment{algorithm}{
-    \lstset{
-        mathescape=true,
-        escapeinside={(*}{*)},
-        keepspaces=true,
-        numbers=left,
-        numberstyle=\tiny,
-        columns=fullflexible,
-        keywordstyle=\bfseries,
-        keywords={repeat, until, for, all, each, in, return, function, if, else, or, and, empty},
-        numbers=left
-    }
-}{}