diff --git a/README.md b/README.md
index f95c2aabd31a0c2d3bfb10e6bd1f34de1b401b36..8f47e134c259766ae06e653e0a98f7dadc0b56ed 100644
--- a/README.md
+++ b/README.md
@@ -17,3 +17,16 @@ quarto preview --no-navigate
 (if you omit `--no-navigate`, the preview server would automatically navigate to the most recent modified file, which in our case is likely the automatically generated summary file).
 
 Once the preview server is running, please open it in your browser (if it didn't do this automatically) and go on modifying the source files.
+
+### Adding new lecture slides
+
+Lecture slides have to be added as a Quarto markdown file to the `lectures` folder.
+Specifically, each lecture has to be in a separate subfolder and should be named e.g.: `lectures/example-lecture/slides.qmd`.
+Please make sure, that the name of the folder identifies the lecture briefly and does **not** include other information (e.g. the ordering number of the lecture).
+You may also check the current `_quarto.yml` for suggestions.
+
+Each slide needs to have a `title` and `author` set in it's [Front Matter](https://quarto.org/docs/authoring/front-matter.html).
+Otherwise the file is a Markdown file with special features from [Quarto](https://quarto.org/docs/guide/).
+
+In order to make the new slide deck visible on the lecture website, you'll **also** have to add (or uncomment) the filename of the `website.sidebar.contents` entry in the `_quarto.yml` file.
+Please add the file in order of the planned lecture schedule.
diff --git a/_quarto.yml b/_quarto.yml
index 5f28985fb16e4e5a9efafacb4679de5d2f68d585..97f2d33abe51a29d194754c9737c897e14f288cf 100644
--- a/_quarto.yml
+++ b/_quarto.yml
@@ -23,7 +23,23 @@ website:
     search: true
     contents:
       - section: "Lectures"
-        contents: "lectures/[01]*/slides.qmd"
+        contents:
+          # - "lectures/example-lecture/slides.qmd"
+          # - "lectures/command-line/slides.qmd"
+          # - "lectures/git/slides.qmd"
+          # - "lectures/programming-paradigms/slides.qmd"
+          # - "lectures/data-structures/slides.qmd"
+          # - "lectures/complexity/slides.qmd"
+          # - "lectures/debugging/slides.qmd"
+          # - "lectures/good-scientific-practice/slides.qmd"
+          # - "lectures/user-experience/slides.qmd"
+          # - "lectures/testing/slides.qmd"
+          # - "lectures/git2/slides.qmd"
+          # - "lectures/parallelism/slides.qmd"
+          # - "lectures/hardware/slides.qmd"
+          # - "lectures/file-and-data-systems/slides.qmd"
+          # - "lectures/memory-hierarchies/slides.qmd"
+          # - "lectures/student-talks/slides.qmd"
 
 
 format:
diff --git a/requirements.txt b/requirements.txt
index a1ad92b0ef78d02cfa6cef351334a7805867283e..d505fdc8654f44f458565984e0f9f4bc0d15d01d 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -7,3 +7,4 @@ requests
 aiohttp
 zarr
 matplotlib
+pyyaml
diff --git a/scripts/prepare.py b/scripts/prepare.py
index 17aa01fa8670ac0ff9919ec362e9a5d4ebbca48b..16aa2296411ef9578a7b35be0fcfa52745e5100c 100644
--- a/scripts/prepare.py
+++ b/scripts/prepare.py
@@ -1,5 +1,5 @@
-import glob
 import logging
+import yaml
 
 logging.basicConfig()
 logging.getLogger().setLevel(logging.DEBUG)
@@ -24,7 +24,14 @@ title: "Lecture Overview"
 
 
 def generate_summary():
-    files = sorted(glob.glob("lectures/[01]*/slides.qmd"))
+    project_config = yaml.safe_load(open("_quarto.yml"))
+
+    files = [
+        fn
+        for s in project_config["website"]["sidebar"]["contents"]
+        if s.get("section") == "Lectures"
+        for fn in s["contents"] or []
+    ]
 
     all_entries = []
     for x in files: