diff --git a/bgpwtf/landing/main.py b/bgpwtf/landing/main.py
new file mode 100644
index 0000000..90011db
--- /dev/null
+++ b/bgpwtf/landing/main.py
@@ -0,0 +1,37 @@
+import jinja2
+import webapp2
+import os
+
+JINJA_ENVIRONMENT = jinja2.Environment(
+    loader=jinja2.FileSystemLoader(os.path.dirname(__file__)),
+    extensions=['jinja2.ext.autoescape'],
+    autoescape=True)
+
+class LandingPage(webapp2.RequestHandler):
+    def get(self):
+        template_values = {}
+        template = JINJA_ENVIRONMENT.get_template('index.html')
+        self.response.write(template.render(template_values))
+
+class Camp19Page(webapp2.RequestHandler):
+    def get(self):
+        self.redirect('https://events.ccc.de/camp/2019/wiki/Village:IXP')
+
+class PricingPage(webapp2.RequestHandler):
+    def get(self):
+        template_values = {}
+        template = JINJA_ENVIRONMENT.get_template('pricing.html')
+        self.response.write(template.render(template_values))
+
+app = webapp2.WSGIApplication([
+    ('/', LandingPage),
+    ('/cccamp19', Camp19Page),
+    ('/ccccamp19', Camp19Page),
+    ('/camp19', Camp19Page),
+    ('/camp', Camp19Page),
+    ('/cccamp', Camp19Page),
+    ('/ccccamp', Camp19Page),
+    ('/pricing', PricingPage),
+    ('/prices', PricingPage),
+    ('/price', PricingPage),
+], debug=False)
