diff --git a/src/routes/index/+page.ts b/src/routes/index/+page.ts
new file mode 100644
index 0000000..cb08636
--- /dev/null
+++ b/src/routes/index/+page.ts
@@ -0,0 +1,21 @@
+export async function load() {
+ const allPostFiles = import.meta.glob("../../../pagesjson/index/*.json")
+
+ return {
+ revivals: Promise.all(
+ Object.entries(allPostFiles).map(async ([path, resolver]) => {
+ const { name, date, clients, rating, overview } =
+ (await resolver()) as any
+
+ return {
+ name,
+ date,
+ clients,
+ rating,
+ overview,
+ path: path.match(/(\w+)\.json/)?.[1],
+ }
+ })
+ ),
+ }
+}
diff --git a/src/routes/revival/[revival]/+page.server.ts b/src/routes/revival/[revival]/+page.server.ts
new file mode 100644
index 0000000..4bfcc33
--- /dev/null
+++ b/src/routes/revival/[revival]/+page.server.ts
@@ -0,0 +1,26 @@
+import { error } from "@sveltejs/kit"
+import { load as loadParent } from "../../index/+page"
+
+export async function load({ params }) {
+ let name: string,
+ date: Date,
+ clients: number[],
+ rating: number,
+ html: string
+
+ try {
+ ;({ name, date, clients, rating, html } = await import(
+ `../../../../pagesjson/index/${params.revival}.json`
+ ))
+ } catch (e) {
+ throw error(404, "Revival not found")
+ }
+
+ const revivals = await (await loadParent()).revivals
+
+ // remove the current post from the list
+ const index = revivals.findIndex(revival => revival.name == name)
+ revivals.splice(index, 1)
+
+ return { name, date, clients, rating, html, revivals }
+}
diff --git a/src/routes/revival/[revival]/+page.svelte b/src/routes/revival/[revival]/+page.svelte
new file mode 100644
index 0000000..72ab7db
--- /dev/null
+++ b/src/routes/revival/[revival]/+page.svelte
@@ -0,0 +1,70 @@
+
+
+
+
+ {data.name} • Revival Archive
+
+
+
+
+
+
← Back to Index
+
+
+ {data.name}
+
+ Published {when(data.date)}
+
+
+
+
+
+
+ {@html data.html}
+
+
+
+ Rating:
+
+
+
+
+
+ {#if data.revivals.length > 0}
+
+ {/if}
+
+
+