diff --git a/src/routes/projects/+layout.server.ts b/src/routes/projects/+layout.server.ts
new file mode 100644
index 0000000..b29281a
--- /dev/null
+++ b/src/routes/projects/+layout.server.ts
@@ -0,0 +1,8 @@
+import { listProjects } from '$content/projects';
+import type { LayoutServerLoad } from './$types';
+
+export const load: LayoutServerLoad = () => {
+ return {
+ projects: listProjects()
+ };
+};
diff --git a/src/routes/projects/+layout.svelte b/src/routes/projects/+layout.svelte
new file mode 100644
index 0000000..0385342
--- /dev/null
+++ b/src/routes/projects/+layout.svelte
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/routes/projects/+page.svelte b/src/routes/projects/+page.svelte
index e02a5ca..b905094 100644
--- a/src/routes/projects/+page.svelte
+++ b/src/routes/projects/+page.svelte
@@ -1 +1,12 @@
-
There is nothing to see yet
+
+
+
+ {data.projects}
+
+
+
diff --git a/src/routes/projects/[slug]/+page.svelte b/src/routes/projects/[slug]/+page.svelte
new file mode 100644
index 0000000..85d5c3d
--- /dev/null
+++ b/src/routes/projects/[slug]/+page.svelte
@@ -0,0 +1,10 @@
+
+
+
+
+
diff --git a/src/routes/projects/[slug]/+page.ts b/src/routes/projects/[slug]/+page.ts
new file mode 100644
index 0000000..69e72fc
--- /dev/null
+++ b/src/routes/projects/[slug]/+page.ts
@@ -0,0 +1,8 @@
+import { getProject, listProjects } from '$content/projects';
+import type { PageLoad } from './$types';
+
+export const entries = () => listProjects().map((post) => ({ slug: post.slug }));
+
+export const load: PageLoad = async ({ params }) => {
+ return await getProject(params.slug);
+};