diff --git a/package.json b/package.json
index f59d96ea..1ecacc60 100644
--- a/package.json
+++ b/package.json
@@ -24,6 +24,7 @@
"@sveltejs/adapter-static": "2.0.3",
"@sveltejs/kit": "1.25.1",
"@sveltejs/vite-plugin-svelte": "2.4.6",
+ "@splidejs/svelte-splide": "0.2.9",
"@types/events": "3.0.1",
"@types/mapbox-gl": "2.7.15",
"@types/mapbox__mapbox-gl-geocoder": "4.7.5",
@@ -37,6 +38,7 @@
"prettier": "3.0.3",
"prettier-plugin-svelte": "3.0.3",
"svelte": "4.2.1",
+ "svelte-carousel": "1.0.25",
"svelte-check": "3.5.2",
"svelte-multiselect": "10.2.0",
"svelte-preprocess": "5.0.4",
diff --git a/src/app.d.ts b/src/app.d.ts
index 71714b12..9e70e9d3 100644
--- a/src/app.d.ts
+++ b/src/app.d.ts
@@ -29,3 +29,5 @@ declare module '*messages.yml' {
}
declare module '*package.json'
+
+declare module 'svelte-carousel'
diff --git a/src/lib/Carousel.svelte b/src/lib/Carousel.svelte
new file mode 100644
index 00000000..28e9648f
--- /dev/null
+++ b/src/lib/Carousel.svelte
@@ -0,0 +1,57 @@
+
+
+{#await get_posts() then _}
+ {#if !error && posts && posts.length > 0}
+
+ {#each posts as post}
+
+ {/each}
+
+ {/if}
+{/await}
+
+
+
diff --git a/src/lib/index.ts b/src/lib/index.ts
index 5c1038aa..c2562b9c 100644
--- a/src/lib/index.ts
+++ b/src/lib/index.ts
@@ -1,6 +1,7 @@
export { default as BasePage } from './BasePage.svelte'
export { default as ChapterList } from './ChapterList.svelte'
export { default as ChapterMap } from './ChapterMap.svelte'
+export { default as Carousel } from './Carousel.svelte'
export { default as CircleSpinner } from './CircleSpinner.svelte'
export { default as Collapsible } from './Collapsible.svelte'
export { default as Footer } from './Footer.svelte'
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte
index d073f892..7e7a30fb 100644
--- a/src/routes/+page.svelte
+++ b/src/routes/+page.svelte
@@ -1,11 +1,14 @@
@@ -81,6 +84,11 @@
{@html data.page.body}
+
+
+
+
+