diff --git a/package.json b/package.json
index e2b210f..dfb5249 100644
--- a/package.json
+++ b/package.json
@@ -9,7 +9,8 @@
 		"cli": "ts-node src/cli.ts",
 		"setup": "sh install/setup.sh",
 		"migrate": "ts-node src/migrate.ts",
-		"invite": "ts-node src/cli.ts --invite"
+		"invite": "ts-node src/cli.ts --invite",
+		"make-templates": "cp node_modules/nunjucks/browser/nunjucks-slim.js site &&nunjucks-precompile -i [\"\\.html$\",\"\\.njk$\"] templates > site/templates.js"
 	},
 	"repository": {
 		"type": "git",
diff --git a/site/index.html b/site/index.html
new file mode 100644
index 0000000..b7a72bd
--- /dev/null
+++ b/site/index.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<head>
+	<script src="/nunjucks-slim.js"></script>
+	<script src="/templates.js"></script>
+	<script>
+		nunjucks.configure({ autoescape: true });
+	</script>
+</head>
+<body onload="render()">
+  <script>
+	function render(){
+		switch(window.location.pathname){
+			case "/about.html":
+				document.body.innerHTML = nunjucks.render('about.html');
+				break;
+			case "/tos.html":
+				document.body.innerHTML = nunjucks.render('tos.html');
+				break;
+			default:
+				document.body.innerHTML = nunjucks.render('404.njk');
+		}
+	}
+	function getContext(){
+		var conf = {
+			sitename: "",
+			domain: "",
+			email: "",
+			version: "",
+			registration: false
+		}
+		var info = new XMLHttpRequest();
+		info.onload = () => {
+			if(xhr.status === 200)
+		}
+	}
+  </script>
+</body>
\ No newline at end of file
diff --git a/src/http.ts b/src/http.ts
index 8eb06dc..1576883 100644
--- a/src/http.ts
+++ b/src/http.ts
@@ -56,11 +56,12 @@ async function init(){
 	}
 	app.disable('x-powered-by');
 	//site handlers
-	await initSite(config['satyr']['registration']);
+	//await initSite(config['satyr']['registration']);
 	//api handlers
 	await initAPI();
 	//static files if nothing else matches first
 	app.use(express.static(config['http']['directory']));
+	await initFE();
 	//404 Handler
 	app.use(function (req, res, next) {
 		if(tryDecode(req.cookies.Authorization)) {
@@ -73,6 +74,12 @@ async function init(){
 	server.listen(config['http']['port']);
 }
 
+async function initFE(){
+	app.get('*', (req, res) => {
+		res.sendFile(process.cwd()+'/'+config['http']['directory']+'/index.html');
+	});
+}
+
 async function newNick(socket, skip?: boolean, i?: number) {
 	if(socket.handshake.headers['cookie'] && !skip){
 		let c = await parseCookie(socket.handshake.headers['cookie']);