diff --git a/.github/workflows/ExportPluto.yaml b/.github/workflows/ExportPluto.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..618cb32a57ed825720109445c885395a1d7dff9b
--- /dev/null
+++ b/.github/workflows/ExportPluto.yaml
@@ -0,0 +1,71 @@
+# Copy-pasted from https://github.com/JuliaPluto/static-export-template
+name: Export Pluto notebooks
+on:
+    push:
+        branches:
+            - main
+            - master
+    workflow_dispatch:
+
+# When two jobs run in parallel, cancel the older ones, to make sure that the website is generated from the most recent commit.
+concurrency:
+    group: pluto-export
+    cancel-in-progress: true
+
+# This action needs permission to write the exported HTML file to the gh-pages branch.
+permissions:
+    contents: write
+    # (all other permission fields default to "none")
+
+jobs:
+    build-and-deploy:
+        runs-on: ubuntu-latest
+        steps:
+            - name: Checkout this repository
+              uses: actions/checkout@v4
+
+            - name: Install Julia
+              uses: julia-actions/setup-julia@v2
+              with:
+                  version: "1" # This will automatically pick the latest Julia version
+
+            - name: Cache Julia artifacts & such
+              uses: julia-actions/cache@v2
+              with:
+                cache-registries: "true"
+
+            # We set up a folder that Pluto can use to cache exported notebooks. If the notebook file did not change, then Pluto can take the exported file from cache instead of running the notebook.
+            - name: Set up notebook state cache
+              uses: actions/cache@v4
+              with:
+                  path: pluto_state_cache
+                  key: ${{ runner.os }}-pluto_state_cache-v2-${{ hashFiles('**/Project.toml', '**/Manifest.toml', '.github/workflows/*' ) }}-${{ hashFiles('**/*jl') }}
+                  restore-keys: |
+                      ${{ runner.os }}-pluto_state_cache-v2-${{ hashFiles('**/Project.toml', '**/Manifest.toml', '.github/workflows/*' ) }}
+
+
+            - name: Run & export Pluto notebooks
+              run: |
+                julia -e 'using Pkg
+                  Pkg.activate(mktempdir())
+                  Pkg.add([
+                    Pkg.PackageSpec(name="PlutoSliderServer", version="0.3.2-0.3"),
+                  ])
+
+                  import PlutoSliderServer
+
+                  PlutoSliderServer.github_action(".";
+                    Export_cache_dir="pluto_state_cache",
+                    Export_baked_notebookfile=false,
+                    Export_baked_state=false,
+                    # more parameters can go here
+                  )'
+
+
+            - name: Deploy to gh-pages
+              uses: JamesIves/github-pages-deploy-action@releases/v4
+              with:
+                  token: ${{ secrets.GITHUB_TOKEN }}
+                  branch: gh-pages
+                  folder: .
+                  single-commit: true