diff --git a/build.py b/build.py
new file mode 100755
index 0000000..f7a0e3f
--- /dev/null
+++ b/build.py
@@ -0,0 +1,106 @@
+#! /usr/bin/env python3
+
+import os
+import subprocess
+
+SECTIONS = {
+ 'drift': 'Drift',
+ 'fs': 'FreeStyle',
+ 'k': 'K projects',
+ 'lol': 'LOL',
+ 'pf': 'Press Forward',
+ 'ta': 'Time Attack',
+ 'trial': 'Trial',
+}
+
+
+def card(name, web, raw):
+ return f'''\
+
+'''
+
+
+def a(href, text, active=False):
+ html = ['{text}')
+ return str().join(html)
+
+
+def nav(sections, active):
+ html = ['')
+ return str().join(html)
+
+
+def body(sections):
+ html = []
+ for section in sections.values():
+ html.append(f'')
+ html.append(section['content'])
+ html.append('')
+ return str().join(html)
+
+
+def html(body):
+ return f'''\
+
+
+
+
+
+TrackMania vidz
+
+
+
+
+
+{body}
+
+
+