diff --git a/website/pages/universe/index.tsx b/website/pages/universe/index.tsx
new file mode 100644
index 000000000..69e5ad4ce
--- /dev/null
+++ b/website/pages/universe/index.tsx
@@ -0,0 +1,17 @@
+import recordSections from '../../meta/recordSections'
+import Layout from '../../src/templates'
+
+const Universe = () => {
+    return (
+        <Layout
+            slug={'/universe'}
+            section="universe"
+            sectionTitle={recordSections.universe.title}
+            theme={recordSections.universe.theme}
+            isIndex
+            title="Overview"
+        />
+    )
+}
+
+export default Universe
diff --git a/website/src/templates/universe.js b/website/src/templates/universe.js
index 36bc224d5..0f3db4df7 100644
--- a/website/src/templates/universe.js
+++ b/website/src/templates/universe.js
@@ -21,12 +21,6 @@ import { github, MarkdownToReact } from '../components/util'
 import { nightly, legacy } from '../../meta/dynamicMeta'
 import universe from '../../meta/universe.json'
 
-function getSlug(data) {
-    if (data.isCategory) return `/universe/category/${data.id}`
-    if (data.isProject) return `/universe/project/${data.id}`
-    return `/universe`
-}
-
 function filterResources(resources, data) {
     const sorted = resources.sort((a, b) => a.id.localeCompare(b.id))
     if (!data || !data.isCategory) return sorted
@@ -38,7 +32,7 @@ const UniverseContent = ({ content = [], categories, theme, pageContext, mdxComp
     const filteredResources = filterResources(content, data)
     const activeData = data ? content.find(({ id }) => id === data.id) : null
     const markdownComponents = { ...mdxComponents, code: InlineCode }
-    const slug = getSlug(data)
+    const slug = pageContext.slug
     const isHome = !data.isCategory && !data.isProject
 
     const sidebar = [