diff --git a/system/netlify/functions/index.mjs b/system/netlify/functions/index.mjs
index 918cbff5f2..4ffc2b67f8 100644
--- a/system/netlify/functions/index.mjs
+++ b/system/netlify/functions/index.mjs
@@ -1141,14 +1141,20 @@ async function fun(event, context) {
window.acSTARTING_HASH = hash;
})();
-
+
- ${dev ? `
- ` : `
-
-
+ ${dev ? `
+ ` : `
+
diff --git a/system/public/aesthetic.computer/boot.mjs b/system/public/aesthetic.computer/boot.mjs
index 23d90948b1..c29af375c7 100644
--- a/system/public/aesthetic.computer/boot.mjs
+++ b/system/public/aesthetic.computer/boot.mjs
@@ -1,12 +1,16 @@
// `aesthetic.computer` Bootstrap, 23.02.16.19.23
-// 📦 Early WebSocket module loader initialization
-// This runs before anything else to establish connection ASAP
-// Skip in PACK mode (NFT bundles use import maps)
-let moduleLoader = null;
-let moduleLoaderReady = Promise.resolve(false); // Promise that resolves when loader is ready
-
-if (!window.acPACK_MODE) {
+// 📦 Optional WebSocket module loader for local hot reload and diagnostics.
+let moduleLoader = null;
+let moduleLoaderReady = Promise.resolve(false); // Promise that resolves when loader is ready
+const moduleWsParam = new URLSearchParams(window.location.search).get("modulews");
+const moduleWsEnabled =
+ window.location.hostname === "localhost" ||
+ window.location.hostname === "127.0.0.1" ||
+ moduleWsParam === "1" ||
+ moduleWsParam === "true";
+
+if (!window.acPACK_MODE && moduleWsEnabled) {
try {
// Dynamic import of module-loader (this one file loads via HTTP)
const { moduleLoader: ml } = await import("./module-loader.mjs");