diff --git a/apps/landing/hugo.toml b/apps/landing/hugo.toml
index 62892eb..b7cb8bc 100644
--- a/apps/landing/hugo.toml
+++ b/apps/landing/hugo.toml
@@ -1,3 +1,9 @@
 baseURL = 'https://example.org/'
 languageCode = 'en-us'
 title = 'Dodo'
+[[headers]]
+  for = '/**'
+  [headers.values]
+    Content-Security-Policy = 'connect-src app.v1.dodo.cloud'
+    Referrer-Policy = 'strict-origin-when-cross-origin'
+    X-Content-Type-Options = 'nosniff'
diff --git a/apps/landing/layouts/partials/register-form.html b/apps/landing/layouts/partials/register-form.html
index 1e1638c..3f35896 100644
--- a/apps/landing/layouts/partials/register-form.html
+++ b/apps/landing/layouts/partials/register-form.html
@@ -1,14 +1,19 @@
 <div class="form-container-footer">
-    <form method="POST" action="/register" class="form-group-footer">
+    <form id="register-form" method="POST" action="/register" class="form-group-footer" onsubmit="return register()">
 		<label>
 			domain
-			<select name="domain">
+			<select id="network" name="domain">
 				<option value="dodoapp.xyz">dodoapp.xyz</option>
 			</select>
 		</label>
 		<label>
 			subdomain
-			<input type="text" name="subdomain" />
+			<input id="subdomain" type="text" name="subdomain" />
+		</label>
+		<label>
+			application type
+			<select id="app-type" name="app-type">
+			</select>
 		</label>
         <label>
 			ssh public key
diff --git a/apps/landing/static/js/main.js b/apps/landing/static/js/main.js
index a068560..24e651e 100644
--- a/apps/landing/static/js/main.js
+++ b/apps/landing/static/js/main.js
@@ -139,3 +139,55 @@
         fact.addEventListener("mouseover", () => handleMouseover(facts[index].params.image, index, facts[index].params.title));
     });
 });
+
+async function loadPublicData() {
+  let networkSelect = document.querySelector("select#network");
+  if (networkSelect === undefined) {
+	return;
+  }
+  networkSelect.innerHTML = "";
+  let appTypeSelect = document.querySelector("select#app-type");
+  if (appTypeSelect === undefined) {
+	return;
+  }
+  appTypeSelect.innerHTML = "";
+  let resp = await fetch("https://app.v1.dodo.cloud/api/public-data");
+  if (!resp.ok) {
+	return;
+  }
+  let data = await resp.json();
+  data.networks.forEach((network) => {
+	let opt = document.createElement("option");
+	opt.setAttribute("value", network.domain);
+	opt.innerHTML = network.domain;
+	networkSelect.appendChild(opt);
+  });
+  data.types.forEach((t) => {
+	let opt = document.createElement("option");
+	opt.setAttribute("value", t);
+	opt.innerHTML = t;
+	appTypeSelect.appendChild(opt);
+  });
+}
+
+function register() {
+  var data = {
+	type: document.getElementById("app-type").value,
+	adminPublicKey: document.getElementById("public-key").value,
+	network: document.getElementById("network").value,
+	subdomain: document.getElementById("subdomain").value,
+  };
+  fetch("https://app.v1.dodo.cloud/api/apps", {
+	method: "POST",
+	body: JSON.stringify(data),
+  }).then((resp) => {
+	resp.json().then((r) => {
+	  console.log(r);
+	});
+  });
+  return false;
+}
+
+document.addEventListener("DOMContentLoaded", () => {
+  loadPublicData();
+});
