diff --git a/README.md b/README.md
index 48f1b48..2712ed7 100644
--- a/README.md
+++ b/README.md
@@ -36,6 +36,6 @@ Area(80, 40, 160, 160)
A cyan circle appears on the navy display, and the last line reads back a pixel on its edge: `0x7ff` is `pal.CYAN`.
-[Docs](https://github.com/PyDevices/workbench/blob/main/docs/index.md) · [Examples](https://pydevices.github.io/pydevices-examples/gallery/) · [Roadmap](ROADMAP.md)
+[Docs](https://github.com/PyDevices/workbench/blob/main/docs/index.md) · [Examples](https://pydevices.github.io/gallery/gallery/) · [Roadmap](ROADMAP.md)
Made by [PyDevices](https://pydevices.com).
diff --git a/docs/get-started/first-program.md b/docs/get-started/first-program.md
index 2d633a9..407f158 100644
--- a/docs/get-started/first-program.md
+++ b/docs/get-started/first-program.md
@@ -15,4 +15,4 @@ Edit the file and press Run again. To put the same program on a real board, conn
The simulator also has a resolution and shape picker, including round watch faces, and you can resize the display by dragging it.
-More programs are in the [gallery](https://pydevices.github.io/pydevices-examples/gallery/); [open one in Workbench](../guides/open-a-gallery-example.md) by name.
+More programs are in the [gallery](https://pydevices.github.io/gallery/gallery/); [open one in Workbench](../guides/open-a-gallery-example.md) by name.
diff --git a/docs/guides/open-a-gallery-example.md b/docs/guides/open-a-gallery-example.md
index b7eea2e..d717820 100644
--- a/docs/guides/open-a-gallery-example.md
+++ b/docs/guides/open-a-gallery-example.md
@@ -1,6 +1,6 @@
# Open a gallery example
-Any card of the [PyDevices gallery](https://pydevices.github.io/pydevices-examples/gallery/) opens in Workbench by name:
+Any card of the [PyDevices gallery](https://pydevices.github.io/gallery/gallery/) opens in Workbench by name:
```
https://pydevices.github.io/workbench/?vm=1&example=paint
diff --git a/docs/index.md b/docs/index.md
index 64193d0..f74ce1a 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -35,4 +35,4 @@ Workbench is a MicroPython IDE for the browser, with a built-in device simulator
- [Changelog](changelog.md)
-Also: [Examples gallery](https://pydevices.github.io/pydevices-examples/gallery/), [Roadmap](../ROADMAP.md), [Contributing](../CONTRIBUTING.md).
+Also: [Examples gallery](https://pydevices.github.io/gallery/gallery/), [Roadmap](../ROADMAP.md), [Contributing](../CONTRIBUTING.md).
diff --git a/src/pydevices/gallery.js b/src/pydevices/gallery.js
index 34548d1..7742663 100644
--- a/src/pydevices/gallery.js
+++ b/src/pydevices/gallery.js
@@ -27,7 +27,7 @@
import { fetchJSON, fetchText, splitPath } from '../utils.js'
-export const GALLERY_URL = 'https://pydevices.github.io/pydevices-examples/gallery/'
+export const GALLERY_URL = 'https://pydevices.github.io/gallery/gallery/'
/* How many lines the gallery scans for its `# key: a, b` headers */
const HEADER_LINES = 10
diff --git a/test/browser/fixtures/gallery/README.md b/test/browser/fixtures/gallery/README.md
index 0174cec..755882d 100644
--- a/test/browser/fixtures/gallery/README.md
+++ b/test/browser/fixtures/gallery/README.md
@@ -1,11 +1,11 @@
# Gallery fixtures
-A stand-in for , laid
+A stand-in for , laid
out the way the site is: `python-files.json` lists every example and helper
file, examples live under `lib/examples/` and helpers under `lib/utils/`.
`gallery-open.spec.js` serves it at the gallery's own address.
-The files are copies from pydevices-examples (commit `0ef28ef6`). They are
+The files are copies from pydevices-examples, the repo gallery came from (commit `0ef28ef6`). They are
frozen test data: nothing keeps them in step with the repository, and nothing
needs to, since what is under test is how Workbench reads a gallery, not the
examples themselves.
diff --git a/test/browser/gallery-open.spec.js b/test/browser/gallery-open.spec.js
index 04da7d7..eb174fa 100644
--- a/test/browser/gallery-open.spec.js
+++ b/test/browser/gallery-open.spec.js
@@ -12,7 +12,7 @@ import path from 'node:path'
import { fileURLToPath } from 'node:url'
import { terminalText, focusTerminal, distinctCanvasColors } from './helpers.js'
-const GALLERY = 'https://pydevices.github.io/pydevices-examples/gallery/'
+const GALLERY = 'https://pydevices.github.io/gallery/gallery/'
const FIXTURES = path.join(path.dirname(fileURLToPath(import.meta.url)), 'fixtures', 'gallery')
/* The app's service worker fetches on the page's behalf, and a request it