diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
index a10423d0be..7bb68f22a0 100644
--- a/.github/workflows/publish.yml
+++ b/.github/workflows/publish.yml
@@ -1,8 +1,15 @@
 name: Publish
+
 on:
   push:
     branches:
       - lektor
+  repository_dispatch:
+      types:
+        - republish-request
+
+concurrency:
+  group: ${{ github.workflow }}
 
 jobs:
   publish:
diff --git a/.github/workflows/trigger_republish.yml b/.github/workflows/trigger_republish.yml
new file mode 100644
index 0000000000..44286a596e
--- /dev/null
+++ b/.github/workflows/trigger_republish.yml
@@ -0,0 +1,24 @@
+name: Trigger BeeWare website republish
+
+on:
+    issues:
+        types:
+          - opened
+          - reopened
+          - transferred
+          - edited
+          - labeled
+          - unlabeled
+          - closed
+          - deleted
+
+jobs:
+    rebuild-request:
+        runs-on: ubuntu-latest
+        steps:
+        - name: Submit dispatch event to BeeWare website repo
+          uses: peter-evans/repository-dispatch@v3
+          with:
+            token: ${{ secrets.REBUILD_TOKEN }}
+            repository: beeware/beeware.github.io
+            event-type: rebuild-request
\ No newline at end of file