diff --git a/photos-ui/gallery.html b/photos-ui/gallery.html
new file mode 100644
index 0000000..a8001d0
--- /dev/null
+++ b/photos-ui/gallery.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>Photos</title>
+    </head>
+    <script src="static/photos.js"></script>
+    <body onload="initGallery('gallery')">
+      <div id="gallery" />
+    </body>
+</html>
diff --git a/photos-ui/main.go b/photos-ui/main.go
new file mode 100644
index 0000000..879ef0b
--- /dev/null
+++ b/photos-ui/main.go
@@ -0,0 +1,31 @@
+package main
+
+import (
+	"flag"
+	"fmt"
+	"log"
+	"net/http"
+)
+
+var port = flag.Int("port", 3000, "Port to listen on")
+
+func handle_gallery(w http.ResponseWriter, r *http.Request) {
+	http.ServeFile(w, r, "./gallery.html")
+}
+
+func handle_photo(w http.ResponseWriter, r *http.Request) {
+	http.ServeFile(w, r, "./photo.html")
+}
+
+func handle_graphql(w http.ResponseWriter, r *http.Request) {
+	http.Redirect(w, r, "http://localhost:8080/graphql?query={queryImage(){id objectPath}}", http.StatusMovedPermanently)
+}
+
+func main() {
+	flag.Parse()
+	fs := http.FileServer(http.Dir("./static"))
+	http.Handle("/static/", http.StripPrefix("/static/", fs))
+	http.HandleFunc("/graphql", handle_graphql)
+	http.HandleFunc("/", handle_gallery)
+	log.Fatal(http.ListenAndServe(fmt.Sprintf(":%d", *port), nil))
+}
diff --git a/photos-ui/photo.html b/photos-ui/photo.html
new file mode 100644
index 0000000..8628549
--- /dev/null
+++ b/photos-ui/photo.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>Photos</title>
+    </head>
+    <script src="static/photos.js"></script>
+    <body onload="initPhoto('gallery')">
+      <div id="gallery" />
+    </body>
+</html>
diff --git a/photos-ui/static/photos.js b/photos-ui/static/photos.js
new file mode 100644
index 0000000..ccadb4b
--- /dev/null
+++ b/photos-ui/static/photos.js
@@ -0,0 +1,22 @@
+async function fetchAllPhotos() {
+    return await fetch("/graphql?query={queryImage(){objectPath}}")
+	.then(resp => resp.json())
+	.then(resp => resp.data.queryImage)
+	.catch(error => {
+	    alert(error);
+	    return [];
+	});
+    
+}
+
+async function initGallery(gallery_elem_id) {
+    imgs = await fetchAllPhotos();
+    console.log(imgs);
+    img_list = "<ul>";
+    for (img of imgs) {
+	img_list += "<li><a href='/photo/" + img.id + "'><img style='max-width: 300px' src='http://localhost:9000/" + img.objectPath + "' /></a></li>";
+    }
+    img_list += "</ul>";
+    console.log(img_list);
+    document.getElementById(gallery_elem_id).innerHTML = img_list;
+}
