diff --git a/data/gallery.yaml b/data/gallery.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..1950ee91b30da8b6b59cc341e840781f2d465230
--- /dev/null
+++ b/data/gallery.yaml
@@ -0,0 +1,43 @@
+# Locally stored talk files should be stored in a top-level directory 
+# that is placed into 'STATIC' in compiler.py. You can then refer to
+# the files as their filenames wtihout worrying about directory
+# references. Nominally we will use /talks.
+
+cards:
+  - date: March 2023
+    title: "Agora galaxy using the GEAR model"
+    author: Yves Revaz
+    img: GEAR_v1.png
+    description: "TBD"
+    links:
+      - href: "SPHERIC_2018.pdf"
+        name: Slides
+      - href: "https://arxiv.org/abs/1807.01341"
+        name: Paper
+
+  - date: June 2022
+    title: "Moon formation simulation"
+    author: Jacob Kegerreis
+    img: moon_simulation_jacob.png
+    description: "TBD"
+    links:
+      - href: "SPHERIC_2018.pdf"
+        name: Slides
+      - href: "https://arxiv.org/abs/1807.01341"
+        name: Paper
+
+
+  - date: March 2022
+    title: "Gas 'shockiness' in galaxy cluster"
+    author: Stuart McAlpine
+    thumbnail: Cluster_Stuart_thumbnail.png
+    img: Cluster_Stuart.png
+    description: "TBD"
+    links:
+      - href: "SPHERIC_2018.pdf"
+        name: Slides
+      - href: "https://arxiv.org/abs/1807.01341"
+        name: Paper
+        
+        
+
diff --git a/gallery/Cluster_Stuart.png b/gallery/Cluster_Stuart.png
new file mode 100644
index 0000000000000000000000000000000000000000..b6ace4e17fedb37aba639976a97d42f9c1a1bf17
Binary files /dev/null and b/gallery/Cluster_Stuart.png differ
diff --git a/gallery/Cluster_Stuart_thumbnail.png b/gallery/Cluster_Stuart_thumbnail.png
new file mode 100644
index 0000000000000000000000000000000000000000..97c4ce721794d7d26c4c986f335a6fd394274902
Binary files /dev/null and b/gallery/Cluster_Stuart_thumbnail.png differ
diff --git a/gallery/GEAR_v1.png b/gallery/GEAR_v1.png
new file mode 100644
index 0000000000000000000000000000000000000000..a87800f1db19d2b8afb1735ec12d74b9354b793d
Binary files /dev/null and b/gallery/GEAR_v1.png differ
diff --git a/gallery/moon_simulation_jacob.png b/gallery/moon_simulation_jacob.png
new file mode 100644
index 0000000000000000000000000000000000000000..83112ce8c34c6f7772032645e8cde04125d8a213
Binary files /dev/null and b/gallery/moon_simulation_jacob.png differ
diff --git a/stylesheets/cards.css b/stylesheets/cards.css
index 0f698353cca577fe5f773a652de04e44417b85de..2f7a7ac2d0dcb836332f1b3910c7d7c7b7c68939 100644
--- a/stylesheets/cards.css
+++ b/stylesheets/cards.css
@@ -79,6 +79,25 @@
   margin-bottom: 0;
 }
 
+.gallery-card {
+  width: 30%;
+  
+  border: 1px solid #555;
+  border-radius: 4px;
+
+  box-shadow: 2px 2px 3px #BBB;
+  margin-bottom: 1em;
+
+  display: flex;
+  flex-direction: column;
+}
+
+.card-img {
+  display: flex;
+  flex: 1 1 auto;
+}
+
+
 .caret {
   width: 100%;
   color: #298BDF;
@@ -187,4 +206,4 @@
   .abstract {
     width: 80%;
   }
-}
\ No newline at end of file
+}
diff --git a/templates/gallery.html b/templates/gallery.html
new file mode 100644
index 0000000000000000000000000000000000000000..0f5750f26fff50fea020d96db945c8bbfa589f99
--- /dev/null
+++ b/templates/gallery.html
@@ -0,0 +1,65 @@
+{% extends "pubs.html" %}
+{% import "helpers.html" as helper %}
+
+{% block title %}Gallery{% endblock %}
+{% block stylesheets %}<link href='cards.css' rel='stylesheet' type='text/css'>{% endblock %}
+
+{% block content %}
+{{ helper.wide_header() }}
+ <div class="container">
+   {{ helper.navbar(navbar, link) }}
+
+       <!-- <div class="text"> -->
+       <!--   <h2>Image and Movie Gallery</h2> -->
+       <!-- </div> -->
+   
+     <!-- <div class="content"> -->
+
+     <!--   <div class="text"> -->
+     <!--     {{ markdown_content }} -->
+     <!--   </div> -->
+
+     <!--   <div class="padder"></div> -->
+
+        <div class="cards">
+            {% for card in cards|sort_cards %}
+                <div class="gallery-card">
+                    <div class="card-content">
+                        <div>
+
+			    <h2> {{ card.title }}</h2>
+			    {% if card.img %}
+                            <div class="gallery-card-img">
+			      <a href="{{ card.img }}">
+				{% if card.thumbnail %}
+                                   <img src="{{ card.thumbnail }}">
+  				{% else %}
+				   <img src="{{ card.img }}">
+				{% endif %}
+			      </a>
+                            </div>
+			    <div>
+                              Author(s): <b>{{ card.author }}</b>
+			    </div>
+                            {% endif %}
+                            {% if card.description %}
+                                <div>
+                                    <p class="hideshow">Description <i class="fa fa-chevron-right" aria-hidden="true"></i></p>
+                                    <p class="abstract card">{{ card.description }}</p>
+                                </div>
+                            {% endif %}
+
+
+			</div>
+                    </div>
+                </div>
+            {% endfor %}
+            {% for i in range(3 - (cards|length % 3)) %} {# Add extra padding #}
+                <div class="card-pad"></div>
+            {% endfor %}
+     <!--    </div>        -->
+     <!-- </div> -->
+ </div>
+{% endblock %}
+
+{% block js %}<script src="sidebar.js"></script>{% endblock %}