diff --git a/client/src/components/glyphview.svelte b/client/src/components/glyphview.svelte
new file mode 100644
index 0000000..48ead6d
--- /dev/null
+++ b/client/src/components/glyphview.svelte
@@ -0,0 +1,37 @@
+
+
+
+{@html glyphSVG }
+
+
+
diff --git a/client/src/routes/+page.svelte b/client/src/routes/+page.svelte
index cc88df0..3f1eb60 100644
--- a/client/src/routes/+page.svelte
+++ b/client/src/routes/+page.svelte
@@ -1,2 +1,48 @@
-Welcome to SvelteKit
-Visit svelte.dev/docs/kit to read the documentation
+
+
+Font Explorer
+
+
+
+
+
diff --git a/server/src/webview/main.rs b/server/src/webview/main.rs
index 90f3aa1..10bfe09 100644
--- a/server/src/webview/main.rs
+++ b/server/src/webview/main.rs
@@ -1,9 +1,28 @@
#[macro_use] extern crate rocket;
-use std::{fs::File, net::{IpAddr, Ipv4Addr}, sync::Mutex};
+use std::{fs::File, future::Future, net::{IpAddr, Ipv4Addr}, sync::Mutex};
use fontloader::{writer::Visitor, Font, SvgWriter};
-use rocket::{response::{content, status}, Config, State};
+use rocket::{fairing::{Fairing, Info, Kind}, http::Header, response::{content, status}, Config, State};
+
+struct CORS;
+
+#[rocket::async_trait]
+impl Fairing for CORS {
+ fn info(&self) -> Info {
+ Info {
+ name: "Adding CORS headers to responses",
+ kind: Kind::Response
+ }
+ }
+
+ async fn on_response<'r>(&self, _req: &'r rocket::Request<'_>, response: &mut rocket::Response<'r>) {
+ response.set_header(Header::new("Access-Control-Allow-Origin", "*"));
+ response.set_header(Header::new("Access-Control-Allow-Methods", "POST, GET, PATCH, OPTIONS"));
+ response.set_header(Header::new("Access-Control-Allow-Headers", "*"));
+ response.set_header(Header::new("Access-Control-Allow-Credentials", "true"));
+ }
+}
struct SharedFont {
font: Mutex
@@ -43,4 +62,5 @@ fn rocket() -> _ {
rocket::custom(config)
.manage(SharedFont { font: Mutex::from(font) })
.mount("/", routes![get_glyph])
+ .attach(CORS)
}