diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml
new file mode 100644
index 0000000000..58fe12d5cf
--- /dev/null
+++ b/.github/workflows/examples.yml
@@ -0,0 +1,33 @@
+name: Check examples/index.html
+
+on:
+  push:
+    branches-ignore:
+      - "dependabot/**"
+    paths:
+      - "package*.json"
+      - ".github/workflows/examples.yml"
+      - "examples/**"
+      - "scripts/reference-tables.*"
+  pull_request:
+    paths:
+      - "package*.json"
+      - ".github/workflows/examples.yml"
+      - "examples/**"
+      - "scripts/reference-tables.*"
+
+jobs:
+  examples:
+    runs-on: ubuntu-latest
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Install dependencies
+        run: npm ci
+
+      - name: Generate examples/index.html
+        run: npm run reference-tables
+
+      - name: Ensure no git changes
+        run: git diff --exit-code
diff --git a/package.json b/package.json
index aec57605d5..fc3e2c0f94 100644
--- a/package.json
+++ b/package.json
@@ -14,6 +14,7 @@
     "lint:js": "npm run lint:es",
     "lint:html": "npm run vnu-jar",
     "lint:spelling": "cspell \"examples/**/*.html\" \"aria-practices.html\"",
+    "reference-tables": "node scripts/reference-tables.js",
     "regression": "ava --timeout=1m",
     "regression-report": "node test/util/report",
     "test": "npm run lint && npm run regression",