diff --git a/README.md b/README.md
index f3a2b85..956aefd 100644
--- a/README.md
+++ b/README.md
@@ -23,7 +23,7 @@ will run a local/minimal http file server at http://localhost:5555
```
- run `httpd.js` like above
- load the main page (and any mediatype example items you might want to work on from the list above)
- - that will pull down remote `https://esm.archive.org/` (and similar) files that are `import`-ed
+ - that will pull down remote `https://esm.ext.archive.org/` (and similar) files that are `import`-ed
- soft reload pages during offline dev (ie: dont `hard reload` / clear your browser cache :-)
- requires: `zsh` and `jq` (for preseeding a selection of offline mode items)
diff --git a/examples/slot.html b/examples/slot.html
index 0206cf2..a8214fe 100644
--- a/examples/slot.html
+++ b/examples/slot.html
@@ -23,12 +23,14 @@
diff --git a/index.html b/index.html
index da9b48e..de3957e 100644
--- a/index.html
+++ b/index.html
@@ -40,7 +40,7 @@
-
+
diff --git a/js/blank-blank.js b/js/blank-blank.js
index 8a20090..96c0a5f 100644
--- a/js/blank-blank.js
+++ b/js/blank-blank.js
@@ -1,4 +1,4 @@
-import { LitElement, html, css } from 'https://esm.archive.org/lit'
+import { LitElement, html, css } from 'https://esm.ext.archive.org/lit@3.2.1'
customElements.define('blank-blank', class BlankBlank extends LitElement {
static get properties() {
diff --git a/js/details-page.js b/js/details-page.js
index cfa8cb5..06c3e24 100644
--- a/js/details-page.js
+++ b/js/details-page.js
@@ -1,4 +1,4 @@
-import { LitElement, html, css } from 'https://esm.archive.org/lit'
+import { LitElement, html, css } from 'https://esm.ext.archive.org/lit@3.2.1'
import './play8/play8.js'
import Player from './player.js'
@@ -153,7 +153,7 @@ table {
return html`
-
+
diff --git a/js/item-stat.js b/js/item-stat.js
index 2847e66..59ee3b7 100644
--- a/js/item-stat.js
+++ b/js/item-stat.js
@@ -1,4 +1,4 @@
-import { LitElement, html, css } from 'https://esm.archive.org/lit'
+import { LitElement, html, css } from 'https://esm.ext.archive.org/lit@3.2.1'
/* eslint-disable-next-line import/prefer-default-export */
customElements.define('item-stat', class ItemStat extends LitElement {
diff --git a/js/item-tile.js b/js/item-tile.js
index 4de1858..8f52ee3 100644
--- a/js/item-tile.js
+++ b/js/item-tile.js
@@ -1,4 +1,4 @@
-import { LitElement, html, css } from 'https://esm.archive.org/lit'
+import { LitElement, html, css } from 'https://esm.ext.archive.org/lit@3.2.1'
import './item-stat.js'
diff --git a/js/item-tiles.js b/js/item-tiles.js
index 47af50b..79fb8da 100644
--- a/js/item-tiles.js
+++ b/js/item-tiles.js
@@ -1,4 +1,4 @@
-import { LitElement, html, css } from 'https://esm.archive.org/lit'
+import { LitElement, html, css } from 'https://esm.ext.archive.org/lit@3.2.1'
import './item-tile.js'
diff --git a/js/play8/play8.js b/js/play8/play8.js
index 90ba5a8..59d2158 100644
--- a/js/play8/play8.js
+++ b/js/play8/play8.js
@@ -1,7 +1,7 @@
// Video/Audio/TV related playback javascript - wrapping and extensions to jwplayer
// For /details/[IDENTIFIER] and /embed/[IDENTIFIER] and TV pages and more
-import $ from 'https://esm.archive.org/jquery@^3.6.0'
+import $ from 'https://esm.ext.archive.org/jquery@3.7.1'
/* eslint-disable-next-line import/no-named-as-default */
import cgiarg from '../util/cgiarg.js'
diff --git a/js/playset/playset.js b/js/playset/playset.js
index 863f16c..f49a3c8 100644
--- a/js/playset/playset.js
+++ b/js/playset/playset.js
@@ -9,7 +9,7 @@
// xxx share/link as modal?
// xxx cleanup/improve descriptions for description-less items?
-import $ from 'https://esm.archive.org/jquery@^3.6.0'
+import $ from 'https://esm.ext.archive.org/jquery@3.7.1'
import cgiarg from '../util/cgiarg.js'
import { log } from '../util/log.js'
diff --git a/js/router.js b/js/router.js
index 7c79225..0878bf8 100644
--- a/js/router.js
+++ b/js/router.js
@@ -1,4 +1,4 @@
-import { Router } from 'https://esm.archive.org/@vaadin/router@^1'
+import { Router } from 'https://esm.ext.archive.org/@vaadin/router@1.7.5'
import MDAPI from './mdapi.js'
import { log } from './util/log.js'
diff --git a/js/search-page.js b/js/search-page.js
index 519c89e..17ea3ec 100644
--- a/js/search-page.js
+++ b/js/search-page.js
@@ -1,4 +1,4 @@
-import { LitElement, html, css } from 'https://esm.archive.org/lit'
+import { LitElement, html, css } from 'https://esm.ext.archive.org/lit@3.2.1'
import './search-results.js'
import cgiarg from './util/cgiarg.js'
diff --git a/js/search-results.js b/js/search-results.js
index 152f1d7..644d58c 100644
--- a/js/search-results.js
+++ b/js/search-results.js
@@ -1,4 +1,4 @@
-import { LitElement, html, css } from 'https://esm.archive.org/lit'
+import { LitElement, html, css } from 'https://esm.ext.archive.org/lit@3.2.1'
import './item-tiles.js'
diff --git a/tracked.json b/tracked.json
new file mode 100644
index 0000000..e69de29