[object Object]

← back to Dw Domain Fleet

fleet: SCOPE CORRECTION 66→44 (dtd Option B split) — 22 domains stay 301 redirects; add asseeninmovies; product pages with rel=canonical→main store + per-site title/meta; crawlable card links

218656240ad9e9df0808b60843c951ed0069a1ef · 2026-05-18 20:44:10 -0700 · SteveStudio2

Files touched

Diff

commit 218656240ad9e9df0808b60843c951ed0069a1ef
Author: SteveStudio2 <stevestudio2@SteveStacStudio.lan>
Date:   Mon May 18 20:44:10 2026 -0700

    fleet: SCOPE CORRECTION 66→44 (dtd Option B split) — 22 domains stay 301 redirects; add asseeninmovies; product pages with rel=canonical→main store + per-site title/meta; crawlable card links
---
 PROGRESS.md                                        |  99 ++++--
 data/manifest.json                                 | 394 +++------------------
 data/nginx/800wallpaper.com.conf                   |  21 --
 data/nginx/asseeninhotels.com.conf                 |   4 +-
 data/nginx/asseeninla.com.conf                     |   4 +-
 ...wallpapers.com.conf => asseeninmovies.com.conf} |   6 +-
 data/nginx/asseeninshowrooms.com.conf              |   4 +-
 data/nginx/barwallpaper.com.conf                   |   4 +-
 data/nginx/blankstocklining.com.conf               |   4 +-
 data/nginx/bleachfriendly.com.conf                 |   4 +-
 data/nginx/carmelwallpaper.com.conf                |   4 +-
 data/nginx/cfafabrics.com.conf                     |   4 +-
 data/nginx/classawallcovering.com.conf             |   4 +-
 data/nginx/commercialsalesreps.com.conf            |   4 +-
 data/nginx/commercialwallcovering.com.conf         |   4 +-
 data/nginx/commercialwalls.com.conf                |  21 --
 data/nginx/designerlaboratory.com.conf             |  21 --
 data/nginx/designermagnetics.com.conf              |   4 +-
 data/nginx/designerswallcovering.com.conf          |  21 --
 data/nginx/designerswallcoverings.com.conf         |  21 --
 data/nginx/designerswallpapers.com.conf            |  21 --
 data/nginx/designerwallcover.com.conf              |  21 --
 data/nginx/designerwallcovering.com.conf           |  21 --
 data/nginx/designerwallpaints.com.conf             |  21 --
 data/nginx/designerwalltiles.com.conf              |  21 --
 data/nginx/designwallcoverings.com.conf            |  21 --
 data/nginx/dwlosangeles.com.conf                   |  21 --
 data/nginx/etciemurals.com.conf                    |   4 +-
 data/nginx/fabricfridays.com.conf                  |   4 +-
 data/nginx/fireratedwallcovering.com.conf          |   4 +-
 data/nginx/flocked.org.conf                        |   4 +-
 data/nginx/grassclothwallcovering.com.conf         |   4 +-
 data/nginx/handmadewallcovering.com.conf           |   4 +-
 data/nginx/handmadewallpapers.com.conf             |  21 --
 data/nginx/handscreenedwallpaper.com.conf          |  21 --
 data/nginx/hollywoodwallcovering.com.conf          |   4 +-
 data/nginx/hospitalitysalesagency.com.conf         |   4 +-
 data/nginx/hospitalitysalesagents.com.conf         |  21 --
 data/nginx/hospitalitysalesreps.com.conf           |  21 --
 data/nginx/malibuwallpaper.com.conf                |   4 +-
 data/nginx/montereywallpaper.com.conf              |   4 +-
 data/nginx/naturalwalltextures.com.conf            |   4 +-
 data/nginx/patterndesignlab.com.conf               |   4 +-
 data/nginx/philliperomano.com.conf                 |   4 +-
 data/nginx/printmurals.com.conf                    |   4 +-
 data/nginx/restaurantfabrics.com.conf              |   4 +-
 data/nginx/restaurantmurals.com.conf               |   4 +-
 data/nginx/roomsettings.com.conf                   |   4 +-
 data/nginx/sheltermagazines.com.conf               |   4 +-
 data/nginx/specifywallpaper.com.conf               |   4 +-
 data/nginx/steveabramsdesigns.com.conf             |  21 --
 data/nginx/stevenabramsphotography.com.conf        |   4 +-
 data/nginx/thedesignerlaboratory.com.conf          |  21 --
 data/nginx/thehotelwallpaper.com.conf              |   4 +-
 data/nginx/traditionalwhimsy.com.conf              |   4 +-
 data/nginx/unitedstateswallpaper.com.conf          |   4 +-
 data/nginx/wallcovering.net.conf                   |   4 +-
 data/nginx/wallpaperexports.com.conf               |   4 +-
 data/nginx/wallpaperfromthe80s.com.conf            |   4 +-
 data/nginx/wallpaperny.com.conf                    |   4 +-
 data/nginx/wallpapernyc.com.conf                   |  21 --
 data/nginx/wallpaperpurchasing.com.conf            |   4 +-
 data/nginx/wallpaperweekly.com.conf                |   4 +-
 data/nginx/wc-01.com.conf                          |  21 --
 data/nginx/wc01wallcoverings.com.conf              |   4 +-
 data/nginx/wc01wallpaper.com.conf                  |  21 --
 ecosystem.config.js                                | 344 +++---------------
 scripts/deploy-fleet.sh                            |   2 +-
 scripts/gen-configs.js                             |  56 +--
 scripts/provision-ssl.sh                           |   2 +-
 server.js                                          |   8 +
 shared/render.js                                   | 105 +++++-
 sites/1800wallpapers.json                          |  32 --
 sites/800wallpaper.json                            |  32 --
 sites/asseeninhotels.json                          |   2 +-
 sites/asseeninla.json                              |   2 +-
 sites/asseeninmovies.json                          |  37 ++
 sites/asseeninshowrooms.json                       |   2 +-
 sites/barwallpaper.json                            |   2 +-
 sites/blankstocklining.json                        |   2 +-
 sites/bleachfriendly.json                          |   2 +-
 sites/carmelwallpaper.json                         |   2 +-
 sites/cfafabrics.json                              |   2 +-
 sites/classawallcovering.json                      |   2 +-
 sites/commercialsalesreps.json                     |   2 +-
 sites/commercialwallcovering.json                  |   2 +-
 sites/commercialwalls.json                         |  33 --
 sites/designerlaboratory.json                      |  32 --
 sites/designermagnetics.json                       |   2 +-
 sites/designerswallcovering.json                   |  32 --
 sites/designerswallcoverings.json                  |  32 --
 sites/designerswallpapers.json                     |  32 --
 sites/designerwallcover.json                       |  32 --
 sites/designerwallcovering.json                    |  32 --
 sites/designerwallpaints.json                      |  37 --
 sites/designerwalltiles.json                       |  35 --
 sites/designwallcoverings.json                     |  32 --
 sites/dwlosangeles.json                            |  32 --
 sites/etciemurals.json                             |   2 +-
 sites/fabricfridays.json                           |   2 +-
 sites/fireratedwallcovering.json                   |   2 +-
 sites/flocked.json                                 |   2 +-
 sites/grassclothwallcovering.json                  |   2 +-
 sites/handmadewallcovering.json                    |   2 +-
 sites/handmadewallpapers.json                      |  37 --
 sites/handscreenedwallpaper.json                   |  36 --
 sites/hollywoodwallcovering.json                   |   2 +-
 sites/hospitalitysalesagency.json                  |   2 +-
 sites/hospitalitysalesagents.json                  |  35 --
 sites/hospitalitysalesreps.json                    |  35 --
 sites/malibuwallpaper.json                         |   2 +-
 sites/montereywallpaper.json                       |   2 +-
 sites/naturalwalltextures.json                     |   2 +-
 sites/patterndesignlab.json                        |   2 +-
 sites/philliperomano.json                          |   2 +-
 sites/printmurals.json                             |   2 +-
 sites/restaurantfabrics.json                       |   2 +-
 sites/restaurantmurals.json                        |   2 +-
 sites/roomsettings.json                            |   2 +-
 sites/sheltermagazines.json                        |   2 +-
 sites/specifywallpaper.json                        |   2 +-
 sites/steveabramsdesigns.json                      |  32 --
 sites/stevenabramsphotography.json                 |   2 +-
 sites/thedesignerlaboratory.json                   |  32 --
 sites/thehotelwallpaper.json                       |   2 +-
 sites/traditionalwhimsy.json                       |   2 +-
 sites/unitedstateswallpaper.json                   |   2 +-
 sites/wallcovering.json                            |   2 +-
 sites/wallpaperexports.json                        |   2 +-
 sites/wallpaperfromthe80s.json                     |   2 +-
 sites/wallpaperny.json                             |   2 +-
 sites/wallpapernyc.json                            |  32 --
 sites/wallpaperpurchasing.json                     |   2 +-
 sites/wallpaperweekly.json                         |   2 +-
 sites/wc-01.json                                   |  34 --
 sites/wc01wallcoverings.json                       |   2 +-
 sites/wc01wallpaper.json                           |  34 --
 137 files changed, 473 insertions(+), 2005 deletions(-)

diff --git a/PROGRESS.md b/PROGRESS.md
index 5951b54..9566109 100644
--- a/PROGRESS.md
+++ b/PROGRESS.md
@@ -1,62 +1,101 @@
-# DW Domain Fleet — 66-domain standalone-storefront build
+# DW Domain Fleet — standalone-storefront build (44/22 SPLIT)
 
-Target: each of 66 domains currently 301-forwarding to designerwallcoverings.com
-becomes its own live, standalone, DW-spec storefront.
+## SCOPE CORRECTION — 2026-05-18 (dtd debate-panel, Option B)
+
+The original brief targeted all **66** domains. A dtd debate-panel ruled
+**SPLIT (Option B)**:
+
+- **BUILD 44** domains as standalone, DW-spec storefronts — these have
+  genuinely distinct search intent.
+- **KEEP 22** domains as **301 redirects** to designerwallcoverings.com —
+  near-duplicate typo/variant spellings or redundant cluster siblings.
+  Building them out = doorway-page / scaled-content-abuse SEO penalty risk.
+  Leave their existing forwarding in place. **No DNS change** for these 22.
+
+**Current build count: 44 domains.**
+
+### The 22 REDIRECT-ONLY domains (NOT built — leave 301 as-is)
+designerswallcovering.com · designerswallcoverings.com · designerswallpapers.com ·
+designerwallcover.com · designerwallcovering.com · designwallcoverings.com ·
+designerwallpaints.com · designerwalltiles.com · dwlosangeles.com ·
+designerlaboratory.com · thedesignerlaboratory.com · handmadewallpapers.com ·
+handscreenedwallpaper.com · hospitalitysalesagents.com · hospitalitysalesreps.com ·
+commercialwalls.com · 1800wallpapers.com · 800wallpaper.com · wallpapernyc.com ·
+wc01wallpaper.com · wc-01.com · steveabramsdesigns.com
 
 ## Architecture
 - **Shared parameterized codebase** at `~/Projects/dw-domain-fleet/`.
   One `server.js`; per-domain config under `sites/<slug>.json`; pm2 runs one
   instance per domain (`SITE` + `PORT` env). Catalog snapshot from live
-  `designerwallcoverings.com/products.json` → `data/catalog.json` (15,000 products).
+  `designerwallcoverings.com/products.json` → `data/catalog.json`.
 - 12 palettes × 4 font pairs → distinct visual identity per domain (anti-doorway-page).
-- `asseeninmovies` is NOT in the shared codebase — it has a pre-existing standalone
-  project at `~/Projects/asseeninmovies` (audit-and-bring-to-spec, tracked separately).
+- `asseeninmovies.com` is now built INSIDE the shared codebase (config
+  `sites/asseeninmovies.json`, port 9904) — the prior "separate project" plan
+  is superseded.
+
+## Two mandatory SEO must-dos (panel-required, on every one of the 44)
+1. **Curated subset + original copy.** Each site serves a niche-filtered slice
+   of the catalog (not the full catalog rendered identically) with original
+   per-site landing/category copy. Driven by `niche.pos/neg/types` in each
+   `sites/<slug>.json` + per-site `tagline`/`aboutCopy`/`metaDesc`. Domains
+   whose intent is geographic/editorial rather than product-category
+   (asseeninla, roomsettings, sheltermagazines, wallcovering, etc.) are
+   differentiated by original copy + per-site title/meta, not a product filter.
+2. **rel=canonical on every product page.** New `/product/:handle` route +
+   `render.productPage()`. `rel=canonical` points to the SKU's canonical home
+   on the main store (`designerwallcoverings.com/products/<handle>`), so shared
+   SKUs never compete with the main store or each other as duplicate content.
+   `<title>` + meta description are per-site-unique (carry the site name).
 
 ## Status legend
 BUILT = config + boot-test pass · DEPLOYED = live on Kamatera pm2 · DNS = A record cut to 45.61.58.125 · SSL = certbot done · VERIFIED = curl 200 own content
 
-## Fleet (65 shared + 1 separate)
+## Fleet (44 standalone builds)
 
 | # | Domain | BUILT | DEPLOYED | DNS | SSL | VERIFIED |
 |---|--------|-------|----------|-----|-----|----------|
 | exemplar | grassclothwallcovering.com | YES (local-verified) | pending | no | no | no |
-| 1-65 | all other shared-codebase domains | YES (65/65 boot-test) | pending | no | no | no |
-| sep | asseeninmovies.com | pre-existing project — audit pending | — | — | — | — |
+| 1-44 | all 44 build domains | YES (44/44 boot-test) | pending | no | no | no |
+
+Ports 9901–9944. App names `dwf-<slug>` in `ecosystem.config.js`.
 
 ## Done so far
 - dw-site-build skill read in full.
 - Shared codebase built: `server.js` + `shared/{catalog,sort,render}.js`.
-- Catalog pulled: 15,000 live DW products, 14,975 with images.
-- 65 per-domain configs generated (`sites/*.json`), each with distinct
-  palette/font/niche/copy. Boot-test: 65/65 pass, 0 thin niches.
-- Grasscloth exemplar verified locally on :9931 — hero rotation (11 slides),
-  Gucci nav, Enter CTA, sort+density grid w/ localStorage, ns-modal,
-  vendor scrubbed, 0 banned "wallpaper" words in editorial copy, valid JSON-LD.
-- pm2 `ecosystem.config.js` + 65 nginx vhosts generated.
-- DNS cutover script (`scripts/dns-cutover.js`) + SSL script + deploy script written.
+- Catalog pulled from live DW `/products.json`.
+- `gen-configs.js` SPEC table cut from 66 → 44 (22 redirect-only domains
+  documented in `REDIRECT_ONLY` array, not emitted as configs).
+- `asseeninmovies` config added (noir/bodoni, cinematic-statement niche).
+- 44 per-domain configs generated (`sites/*.json`); 22 stale configs deleted.
+  Boot-test: **44/44 pass**, 0 thin niches.
+- **SEO must-do #1** — niche curation + original copy: in place per-site.
+- **SEO must-do #2** — `/product/:handle` route + `render.productPage()`:
+  rel=canonical → main store, per-site-unique title/meta, Product JSON-LD.
+  Verified on grasscloth exemplar locally.
+- Product cards rewritten: `<div class=card>` wrapper (NOT `<a>`) with inner
+  `<a class=card-link>` → `/product/:handle` so every per-SKU page is crawlable.
+- Grasscloth exemplar verified locally — hero rotation, Gucci nav, Enter CTA,
+  sort+density grid w/ localStorage, vendor scrubbed, 0 banned "wallpaper"
+  words in editorial copy, valid JSON-LD, product page canonical correct.
+- pm2 `ecosystem.config.js` (44 apps) + 44 nginx vhosts regenerated.
+- DNS cutover script + SSL script + deploy script written.
 
 ## Each site ships (DW-spec)
-- Rotating hero (full-bleed crossfade ≥3 imgs, else 4-square) — `background-position:center 14%` auto-crop.
+- Rotating hero (full-bleed crossfade ≥3 imgs, else 4-square) — `background-position` auto-crop.
 - Gucci `≡ MENU` corner-nav UR · brand wordmark UL · centered-bottom Enter CTA.
-- Catalog grid: sort `<select>` (9 modes) + density range slider, both localStorage-persisted (`<slug>_sort`/`_density`).
+- Catalog grid: sort `<select>` (9 modes) + density range slider, both localStorage-persisted.
+- Per-SKU `/product/:handle` page — rel=canonical → main store, Product JSON-LD.
 - Dark/light toggle, anti-flash inline script.
-- ns-modal: chip click → full-details modal, vendor scrubbed to "Designer Wallcoverings".
 - Memo-sample CTA → `designerwallcoverings.com/products/{handle}#sample`.
 - helmet + CSP + rate-limit security baseline.
 - JSON-LD Organization + canonical + og/twitter meta.
 - Word "Wallpaper" banned in all EDITORIAL copy (tagline/about/meta/hero-sub).
-  Domain-stem brand wordmark (e.g. wallpaperny.com → "Wallpaper NY") kept as-is —
+  Domain-stem brand wordmark (e.g. wallpaperny.com → "Wallpaper NY") kept —
   the registered domain is the SEO asset.
 
 ## Remaining
-1. Deploy fleet to Kamatera (`scripts/deploy-fleet.sh`).
-2. DNS cutover in batches of ~10 (`scripts/dns-cutover.js --batch-n 10 --offset N`).
+1. Deploy 44-site fleet to Kamatera (`scripts/deploy-fleet.sh`).
+2. DNS cutover in batches of ~10 (`scripts/dns-cutover.js`) — **44 domains only;
+   the 22 redirect-only domains get NO DNS change**.
 3. SSL provision per batch after propagation (`scripts/provision-ssl.sh`).
 4. Smoke-test each batch (curl 200 + own content, not DW redirect).
-5. Audit asseeninmovies separately.
-
-## Doorway-page / SEO note
-See final report. Several near-duplicate general-catalog domains
-(designerwallcovering / designerwallcover / designwallcoverings /
-designerswallcovering(s)) carry real generic-keyword equity individually
-but as a CLUSTER risk thin-content flags. Recommendation surfaced in report.
diff --git a/data/manifest.json b/data/manifest.json
index 0530587..5bc6d8d 100644
--- a/data/manifest.json
+++ b/data/manifest.json
@@ -11,34 +11,10 @@
       ]
     }
   },
-  {
-    "slug": "1800wallpapers",
-    "domain": "1800wallpapers.com",
-    "port": 9902,
-    "palette": "noir",
-    "font": "playfair",
-    "niche": {
-      "types": [
-        "Wallcovering"
-      ]
-    }
-  },
-  {
-    "slug": "800wallpaper",
-    "domain": "800wallpaper.com",
-    "port": 9903,
-    "palette": "sand",
-    "font": "cormorant",
-    "niche": {
-      "types": [
-        "Wallcovering"
-      ]
-    }
-  },
   {
     "slug": "asseeninhotels",
     "domain": "asseeninhotels.com",
-    "port": 9904,
+    "port": 9902,
     "palette": "gilt",
     "font": "bodoni",
     "niche": {
@@ -53,7 +29,7 @@
   {
     "slug": "asseeninla",
     "domain": "asseeninla.com",
-    "port": 9905,
+    "port": 9903,
     "palette": "noir",
     "font": "playfair",
     "niche": {
@@ -62,10 +38,27 @@
       ]
     }
   },
+  {
+    "slug": "asseeninmovies",
+    "domain": "asseeninmovies.com",
+    "port": 9904,
+    "palette": "noir",
+    "font": "bodoni",
+    "niche": {
+      "pos": [
+        "dramatic",
+        "glamour",
+        "scenic",
+        "statement",
+        "mural",
+        "metallic"
+      ]
+    }
+  },
   {
     "slug": "asseeninshowrooms",
     "domain": "asseeninshowrooms.com",
-    "port": 9906,
+    "port": 9905,
     "palette": "slate",
     "font": "cormorant",
     "niche": {
@@ -77,7 +70,7 @@
   {
     "slug": "barwallpaper",
     "domain": "barwallpaper.com",
-    "port": 9907,
+    "port": 9906,
     "palette": "bordeaux",
     "font": "bodoni",
     "niche": {
@@ -93,7 +86,7 @@
   {
     "slug": "blankstocklining",
     "domain": "blankstocklining.com",
-    "port": 9908,
+    "port": 9907,
     "palette": "ink",
     "font": "georgia",
     "niche": {
@@ -112,7 +105,7 @@
   {
     "slug": "bleachfriendly",
     "domain": "bleachfriendly.com",
-    "port": 9909,
+    "port": 9908,
     "palette": "coastal",
     "font": "cormorant",
     "niche": {
@@ -128,7 +121,7 @@
   {
     "slug": "carmelwallpaper",
     "domain": "carmelwallpaper.com",
-    "port": 9910,
+    "port": 9909,
     "palette": "sage",
     "font": "cormorant",
     "niche": {
@@ -144,7 +137,7 @@
   {
     "slug": "cfafabrics",
     "domain": "cfafabrics.com",
-    "port": 9911,
+    "port": 9910,
     "palette": "blush",
     "font": "playfair",
     "niche": {
@@ -156,7 +149,7 @@
   {
     "slug": "classawallcovering",
     "domain": "classawallcovering.com",
-    "port": 9912,
+    "port": 9911,
     "palette": "slate",
     "font": "cormorant",
     "niche": {
@@ -171,7 +164,7 @@
   {
     "slug": "commercialsalesreps",
     "domain": "commercialsalesreps.com",
-    "port": 9913,
+    "port": 9912,
     "palette": "ink",
     "font": "georgia",
     "niche": {
@@ -184,7 +177,7 @@
   {
     "slug": "commercialwallcovering",
     "domain": "commercialwallcovering.com",
-    "port": 9914,
+    "port": 9913,
     "palette": "slate",
     "font": "cormorant",
     "niche": {
@@ -195,35 +188,10 @@
       ]
     }
   },
-  {
-    "slug": "commercialwalls",
-    "domain": "commercialwalls.com",
-    "port": 9915,
-    "palette": "ink",
-    "font": "georgia",
-    "niche": {
-      "pos": [
-        "commercial",
-        "contract"
-      ]
-    }
-  },
-  {
-    "slug": "designerlaboratory",
-    "domain": "designerlaboratory.com",
-    "port": 9916,
-    "palette": "ivory",
-    "font": "cormorant",
-    "niche": {
-      "types": [
-        "Wallcovering"
-      ]
-    }
-  },
   {
     "slug": "designermagnetics",
     "domain": "designermagnetics.com",
-    "port": 9917,
+    "port": 9914,
     "palette": "slate",
     "font": "bodoni",
     "niche": {
@@ -235,127 +203,10 @@
       ]
     }
   },
-  {
-    "slug": "designerswallcovering",
-    "domain": "designerswallcovering.com",
-    "port": 9918,
-    "palette": "ivory",
-    "font": "playfair",
-    "niche": {
-      "types": [
-        "Wallcovering"
-      ]
-    }
-  },
-  {
-    "slug": "designerswallcoverings",
-    "domain": "designerswallcoverings.com",
-    "port": 9919,
-    "palette": "noir",
-    "font": "cormorant",
-    "niche": {
-      "types": [
-        "Wallcovering"
-      ]
-    }
-  },
-  {
-    "slug": "designerswallpapers",
-    "domain": "designerswallpapers.com",
-    "port": 9920,
-    "palette": "sand",
-    "font": "playfair",
-    "niche": {
-      "types": [
-        "Wallcovering"
-      ]
-    }
-  },
-  {
-    "slug": "designerwallcover",
-    "domain": "designerwallcover.com",
-    "port": 9921,
-    "palette": "ivory",
-    "font": "cormorant",
-    "niche": {
-      "types": [
-        "Wallcovering"
-      ]
-    }
-  },
-  {
-    "slug": "designerwallcovering",
-    "domain": "designerwallcovering.com",
-    "port": 9922,
-    "palette": "noir",
-    "font": "bodoni",
-    "niche": {
-      "types": [
-        "Wallcovering"
-      ]
-    }
-  },
-  {
-    "slug": "designerwallpaints",
-    "domain": "designerwallpaints.com",
-    "port": 9923,
-    "palette": "blush",
-    "font": "cormorant",
-    "niche": {
-      "pos": [
-        "solid",
-        "paint",
-        "plain",
-        "texture"
-      ],
-      "neg": [
-        "display"
-      ]
-    }
-  },
-  {
-    "slug": "designerwalltiles",
-    "domain": "designerwalltiles.com",
-    "port": 9924,
-    "palette": "coastal",
-    "font": "bodoni",
-    "niche": {
-      "pos": [
-        "geometric",
-        "tile",
-        "pattern",
-        "mosaic"
-      ]
-    }
-  },
-  {
-    "slug": "designwallcoverings",
-    "domain": "designwallcoverings.com",
-    "port": 9925,
-    "palette": "ivory",
-    "font": "cormorant",
-    "niche": {
-      "types": [
-        "Wallcovering"
-      ]
-    }
-  },
-  {
-    "slug": "dwlosangeles",
-    "domain": "dwlosangeles.com",
-    "port": 9926,
-    "palette": "noir",
-    "font": "playfair",
-    "niche": {
-      "types": [
-        "Wallcovering"
-      ]
-    }
-  },
   {
     "slug": "etciemurals",
     "domain": "etciemurals.com",
-    "port": 9927,
+    "port": 9915,
     "palette": "plum",
     "font": "playfair",
     "niche": {
@@ -373,7 +224,7 @@
   {
     "slug": "fabricfridays",
     "domain": "fabricfridays.com",
-    "port": 9928,
+    "port": 9916,
     "palette": "blush",
     "font": "playfair",
     "niche": {
@@ -385,7 +236,7 @@
   {
     "slug": "fireratedwallcovering",
     "domain": "fireratedwallcovering.com",
-    "port": 9929,
+    "port": 9917,
     "palette": "slate",
     "font": "georgia",
     "niche": {
@@ -400,7 +251,7 @@
   {
     "slug": "flocked",
     "domain": "flocked.org",
-    "port": 9930,
+    "port": 9918,
     "palette": "bordeaux",
     "font": "bodoni",
     "niche": {
@@ -415,7 +266,7 @@
   {
     "slug": "grassclothwallcovering",
     "domain": "grassclothwallcovering.com",
-    "port": 9931,
+    "port": 9919,
     "palette": "sage",
     "font": "cormorant",
     "niche": {
@@ -430,7 +281,7 @@
   {
     "slug": "handmadewallcovering",
     "domain": "handmadewallcovering.com",
-    "port": 9932,
+    "port": 9920,
     "palette": "sand",
     "font": "cormorant",
     "niche": {
@@ -444,43 +295,10 @@
       ]
     }
   },
-  {
-    "slug": "handmadewallpapers",
-    "domain": "handmadewallpapers.com",
-    "port": 9933,
-    "palette": "sand",
-    "font": "playfair",
-    "niche": {
-      "pos": [
-        "grasscloth",
-        "sisal",
-        "jute",
-        "hand screen",
-        "handcraft",
-        "artisan"
-      ]
-    }
-  },
-  {
-    "slug": "handscreenedwallpaper",
-    "domain": "handscreenedwallpaper.com",
-    "port": 9934,
-    "palette": "plum",
-    "font": "cormorant",
-    "niche": {
-      "pos": [
-        "hand",
-        "screen",
-        "print",
-        "artisan",
-        "traditional"
-      ]
-    }
-  },
   {
     "slug": "hollywoodwallcovering",
     "domain": "hollywoodwallcovering.com",
-    "port": 9935,
+    "port": 9921,
     "palette": "gilt",
     "font": "bodoni",
     "niche": {
@@ -495,37 +313,7 @@
   {
     "slug": "hospitalitysalesagency",
     "domain": "hospitalitysalesagency.com",
-    "port": 9936,
-    "palette": "gilt",
-    "font": "georgia",
-    "niche": {
-      "pos": [
-        "hospitality",
-        "hotel",
-        "contract",
-        "commercial"
-      ]
-    }
-  },
-  {
-    "slug": "hospitalitysalesagents",
-    "domain": "hospitalitysalesagents.com",
-    "port": 9937,
-    "palette": "gilt",
-    "font": "georgia",
-    "niche": {
-      "pos": [
-        "hospitality",
-        "hotel",
-        "contract",
-        "commercial"
-      ]
-    }
-  },
-  {
-    "slug": "hospitalitysalesreps",
-    "domain": "hospitalitysalesreps.com",
-    "port": 9938,
+    "port": 9922,
     "palette": "gilt",
     "font": "georgia",
     "niche": {
@@ -540,7 +328,7 @@
   {
     "slug": "malibuwallpaper",
     "domain": "malibuwallpaper.com",
-    "port": 9939,
+    "port": 9923,
     "palette": "coastal",
     "font": "cormorant",
     "niche": {
@@ -556,7 +344,7 @@
   {
     "slug": "montereywallpaper",
     "domain": "montereywallpaper.com",
-    "port": 9940,
+    "port": 9924,
     "palette": "sage",
     "font": "cormorant",
     "niche": {
@@ -571,7 +359,7 @@
   {
     "slug": "naturalwalltextures",
     "domain": "naturalwalltextures.com",
-    "port": 9941,
+    "port": 9925,
     "palette": "sage",
     "font": "cormorant",
     "niche": {
@@ -589,7 +377,7 @@
   {
     "slug": "patterndesignlab",
     "domain": "patterndesignlab.com",
-    "port": 9942,
+    "port": 9926,
     "palette": "plum",
     "font": "playfair",
     "niche": {
@@ -604,7 +392,7 @@
   {
     "slug": "philliperomano",
     "domain": "philliperomano.com",
-    "port": 9943,
+    "port": 9927,
     "palette": "noir",
     "font": "bodoni",
     "niche": {
@@ -616,7 +404,7 @@
   {
     "slug": "printmurals",
     "domain": "printmurals.com",
-    "port": 9944,
+    "port": 9928,
     "palette": "plum",
     "font": "playfair",
     "niche": {
@@ -635,7 +423,7 @@
   {
     "slug": "restaurantfabrics",
     "domain": "restaurantfabrics.com",
-    "port": 9945,
+    "port": 9929,
     "palette": "bordeaux",
     "font": "playfair",
     "niche": {
@@ -647,7 +435,7 @@
   {
     "slug": "restaurantmurals",
     "domain": "restaurantmurals.com",
-    "port": 9946,
+    "port": 9930,
     "palette": "bordeaux",
     "font": "bodoni",
     "niche": {
@@ -665,7 +453,7 @@
   {
     "slug": "roomsettings",
     "domain": "roomsettings.com",
-    "port": 9947,
+    "port": 9931,
     "palette": "ivory",
     "font": "cormorant",
     "niche": {
@@ -677,7 +465,7 @@
   {
     "slug": "sheltermagazines",
     "domain": "sheltermagazines.com",
-    "port": 9948,
+    "port": 9932,
     "palette": "noir",
     "font": "playfair",
     "niche": {
@@ -689,7 +477,7 @@
   {
     "slug": "specifywallpaper",
     "domain": "specifywallpaper.com",
-    "port": 9949,
+    "port": 9933,
     "palette": "slate",
     "font": "georgia",
     "niche": {
@@ -701,22 +489,10 @@
       ]
     }
   },
-  {
-    "slug": "steveabramsdesigns",
-    "domain": "steveabramsdesigns.com",
-    "port": 9950,
-    "palette": "ink",
-    "font": "bodoni",
-    "niche": {
-      "types": [
-        "Wallcovering"
-      ]
-    }
-  },
   {
     "slug": "stevenabramsphotography",
     "domain": "stevenabramsphotography.com",
-    "port": 9951,
+    "port": 9934,
     "palette": "ink",
     "font": "playfair",
     "niche": {
@@ -725,22 +501,10 @@
       ]
     }
   },
-  {
-    "slug": "thedesignerlaboratory",
-    "domain": "thedesignerlaboratory.com",
-    "port": 9952,
-    "palette": "ivory",
-    "font": "cormorant",
-    "niche": {
-      "types": [
-        "Wallcovering"
-      ]
-    }
-  },
   {
     "slug": "thehotelwallpaper",
     "domain": "thehotelwallpaper.com",
-    "port": 9953,
+    "port": 9935,
     "palette": "gilt",
     "font": "bodoni",
     "niche": {
@@ -755,7 +519,7 @@
   {
     "slug": "traditionalwhimsy",
     "domain": "traditionalwhimsy.com",
-    "port": 9954,
+    "port": 9936,
     "palette": "blush",
     "font": "playfair",
     "niche": {
@@ -771,7 +535,7 @@
   {
     "slug": "unitedstateswallpaper",
     "domain": "unitedstateswallpaper.com",
-    "port": 9955,
+    "port": 9937,
     "palette": "slate",
     "font": "georgia",
     "niche": {
@@ -783,7 +547,7 @@
   {
     "slug": "wallcovering",
     "domain": "wallcovering.net",
-    "port": 9956,
+    "port": 9938,
     "palette": "ivory",
     "font": "cormorant",
     "niche": {
@@ -795,7 +559,7 @@
   {
     "slug": "wallpaperexports",
     "domain": "wallpaperexports.com",
-    "port": 9957,
+    "port": 9939,
     "palette": "sand",
     "font": "georgia",
     "niche": {
@@ -807,7 +571,7 @@
   {
     "slug": "wallpaperfromthe80s",
     "domain": "wallpaperfromthe80s.com",
-    "port": 9958,
+    "port": 9940,
     "palette": "plum",
     "font": "bodoni",
     "niche": {
@@ -823,7 +587,7 @@
   {
     "slug": "wallpaperny",
     "domain": "wallpaperny.com",
-    "port": 9959,
+    "port": 9941,
     "palette": "ink",
     "font": "bodoni",
     "niche": {
@@ -832,22 +596,10 @@
       ]
     }
   },
-  {
-    "slug": "wallpapernyc",
-    "domain": "wallpapernyc.com",
-    "port": 9960,
-    "palette": "noir",
-    "font": "playfair",
-    "niche": {
-      "types": [
-        "Wallcovering"
-      ]
-    }
-  },
   {
     "slug": "wallpaperpurchasing",
     "domain": "wallpaperpurchasing.com",
-    "port": 9961,
+    "port": 9942,
     "palette": "slate",
     "font": "georgia",
     "niche": {
@@ -860,7 +612,7 @@
   {
     "slug": "wallpaperweekly",
     "domain": "wallpaperweekly.com",
-    "port": 9962,
+    "port": 9943,
     "palette": "ivory",
     "font": "playfair",
     "niche": {
@@ -869,24 +621,10 @@
       ]
     }
   },
-  {
-    "slug": "wc-01",
-    "domain": "wc-01.com",
-    "port": 9963,
-    "palette": "ink",
-    "font": "georgia",
-    "niche": {
-      "pos": [
-        "commercial",
-        "contract",
-        "class a"
-      ]
-    }
-  },
   {
     "slug": "wc01wallcoverings",
     "domain": "wc01wallcoverings.com",
-    "port": 9964,
+    "port": 9944,
     "palette": "slate",
     "font": "georgia",
     "niche": {
@@ -896,19 +634,5 @@
         "class a"
       ]
     }
-  },
-  {
-    "slug": "wc01wallpaper",
-    "domain": "wc01wallpaper.com",
-    "port": 9965,
-    "palette": "ink",
-    "font": "georgia",
-    "niche": {
-      "pos": [
-        "commercial",
-        "contract",
-        "class a"
-      ]
-    }
   }
 ]
\ No newline at end of file
diff --git a/data/nginx/800wallpaper.com.conf b/data/nginx/800wallpaper.com.conf
deleted file mode 100644
index a331979..0000000
--- a/data/nginx/800wallpaper.com.conf
+++ /dev/null
@@ -1,21 +0,0 @@
-# 800wallpaper.com — dwf-800wallpaper :9903
-server {
-    listen 80;
-    listen [::]:80;
-    server_name 800wallpaper.com www.800wallpaper.com;
-
-    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
-    add_header X-Frame-Options SAMEORIGIN always;
-    add_header X-Content-Type-Options nosniff always;
-    add_header Referrer-Policy strict-origin-when-cross-origin always;
-    add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
-    add_header Cross-Origin-Opener-Policy same-origin always;
-    location / {
-        proxy_pass http://127.0.0.1:9903;
-        proxy_http_version 1.1;
-        proxy_set_header Host $host;
-        proxy_set_header X-Real-IP $remote_addr;
-        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-        proxy_set_header X-Forwarded-Proto $scheme;
-    }
-}
diff --git a/data/nginx/asseeninhotels.com.conf b/data/nginx/asseeninhotels.com.conf
index 74a7999..adc36b3 100644
--- a/data/nginx/asseeninhotels.com.conf
+++ b/data/nginx/asseeninhotels.com.conf
@@ -1,4 +1,4 @@
-# asseeninhotels.com — dwf-asseeninhotels :9904
+# asseeninhotels.com — dwf-asseeninhotels :9902
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9904;
+        proxy_pass http://127.0.0.1:9902;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/asseeninla.com.conf b/data/nginx/asseeninla.com.conf
index 0750a1e..1f60e8e 100644
--- a/data/nginx/asseeninla.com.conf
+++ b/data/nginx/asseeninla.com.conf
@@ -1,4 +1,4 @@
-# asseeninla.com — dwf-asseeninla :9905
+# asseeninla.com — dwf-asseeninla :9903
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9905;
+        proxy_pass http://127.0.0.1:9903;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/1800wallpapers.com.conf b/data/nginx/asseeninmovies.com.conf
similarity index 82%
rename from data/nginx/1800wallpapers.com.conf
rename to data/nginx/asseeninmovies.com.conf
index cf06e66..4d794e6 100644
--- a/data/nginx/1800wallpapers.com.conf
+++ b/data/nginx/asseeninmovies.com.conf
@@ -1,8 +1,8 @@
-# 1800wallpapers.com — dwf-1800wallpapers :9902
+# asseeninmovies.com — dwf-asseeninmovies :9904
 server {
     listen 80;
     listen [::]:80;
-    server_name 1800wallpapers.com www.1800wallpapers.com;
+    server_name asseeninmovies.com www.asseeninmovies.com;
 
     add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
     add_header X-Frame-Options SAMEORIGIN always;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9902;
+        proxy_pass http://127.0.0.1:9904;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/asseeninshowrooms.com.conf b/data/nginx/asseeninshowrooms.com.conf
index 3340019..c27cb4d 100644
--- a/data/nginx/asseeninshowrooms.com.conf
+++ b/data/nginx/asseeninshowrooms.com.conf
@@ -1,4 +1,4 @@
-# asseeninshowrooms.com — dwf-asseeninshowrooms :9906
+# asseeninshowrooms.com — dwf-asseeninshowrooms :9905
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9906;
+        proxy_pass http://127.0.0.1:9905;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/barwallpaper.com.conf b/data/nginx/barwallpaper.com.conf
index 3e12d96..299e0ff 100644
--- a/data/nginx/barwallpaper.com.conf
+++ b/data/nginx/barwallpaper.com.conf
@@ -1,4 +1,4 @@
-# barwallpaper.com — dwf-barwallpaper :9907
+# barwallpaper.com — dwf-barwallpaper :9906
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9907;
+        proxy_pass http://127.0.0.1:9906;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/blankstocklining.com.conf b/data/nginx/blankstocklining.com.conf
index 7333837..e70a044 100644
--- a/data/nginx/blankstocklining.com.conf
+++ b/data/nginx/blankstocklining.com.conf
@@ -1,4 +1,4 @@
-# blankstocklining.com — dwf-blankstocklining :9908
+# blankstocklining.com — dwf-blankstocklining :9907
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9908;
+        proxy_pass http://127.0.0.1:9907;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/bleachfriendly.com.conf b/data/nginx/bleachfriendly.com.conf
index abd7a05..9347a84 100644
--- a/data/nginx/bleachfriendly.com.conf
+++ b/data/nginx/bleachfriendly.com.conf
@@ -1,4 +1,4 @@
-# bleachfriendly.com — dwf-bleachfriendly :9909
+# bleachfriendly.com — dwf-bleachfriendly :9908
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9909;
+        proxy_pass http://127.0.0.1:9908;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/carmelwallpaper.com.conf b/data/nginx/carmelwallpaper.com.conf
index 4eb6ba6..d0ab539 100644
--- a/data/nginx/carmelwallpaper.com.conf
+++ b/data/nginx/carmelwallpaper.com.conf
@@ -1,4 +1,4 @@
-# carmelwallpaper.com — dwf-carmelwallpaper :9910
+# carmelwallpaper.com — dwf-carmelwallpaper :9909
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9910;
+        proxy_pass http://127.0.0.1:9909;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/cfafabrics.com.conf b/data/nginx/cfafabrics.com.conf
index 584978c..a149948 100644
--- a/data/nginx/cfafabrics.com.conf
+++ b/data/nginx/cfafabrics.com.conf
@@ -1,4 +1,4 @@
-# cfafabrics.com — dwf-cfafabrics :9911
+# cfafabrics.com — dwf-cfafabrics :9910
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9911;
+        proxy_pass http://127.0.0.1:9910;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/classawallcovering.com.conf b/data/nginx/classawallcovering.com.conf
index b0b6e18..bc2817b 100644
--- a/data/nginx/classawallcovering.com.conf
+++ b/data/nginx/classawallcovering.com.conf
@@ -1,4 +1,4 @@
-# classawallcovering.com — dwf-classawallcovering :9912
+# classawallcovering.com — dwf-classawallcovering :9911
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9912;
+        proxy_pass http://127.0.0.1:9911;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/commercialsalesreps.com.conf b/data/nginx/commercialsalesreps.com.conf
index 8d869d4..5b578f2 100644
--- a/data/nginx/commercialsalesreps.com.conf
+++ b/data/nginx/commercialsalesreps.com.conf
@@ -1,4 +1,4 @@
-# commercialsalesreps.com — dwf-commercialsalesreps :9913
+# commercialsalesreps.com — dwf-commercialsalesreps :9912
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9913;
+        proxy_pass http://127.0.0.1:9912;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/commercialwallcovering.com.conf b/data/nginx/commercialwallcovering.com.conf
index fe1d2d9..dfc26ed 100644
--- a/data/nginx/commercialwallcovering.com.conf
+++ b/data/nginx/commercialwallcovering.com.conf
@@ -1,4 +1,4 @@
-# commercialwallcovering.com — dwf-commercialwallcovering :9914
+# commercialwallcovering.com — dwf-commercialwallcovering :9913
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9914;
+        proxy_pass http://127.0.0.1:9913;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/commercialwalls.com.conf b/data/nginx/commercialwalls.com.conf
deleted file mode 100644
index dae744e..0000000
--- a/data/nginx/commercialwalls.com.conf
+++ /dev/null
@@ -1,21 +0,0 @@
-# commercialwalls.com — dwf-commercialwalls :9915
-server {
-    listen 80;
-    listen [::]:80;
-    server_name commercialwalls.com www.commercialwalls.com;
-
-    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
-    add_header X-Frame-Options SAMEORIGIN always;
-    add_header X-Content-Type-Options nosniff always;
-    add_header Referrer-Policy strict-origin-when-cross-origin always;
-    add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
-    add_header Cross-Origin-Opener-Policy same-origin always;
-    location / {
-        proxy_pass http://127.0.0.1:9915;
-        proxy_http_version 1.1;
-        proxy_set_header Host $host;
-        proxy_set_header X-Real-IP $remote_addr;
-        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-        proxy_set_header X-Forwarded-Proto $scheme;
-    }
-}
diff --git a/data/nginx/designerlaboratory.com.conf b/data/nginx/designerlaboratory.com.conf
deleted file mode 100644
index 787df61..0000000
--- a/data/nginx/designerlaboratory.com.conf
+++ /dev/null
@@ -1,21 +0,0 @@
-# designerlaboratory.com — dwf-designerlaboratory :9916
-server {
-    listen 80;
-    listen [::]:80;
-    server_name designerlaboratory.com www.designerlaboratory.com;
-
-    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
-    add_header X-Frame-Options SAMEORIGIN always;
-    add_header X-Content-Type-Options nosniff always;
-    add_header Referrer-Policy strict-origin-when-cross-origin always;
-    add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
-    add_header Cross-Origin-Opener-Policy same-origin always;
-    location / {
-        proxy_pass http://127.0.0.1:9916;
-        proxy_http_version 1.1;
-        proxy_set_header Host $host;
-        proxy_set_header X-Real-IP $remote_addr;
-        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-        proxy_set_header X-Forwarded-Proto $scheme;
-    }
-}
diff --git a/data/nginx/designermagnetics.com.conf b/data/nginx/designermagnetics.com.conf
index 2f7df31..0b60d34 100644
--- a/data/nginx/designermagnetics.com.conf
+++ b/data/nginx/designermagnetics.com.conf
@@ -1,4 +1,4 @@
-# designermagnetics.com — dwf-designermagnetics :9917
+# designermagnetics.com — dwf-designermagnetics :9914
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9917;
+        proxy_pass http://127.0.0.1:9914;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/designerswallcovering.com.conf b/data/nginx/designerswallcovering.com.conf
deleted file mode 100644
index 378c01a..0000000
--- a/data/nginx/designerswallcovering.com.conf
+++ /dev/null
@@ -1,21 +0,0 @@
-# designerswallcovering.com — dwf-designerswallcovering :9918
-server {
-    listen 80;
-    listen [::]:80;
-    server_name designerswallcovering.com www.designerswallcovering.com;
-
-    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
-    add_header X-Frame-Options SAMEORIGIN always;
-    add_header X-Content-Type-Options nosniff always;
-    add_header Referrer-Policy strict-origin-when-cross-origin always;
-    add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
-    add_header Cross-Origin-Opener-Policy same-origin always;
-    location / {
-        proxy_pass http://127.0.0.1:9918;
-        proxy_http_version 1.1;
-        proxy_set_header Host $host;
-        proxy_set_header X-Real-IP $remote_addr;
-        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-        proxy_set_header X-Forwarded-Proto $scheme;
-    }
-}
diff --git a/data/nginx/designerswallcoverings.com.conf b/data/nginx/designerswallcoverings.com.conf
deleted file mode 100644
index cd6ddbb..0000000
--- a/data/nginx/designerswallcoverings.com.conf
+++ /dev/null
@@ -1,21 +0,0 @@
-# designerswallcoverings.com — dwf-designerswallcoverings :9919
-server {
-    listen 80;
-    listen [::]:80;
-    server_name designerswallcoverings.com www.designerswallcoverings.com;
-
-    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
-    add_header X-Frame-Options SAMEORIGIN always;
-    add_header X-Content-Type-Options nosniff always;
-    add_header Referrer-Policy strict-origin-when-cross-origin always;
-    add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
-    add_header Cross-Origin-Opener-Policy same-origin always;
-    location / {
-        proxy_pass http://127.0.0.1:9919;
-        proxy_http_version 1.1;
-        proxy_set_header Host $host;
-        proxy_set_header X-Real-IP $remote_addr;
-        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-        proxy_set_header X-Forwarded-Proto $scheme;
-    }
-}
diff --git a/data/nginx/designerswallpapers.com.conf b/data/nginx/designerswallpapers.com.conf
deleted file mode 100644
index 59bfea1..0000000
--- a/data/nginx/designerswallpapers.com.conf
+++ /dev/null
@@ -1,21 +0,0 @@
-# designerswallpapers.com — dwf-designerswallpapers :9920
-server {
-    listen 80;
-    listen [::]:80;
-    server_name designerswallpapers.com www.designerswallpapers.com;
-
-    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
-    add_header X-Frame-Options SAMEORIGIN always;
-    add_header X-Content-Type-Options nosniff always;
-    add_header Referrer-Policy strict-origin-when-cross-origin always;
-    add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
-    add_header Cross-Origin-Opener-Policy same-origin always;
-    location / {
-        proxy_pass http://127.0.0.1:9920;
-        proxy_http_version 1.1;
-        proxy_set_header Host $host;
-        proxy_set_header X-Real-IP $remote_addr;
-        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-        proxy_set_header X-Forwarded-Proto $scheme;
-    }
-}
diff --git a/data/nginx/designerwallcover.com.conf b/data/nginx/designerwallcover.com.conf
deleted file mode 100644
index ae18cb2..0000000
--- a/data/nginx/designerwallcover.com.conf
+++ /dev/null
@@ -1,21 +0,0 @@
-# designerwallcover.com — dwf-designerwallcover :9921
-server {
-    listen 80;
-    listen [::]:80;
-    server_name designerwallcover.com www.designerwallcover.com;
-
-    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
-    add_header X-Frame-Options SAMEORIGIN always;
-    add_header X-Content-Type-Options nosniff always;
-    add_header Referrer-Policy strict-origin-when-cross-origin always;
-    add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
-    add_header Cross-Origin-Opener-Policy same-origin always;
-    location / {
-        proxy_pass http://127.0.0.1:9921;
-        proxy_http_version 1.1;
-        proxy_set_header Host $host;
-        proxy_set_header X-Real-IP $remote_addr;
-        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-        proxy_set_header X-Forwarded-Proto $scheme;
-    }
-}
diff --git a/data/nginx/designerwallcovering.com.conf b/data/nginx/designerwallcovering.com.conf
deleted file mode 100644
index 78be8b8..0000000
--- a/data/nginx/designerwallcovering.com.conf
+++ /dev/null
@@ -1,21 +0,0 @@
-# designerwallcovering.com — dwf-designerwallcovering :9922
-server {
-    listen 80;
-    listen [::]:80;
-    server_name designerwallcovering.com www.designerwallcovering.com;
-
-    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
-    add_header X-Frame-Options SAMEORIGIN always;
-    add_header X-Content-Type-Options nosniff always;
-    add_header Referrer-Policy strict-origin-when-cross-origin always;
-    add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
-    add_header Cross-Origin-Opener-Policy same-origin always;
-    location / {
-        proxy_pass http://127.0.0.1:9922;
-        proxy_http_version 1.1;
-        proxy_set_header Host $host;
-        proxy_set_header X-Real-IP $remote_addr;
-        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-        proxy_set_header X-Forwarded-Proto $scheme;
-    }
-}
diff --git a/data/nginx/designerwallpaints.com.conf b/data/nginx/designerwallpaints.com.conf
deleted file mode 100644
index 9ea6481..0000000
--- a/data/nginx/designerwallpaints.com.conf
+++ /dev/null
@@ -1,21 +0,0 @@
-# designerwallpaints.com — dwf-designerwallpaints :9923
-server {
-    listen 80;
-    listen [::]:80;
-    server_name designerwallpaints.com www.designerwallpaints.com;
-
-    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
-    add_header X-Frame-Options SAMEORIGIN always;
-    add_header X-Content-Type-Options nosniff always;
-    add_header Referrer-Policy strict-origin-when-cross-origin always;
-    add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
-    add_header Cross-Origin-Opener-Policy same-origin always;
-    location / {
-        proxy_pass http://127.0.0.1:9923;
-        proxy_http_version 1.1;
-        proxy_set_header Host $host;
-        proxy_set_header X-Real-IP $remote_addr;
-        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-        proxy_set_header X-Forwarded-Proto $scheme;
-    }
-}
diff --git a/data/nginx/designerwalltiles.com.conf b/data/nginx/designerwalltiles.com.conf
deleted file mode 100644
index 266493f..0000000
--- a/data/nginx/designerwalltiles.com.conf
+++ /dev/null
@@ -1,21 +0,0 @@
-# designerwalltiles.com — dwf-designerwalltiles :9924
-server {
-    listen 80;
-    listen [::]:80;
-    server_name designerwalltiles.com www.designerwalltiles.com;
-
-    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
-    add_header X-Frame-Options SAMEORIGIN always;
-    add_header X-Content-Type-Options nosniff always;
-    add_header Referrer-Policy strict-origin-when-cross-origin always;
-    add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
-    add_header Cross-Origin-Opener-Policy same-origin always;
-    location / {
-        proxy_pass http://127.0.0.1:9924;
-        proxy_http_version 1.1;
-        proxy_set_header Host $host;
-        proxy_set_header X-Real-IP $remote_addr;
-        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-        proxy_set_header X-Forwarded-Proto $scheme;
-    }
-}
diff --git a/data/nginx/designwallcoverings.com.conf b/data/nginx/designwallcoverings.com.conf
deleted file mode 100644
index 6e23c0b..0000000
--- a/data/nginx/designwallcoverings.com.conf
+++ /dev/null
@@ -1,21 +0,0 @@
-# designwallcoverings.com — dwf-designwallcoverings :9925
-server {
-    listen 80;
-    listen [::]:80;
-    server_name designwallcoverings.com www.designwallcoverings.com;
-
-    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
-    add_header X-Frame-Options SAMEORIGIN always;
-    add_header X-Content-Type-Options nosniff always;
-    add_header Referrer-Policy strict-origin-when-cross-origin always;
-    add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
-    add_header Cross-Origin-Opener-Policy same-origin always;
-    location / {
-        proxy_pass http://127.0.0.1:9925;
-        proxy_http_version 1.1;
-        proxy_set_header Host $host;
-        proxy_set_header X-Real-IP $remote_addr;
-        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-        proxy_set_header X-Forwarded-Proto $scheme;
-    }
-}
diff --git a/data/nginx/dwlosangeles.com.conf b/data/nginx/dwlosangeles.com.conf
deleted file mode 100644
index 4af37cb..0000000
--- a/data/nginx/dwlosangeles.com.conf
+++ /dev/null
@@ -1,21 +0,0 @@
-# dwlosangeles.com — dwf-dwlosangeles :9926
-server {
-    listen 80;
-    listen [::]:80;
-    server_name dwlosangeles.com www.dwlosangeles.com;
-
-    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
-    add_header X-Frame-Options SAMEORIGIN always;
-    add_header X-Content-Type-Options nosniff always;
-    add_header Referrer-Policy strict-origin-when-cross-origin always;
-    add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
-    add_header Cross-Origin-Opener-Policy same-origin always;
-    location / {
-        proxy_pass http://127.0.0.1:9926;
-        proxy_http_version 1.1;
-        proxy_set_header Host $host;
-        proxy_set_header X-Real-IP $remote_addr;
-        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-        proxy_set_header X-Forwarded-Proto $scheme;
-    }
-}
diff --git a/data/nginx/etciemurals.com.conf b/data/nginx/etciemurals.com.conf
index 5b8e8c1..d4a52d4 100644
--- a/data/nginx/etciemurals.com.conf
+++ b/data/nginx/etciemurals.com.conf
@@ -1,4 +1,4 @@
-# etciemurals.com — dwf-etciemurals :9927
+# etciemurals.com — dwf-etciemurals :9915
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9927;
+        proxy_pass http://127.0.0.1:9915;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/fabricfridays.com.conf b/data/nginx/fabricfridays.com.conf
index 15e82e0..7556780 100644
--- a/data/nginx/fabricfridays.com.conf
+++ b/data/nginx/fabricfridays.com.conf
@@ -1,4 +1,4 @@
-# fabricfridays.com — dwf-fabricfridays :9928
+# fabricfridays.com — dwf-fabricfridays :9916
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9928;
+        proxy_pass http://127.0.0.1:9916;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/fireratedwallcovering.com.conf b/data/nginx/fireratedwallcovering.com.conf
index f687ce4..a20da0d 100644
--- a/data/nginx/fireratedwallcovering.com.conf
+++ b/data/nginx/fireratedwallcovering.com.conf
@@ -1,4 +1,4 @@
-# fireratedwallcovering.com — dwf-fireratedwallcovering :9929
+# fireratedwallcovering.com — dwf-fireratedwallcovering :9917
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9929;
+        proxy_pass http://127.0.0.1:9917;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/flocked.org.conf b/data/nginx/flocked.org.conf
index 341eb33..67a5a1f 100644
--- a/data/nginx/flocked.org.conf
+++ b/data/nginx/flocked.org.conf
@@ -1,4 +1,4 @@
-# flocked.org — dwf-flocked :9930
+# flocked.org — dwf-flocked :9918
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9930;
+        proxy_pass http://127.0.0.1:9918;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/grassclothwallcovering.com.conf b/data/nginx/grassclothwallcovering.com.conf
index ad390e1..97b943b 100644
--- a/data/nginx/grassclothwallcovering.com.conf
+++ b/data/nginx/grassclothwallcovering.com.conf
@@ -1,4 +1,4 @@
-# grassclothwallcovering.com — dwf-grassclothwallcovering :9931
+# grassclothwallcovering.com — dwf-grassclothwallcovering :9919
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9931;
+        proxy_pass http://127.0.0.1:9919;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/handmadewallcovering.com.conf b/data/nginx/handmadewallcovering.com.conf
index ed3b689..c8cbd7a 100644
--- a/data/nginx/handmadewallcovering.com.conf
+++ b/data/nginx/handmadewallcovering.com.conf
@@ -1,4 +1,4 @@
-# handmadewallcovering.com — dwf-handmadewallcovering :9932
+# handmadewallcovering.com — dwf-handmadewallcovering :9920
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9932;
+        proxy_pass http://127.0.0.1:9920;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/handmadewallpapers.com.conf b/data/nginx/handmadewallpapers.com.conf
deleted file mode 100644
index 95745d5..0000000
--- a/data/nginx/handmadewallpapers.com.conf
+++ /dev/null
@@ -1,21 +0,0 @@
-# handmadewallpapers.com — dwf-handmadewallpapers :9933
-server {
-    listen 80;
-    listen [::]:80;
-    server_name handmadewallpapers.com www.handmadewallpapers.com;
-
-    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
-    add_header X-Frame-Options SAMEORIGIN always;
-    add_header X-Content-Type-Options nosniff always;
-    add_header Referrer-Policy strict-origin-when-cross-origin always;
-    add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
-    add_header Cross-Origin-Opener-Policy same-origin always;
-    location / {
-        proxy_pass http://127.0.0.1:9933;
-        proxy_http_version 1.1;
-        proxy_set_header Host $host;
-        proxy_set_header X-Real-IP $remote_addr;
-        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-        proxy_set_header X-Forwarded-Proto $scheme;
-    }
-}
diff --git a/data/nginx/handscreenedwallpaper.com.conf b/data/nginx/handscreenedwallpaper.com.conf
deleted file mode 100644
index 4ecffea..0000000
--- a/data/nginx/handscreenedwallpaper.com.conf
+++ /dev/null
@@ -1,21 +0,0 @@
-# handscreenedwallpaper.com — dwf-handscreenedwallpaper :9934
-server {
-    listen 80;
-    listen [::]:80;
-    server_name handscreenedwallpaper.com www.handscreenedwallpaper.com;
-
-    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
-    add_header X-Frame-Options SAMEORIGIN always;
-    add_header X-Content-Type-Options nosniff always;
-    add_header Referrer-Policy strict-origin-when-cross-origin always;
-    add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
-    add_header Cross-Origin-Opener-Policy same-origin always;
-    location / {
-        proxy_pass http://127.0.0.1:9934;
-        proxy_http_version 1.1;
-        proxy_set_header Host $host;
-        proxy_set_header X-Real-IP $remote_addr;
-        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-        proxy_set_header X-Forwarded-Proto $scheme;
-    }
-}
diff --git a/data/nginx/hollywoodwallcovering.com.conf b/data/nginx/hollywoodwallcovering.com.conf
index 9919959..d7b01bb 100644
--- a/data/nginx/hollywoodwallcovering.com.conf
+++ b/data/nginx/hollywoodwallcovering.com.conf
@@ -1,4 +1,4 @@
-# hollywoodwallcovering.com — dwf-hollywoodwallcovering :9935
+# hollywoodwallcovering.com — dwf-hollywoodwallcovering :9921
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9935;
+        proxy_pass http://127.0.0.1:9921;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/hospitalitysalesagency.com.conf b/data/nginx/hospitalitysalesagency.com.conf
index 3112676..6655ed1 100644
--- a/data/nginx/hospitalitysalesagency.com.conf
+++ b/data/nginx/hospitalitysalesagency.com.conf
@@ -1,4 +1,4 @@
-# hospitalitysalesagency.com — dwf-hospitalitysalesagency :9936
+# hospitalitysalesagency.com — dwf-hospitalitysalesagency :9922
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9936;
+        proxy_pass http://127.0.0.1:9922;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/hospitalitysalesagents.com.conf b/data/nginx/hospitalitysalesagents.com.conf
deleted file mode 100644
index e624759..0000000
--- a/data/nginx/hospitalitysalesagents.com.conf
+++ /dev/null
@@ -1,21 +0,0 @@
-# hospitalitysalesagents.com — dwf-hospitalitysalesagents :9937
-server {
-    listen 80;
-    listen [::]:80;
-    server_name hospitalitysalesagents.com www.hospitalitysalesagents.com;
-
-    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
-    add_header X-Frame-Options SAMEORIGIN always;
-    add_header X-Content-Type-Options nosniff always;
-    add_header Referrer-Policy strict-origin-when-cross-origin always;
-    add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
-    add_header Cross-Origin-Opener-Policy same-origin always;
-    location / {
-        proxy_pass http://127.0.0.1:9937;
-        proxy_http_version 1.1;
-        proxy_set_header Host $host;
-        proxy_set_header X-Real-IP $remote_addr;
-        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-        proxy_set_header X-Forwarded-Proto $scheme;
-    }
-}
diff --git a/data/nginx/hospitalitysalesreps.com.conf b/data/nginx/hospitalitysalesreps.com.conf
deleted file mode 100644
index 2fad2c3..0000000
--- a/data/nginx/hospitalitysalesreps.com.conf
+++ /dev/null
@@ -1,21 +0,0 @@
-# hospitalitysalesreps.com — dwf-hospitalitysalesreps :9938
-server {
-    listen 80;
-    listen [::]:80;
-    server_name hospitalitysalesreps.com www.hospitalitysalesreps.com;
-
-    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
-    add_header X-Frame-Options SAMEORIGIN always;
-    add_header X-Content-Type-Options nosniff always;
-    add_header Referrer-Policy strict-origin-when-cross-origin always;
-    add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
-    add_header Cross-Origin-Opener-Policy same-origin always;
-    location / {
-        proxy_pass http://127.0.0.1:9938;
-        proxy_http_version 1.1;
-        proxy_set_header Host $host;
-        proxy_set_header X-Real-IP $remote_addr;
-        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-        proxy_set_header X-Forwarded-Proto $scheme;
-    }
-}
diff --git a/data/nginx/malibuwallpaper.com.conf b/data/nginx/malibuwallpaper.com.conf
index 42fc89d..02ce9af 100644
--- a/data/nginx/malibuwallpaper.com.conf
+++ b/data/nginx/malibuwallpaper.com.conf
@@ -1,4 +1,4 @@
-# malibuwallpaper.com — dwf-malibuwallpaper :9939
+# malibuwallpaper.com — dwf-malibuwallpaper :9923
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9939;
+        proxy_pass http://127.0.0.1:9923;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/montereywallpaper.com.conf b/data/nginx/montereywallpaper.com.conf
index 285342f..7bc6f15 100644
--- a/data/nginx/montereywallpaper.com.conf
+++ b/data/nginx/montereywallpaper.com.conf
@@ -1,4 +1,4 @@
-# montereywallpaper.com — dwf-montereywallpaper :9940
+# montereywallpaper.com — dwf-montereywallpaper :9924
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9940;
+        proxy_pass http://127.0.0.1:9924;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/naturalwalltextures.com.conf b/data/nginx/naturalwalltextures.com.conf
index 4d3e7bc..e7194f6 100644
--- a/data/nginx/naturalwalltextures.com.conf
+++ b/data/nginx/naturalwalltextures.com.conf
@@ -1,4 +1,4 @@
-# naturalwalltextures.com — dwf-naturalwalltextures :9941
+# naturalwalltextures.com — dwf-naturalwalltextures :9925
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9941;
+        proxy_pass http://127.0.0.1:9925;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/patterndesignlab.com.conf b/data/nginx/patterndesignlab.com.conf
index 07622a3..4ef5d37 100644
--- a/data/nginx/patterndesignlab.com.conf
+++ b/data/nginx/patterndesignlab.com.conf
@@ -1,4 +1,4 @@
-# patterndesignlab.com — dwf-patterndesignlab :9942
+# patterndesignlab.com — dwf-patterndesignlab :9926
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9942;
+        proxy_pass http://127.0.0.1:9926;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/philliperomano.com.conf b/data/nginx/philliperomano.com.conf
index 94de1cb..1a5a910 100644
--- a/data/nginx/philliperomano.com.conf
+++ b/data/nginx/philliperomano.com.conf
@@ -1,4 +1,4 @@
-# philliperomano.com — dwf-philliperomano :9943
+# philliperomano.com — dwf-philliperomano :9927
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9943;
+        proxy_pass http://127.0.0.1:9927;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/printmurals.com.conf b/data/nginx/printmurals.com.conf
index eeb34ad..cbc8530 100644
--- a/data/nginx/printmurals.com.conf
+++ b/data/nginx/printmurals.com.conf
@@ -1,4 +1,4 @@
-# printmurals.com — dwf-printmurals :9944
+# printmurals.com — dwf-printmurals :9928
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9944;
+        proxy_pass http://127.0.0.1:9928;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/restaurantfabrics.com.conf b/data/nginx/restaurantfabrics.com.conf
index e052166..537b5ae 100644
--- a/data/nginx/restaurantfabrics.com.conf
+++ b/data/nginx/restaurantfabrics.com.conf
@@ -1,4 +1,4 @@
-# restaurantfabrics.com — dwf-restaurantfabrics :9945
+# restaurantfabrics.com — dwf-restaurantfabrics :9929
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9945;
+        proxy_pass http://127.0.0.1:9929;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/restaurantmurals.com.conf b/data/nginx/restaurantmurals.com.conf
index 03c11f5..c4db36c 100644
--- a/data/nginx/restaurantmurals.com.conf
+++ b/data/nginx/restaurantmurals.com.conf
@@ -1,4 +1,4 @@
-# restaurantmurals.com — dwf-restaurantmurals :9946
+# restaurantmurals.com — dwf-restaurantmurals :9930
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9946;
+        proxy_pass http://127.0.0.1:9930;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/roomsettings.com.conf b/data/nginx/roomsettings.com.conf
index 79ebb04..88468f0 100644
--- a/data/nginx/roomsettings.com.conf
+++ b/data/nginx/roomsettings.com.conf
@@ -1,4 +1,4 @@
-# roomsettings.com — dwf-roomsettings :9947
+# roomsettings.com — dwf-roomsettings :9931
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9947;
+        proxy_pass http://127.0.0.1:9931;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/sheltermagazines.com.conf b/data/nginx/sheltermagazines.com.conf
index c5543ec..c759173 100644
--- a/data/nginx/sheltermagazines.com.conf
+++ b/data/nginx/sheltermagazines.com.conf
@@ -1,4 +1,4 @@
-# sheltermagazines.com — dwf-sheltermagazines :9948
+# sheltermagazines.com — dwf-sheltermagazines :9932
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9948;
+        proxy_pass http://127.0.0.1:9932;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/specifywallpaper.com.conf b/data/nginx/specifywallpaper.com.conf
index cf5c1b7..81b81f4 100644
--- a/data/nginx/specifywallpaper.com.conf
+++ b/data/nginx/specifywallpaper.com.conf
@@ -1,4 +1,4 @@
-# specifywallpaper.com — dwf-specifywallpaper :9949
+# specifywallpaper.com — dwf-specifywallpaper :9933
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9949;
+        proxy_pass http://127.0.0.1:9933;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/steveabramsdesigns.com.conf b/data/nginx/steveabramsdesigns.com.conf
deleted file mode 100644
index 68b19c1..0000000
--- a/data/nginx/steveabramsdesigns.com.conf
+++ /dev/null
@@ -1,21 +0,0 @@
-# steveabramsdesigns.com — dwf-steveabramsdesigns :9950
-server {
-    listen 80;
-    listen [::]:80;
-    server_name steveabramsdesigns.com www.steveabramsdesigns.com;
-
-    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
-    add_header X-Frame-Options SAMEORIGIN always;
-    add_header X-Content-Type-Options nosniff always;
-    add_header Referrer-Policy strict-origin-when-cross-origin always;
-    add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
-    add_header Cross-Origin-Opener-Policy same-origin always;
-    location / {
-        proxy_pass http://127.0.0.1:9950;
-        proxy_http_version 1.1;
-        proxy_set_header Host $host;
-        proxy_set_header X-Real-IP $remote_addr;
-        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-        proxy_set_header X-Forwarded-Proto $scheme;
-    }
-}
diff --git a/data/nginx/stevenabramsphotography.com.conf b/data/nginx/stevenabramsphotography.com.conf
index dae0012..1c2e0d0 100644
--- a/data/nginx/stevenabramsphotography.com.conf
+++ b/data/nginx/stevenabramsphotography.com.conf
@@ -1,4 +1,4 @@
-# stevenabramsphotography.com — dwf-stevenabramsphotography :9951
+# stevenabramsphotography.com — dwf-stevenabramsphotography :9934
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9951;
+        proxy_pass http://127.0.0.1:9934;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/thedesignerlaboratory.com.conf b/data/nginx/thedesignerlaboratory.com.conf
deleted file mode 100644
index 1729257..0000000
--- a/data/nginx/thedesignerlaboratory.com.conf
+++ /dev/null
@@ -1,21 +0,0 @@
-# thedesignerlaboratory.com — dwf-thedesignerlaboratory :9952
-server {
-    listen 80;
-    listen [::]:80;
-    server_name thedesignerlaboratory.com www.thedesignerlaboratory.com;
-
-    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
-    add_header X-Frame-Options SAMEORIGIN always;
-    add_header X-Content-Type-Options nosniff always;
-    add_header Referrer-Policy strict-origin-when-cross-origin always;
-    add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
-    add_header Cross-Origin-Opener-Policy same-origin always;
-    location / {
-        proxy_pass http://127.0.0.1:9952;
-        proxy_http_version 1.1;
-        proxy_set_header Host $host;
-        proxy_set_header X-Real-IP $remote_addr;
-        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-        proxy_set_header X-Forwarded-Proto $scheme;
-    }
-}
diff --git a/data/nginx/thehotelwallpaper.com.conf b/data/nginx/thehotelwallpaper.com.conf
index 234305e..2fcebf9 100644
--- a/data/nginx/thehotelwallpaper.com.conf
+++ b/data/nginx/thehotelwallpaper.com.conf
@@ -1,4 +1,4 @@
-# thehotelwallpaper.com — dwf-thehotelwallpaper :9953
+# thehotelwallpaper.com — dwf-thehotelwallpaper :9935
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9953;
+        proxy_pass http://127.0.0.1:9935;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/traditionalwhimsy.com.conf b/data/nginx/traditionalwhimsy.com.conf
index f464700..9cc8344 100644
--- a/data/nginx/traditionalwhimsy.com.conf
+++ b/data/nginx/traditionalwhimsy.com.conf
@@ -1,4 +1,4 @@
-# traditionalwhimsy.com — dwf-traditionalwhimsy :9954
+# traditionalwhimsy.com — dwf-traditionalwhimsy :9936
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9954;
+        proxy_pass http://127.0.0.1:9936;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/unitedstateswallpaper.com.conf b/data/nginx/unitedstateswallpaper.com.conf
index 0ec4716..481c2be 100644
--- a/data/nginx/unitedstateswallpaper.com.conf
+++ b/data/nginx/unitedstateswallpaper.com.conf
@@ -1,4 +1,4 @@
-# unitedstateswallpaper.com — dwf-unitedstateswallpaper :9955
+# unitedstateswallpaper.com — dwf-unitedstateswallpaper :9937
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9955;
+        proxy_pass http://127.0.0.1:9937;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/wallcovering.net.conf b/data/nginx/wallcovering.net.conf
index d92902d..51b3bb2 100644
--- a/data/nginx/wallcovering.net.conf
+++ b/data/nginx/wallcovering.net.conf
@@ -1,4 +1,4 @@
-# wallcovering.net — dwf-wallcovering :9956
+# wallcovering.net — dwf-wallcovering :9938
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9956;
+        proxy_pass http://127.0.0.1:9938;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/wallpaperexports.com.conf b/data/nginx/wallpaperexports.com.conf
index c754ea7..1f49dc7 100644
--- a/data/nginx/wallpaperexports.com.conf
+++ b/data/nginx/wallpaperexports.com.conf
@@ -1,4 +1,4 @@
-# wallpaperexports.com — dwf-wallpaperexports :9957
+# wallpaperexports.com — dwf-wallpaperexports :9939
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9957;
+        proxy_pass http://127.0.0.1:9939;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/wallpaperfromthe80s.com.conf b/data/nginx/wallpaperfromthe80s.com.conf
index 0200d72..a760120 100644
--- a/data/nginx/wallpaperfromthe80s.com.conf
+++ b/data/nginx/wallpaperfromthe80s.com.conf
@@ -1,4 +1,4 @@
-# wallpaperfromthe80s.com — dwf-wallpaperfromthe80s :9958
+# wallpaperfromthe80s.com — dwf-wallpaperfromthe80s :9940
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9958;
+        proxy_pass http://127.0.0.1:9940;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/wallpaperny.com.conf b/data/nginx/wallpaperny.com.conf
index 96c90cc..377654d 100644
--- a/data/nginx/wallpaperny.com.conf
+++ b/data/nginx/wallpaperny.com.conf
@@ -1,4 +1,4 @@
-# wallpaperny.com — dwf-wallpaperny :9959
+# wallpaperny.com — dwf-wallpaperny :9941
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9959;
+        proxy_pass http://127.0.0.1:9941;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/wallpapernyc.com.conf b/data/nginx/wallpapernyc.com.conf
deleted file mode 100644
index 6270c47..0000000
--- a/data/nginx/wallpapernyc.com.conf
+++ /dev/null
@@ -1,21 +0,0 @@
-# wallpapernyc.com — dwf-wallpapernyc :9960
-server {
-    listen 80;
-    listen [::]:80;
-    server_name wallpapernyc.com www.wallpapernyc.com;
-
-    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
-    add_header X-Frame-Options SAMEORIGIN always;
-    add_header X-Content-Type-Options nosniff always;
-    add_header Referrer-Policy strict-origin-when-cross-origin always;
-    add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
-    add_header Cross-Origin-Opener-Policy same-origin always;
-    location / {
-        proxy_pass http://127.0.0.1:9960;
-        proxy_http_version 1.1;
-        proxy_set_header Host $host;
-        proxy_set_header X-Real-IP $remote_addr;
-        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-        proxy_set_header X-Forwarded-Proto $scheme;
-    }
-}
diff --git a/data/nginx/wallpaperpurchasing.com.conf b/data/nginx/wallpaperpurchasing.com.conf
index b3702ea..94c8367 100644
--- a/data/nginx/wallpaperpurchasing.com.conf
+++ b/data/nginx/wallpaperpurchasing.com.conf
@@ -1,4 +1,4 @@
-# wallpaperpurchasing.com — dwf-wallpaperpurchasing :9961
+# wallpaperpurchasing.com — dwf-wallpaperpurchasing :9942
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9961;
+        proxy_pass http://127.0.0.1:9942;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/wallpaperweekly.com.conf b/data/nginx/wallpaperweekly.com.conf
index 1907216..85da2a7 100644
--- a/data/nginx/wallpaperweekly.com.conf
+++ b/data/nginx/wallpaperweekly.com.conf
@@ -1,4 +1,4 @@
-# wallpaperweekly.com — dwf-wallpaperweekly :9962
+# wallpaperweekly.com — dwf-wallpaperweekly :9943
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9962;
+        proxy_pass http://127.0.0.1:9943;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/wc-01.com.conf b/data/nginx/wc-01.com.conf
deleted file mode 100644
index 167cbe4..0000000
--- a/data/nginx/wc-01.com.conf
+++ /dev/null
@@ -1,21 +0,0 @@
-# wc-01.com — dwf-wc-01 :9963
-server {
-    listen 80;
-    listen [::]:80;
-    server_name wc-01.com www.wc-01.com;
-
-    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
-    add_header X-Frame-Options SAMEORIGIN always;
-    add_header X-Content-Type-Options nosniff always;
-    add_header Referrer-Policy strict-origin-when-cross-origin always;
-    add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
-    add_header Cross-Origin-Opener-Policy same-origin always;
-    location / {
-        proxy_pass http://127.0.0.1:9963;
-        proxy_http_version 1.1;
-        proxy_set_header Host $host;
-        proxy_set_header X-Real-IP $remote_addr;
-        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-        proxy_set_header X-Forwarded-Proto $scheme;
-    }
-}
diff --git a/data/nginx/wc01wallcoverings.com.conf b/data/nginx/wc01wallcoverings.com.conf
index 08de261..8dd4d5b 100644
--- a/data/nginx/wc01wallcoverings.com.conf
+++ b/data/nginx/wc01wallcoverings.com.conf
@@ -1,4 +1,4 @@
-# wc01wallcoverings.com — dwf-wc01wallcoverings :9964
+# wc01wallcoverings.com — dwf-wc01wallcoverings :9944
 server {
     listen 80;
     listen [::]:80;
@@ -11,7 +11,7 @@ server {
     add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
     add_header Cross-Origin-Opener-Policy same-origin always;
     location / {
-        proxy_pass http://127.0.0.1:9964;
+        proxy_pass http://127.0.0.1:9944;
         proxy_http_version 1.1;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
diff --git a/data/nginx/wc01wallpaper.com.conf b/data/nginx/wc01wallpaper.com.conf
deleted file mode 100644
index dfc3e94..0000000
--- a/data/nginx/wc01wallpaper.com.conf
+++ /dev/null
@@ -1,21 +0,0 @@
-# wc01wallpaper.com — dwf-wc01wallpaper :9965
-server {
-    listen 80;
-    listen [::]:80;
-    server_name wc01wallpaper.com www.wc01wallpaper.com;
-
-    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
-    add_header X-Frame-Options SAMEORIGIN always;
-    add_header X-Content-Type-Options nosniff always;
-    add_header Referrer-Policy strict-origin-when-cross-origin always;
-    add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
-    add_header Cross-Origin-Opener-Policy same-origin always;
-    location / {
-        proxy_pass http://127.0.0.1:9965;
-        proxy_http_version 1.1;
-        proxy_set_header Host $host;
-        proxy_set_header X-Real-IP $remote_addr;
-        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-        proxy_set_header X-Forwarded-Proto $scheme;
-    }
-}
diff --git a/ecosystem.config.js b/ecosystem.config.js
index 331e9e0..28494bd 100644
--- a/ecosystem.config.js
+++ b/ecosystem.config.js
@@ -13,11 +13,11 @@ module.exports = {
       "autorestart": true
     },
     {
-      "name": "dwf-1800wallpapers",
+      "name": "dwf-asseeninhotels",
       "script": "server.js",
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
-        "SITE": "1800wallpapers",
+        "SITE": "asseeninhotels",
         "PORT": "9902",
         "NODE_ENV": "production"
       },
@@ -25,11 +25,11 @@ module.exports = {
       "autorestart": true
     },
     {
-      "name": "dwf-800wallpaper",
+      "name": "dwf-asseeninla",
       "script": "server.js",
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
-        "SITE": "800wallpaper",
+        "SITE": "asseeninla",
         "PORT": "9903",
         "NODE_ENV": "production"
       },
@@ -37,36 +37,24 @@ module.exports = {
       "autorestart": true
     },
     {
-      "name": "dwf-asseeninhotels",
+      "name": "dwf-asseeninmovies",
       "script": "server.js",
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
-        "SITE": "asseeninhotels",
+        "SITE": "asseeninmovies",
         "PORT": "9904",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
       "autorestart": true
     },
-    {
-      "name": "dwf-asseeninla",
-      "script": "server.js",
-      "cwd": "/root/public-projects/dw-domain-fleet",
-      "env": {
-        "SITE": "asseeninla",
-        "PORT": "9905",
-        "NODE_ENV": "production"
-      },
-      "max_memory_restart": "180M",
-      "autorestart": true
-    },
     {
       "name": "dwf-asseeninshowrooms",
       "script": "server.js",
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "asseeninshowrooms",
-        "PORT": "9906",
+        "PORT": "9905",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -78,7 +66,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "barwallpaper",
-        "PORT": "9907",
+        "PORT": "9906",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -90,7 +78,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "blankstocklining",
-        "PORT": "9908",
+        "PORT": "9907",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -102,7 +90,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "bleachfriendly",
-        "PORT": "9909",
+        "PORT": "9908",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -114,7 +102,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "carmelwallpaper",
-        "PORT": "9910",
+        "PORT": "9909",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -126,7 +114,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "cfafabrics",
-        "PORT": "9911",
+        "PORT": "9910",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -138,7 +126,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "classawallcovering",
-        "PORT": "9912",
+        "PORT": "9911",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -150,7 +138,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "commercialsalesreps",
-        "PORT": "9913",
+        "PORT": "9912",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -162,31 +150,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "commercialwallcovering",
-        "PORT": "9914",
-        "NODE_ENV": "production"
-      },
-      "max_memory_restart": "180M",
-      "autorestart": true
-    },
-    {
-      "name": "dwf-commercialwalls",
-      "script": "server.js",
-      "cwd": "/root/public-projects/dw-domain-fleet",
-      "env": {
-        "SITE": "commercialwalls",
-        "PORT": "9915",
-        "NODE_ENV": "production"
-      },
-      "max_memory_restart": "180M",
-      "autorestart": true
-    },
-    {
-      "name": "dwf-designerlaboratory",
-      "script": "server.js",
-      "cwd": "/root/public-projects/dw-domain-fleet",
-      "env": {
-        "SITE": "designerlaboratory",
-        "PORT": "9916",
+        "PORT": "9913",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -198,115 +162,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "designermagnetics",
-        "PORT": "9917",
-        "NODE_ENV": "production"
-      },
-      "max_memory_restart": "180M",
-      "autorestart": true
-    },
-    {
-      "name": "dwf-designerswallcovering",
-      "script": "server.js",
-      "cwd": "/root/public-projects/dw-domain-fleet",
-      "env": {
-        "SITE": "designerswallcovering",
-        "PORT": "9918",
-        "NODE_ENV": "production"
-      },
-      "max_memory_restart": "180M",
-      "autorestart": true
-    },
-    {
-      "name": "dwf-designerswallcoverings",
-      "script": "server.js",
-      "cwd": "/root/public-projects/dw-domain-fleet",
-      "env": {
-        "SITE": "designerswallcoverings",
-        "PORT": "9919",
-        "NODE_ENV": "production"
-      },
-      "max_memory_restart": "180M",
-      "autorestart": true
-    },
-    {
-      "name": "dwf-designerswallpapers",
-      "script": "server.js",
-      "cwd": "/root/public-projects/dw-domain-fleet",
-      "env": {
-        "SITE": "designerswallpapers",
-        "PORT": "9920",
-        "NODE_ENV": "production"
-      },
-      "max_memory_restart": "180M",
-      "autorestart": true
-    },
-    {
-      "name": "dwf-designerwallcover",
-      "script": "server.js",
-      "cwd": "/root/public-projects/dw-domain-fleet",
-      "env": {
-        "SITE": "designerwallcover",
-        "PORT": "9921",
-        "NODE_ENV": "production"
-      },
-      "max_memory_restart": "180M",
-      "autorestart": true
-    },
-    {
-      "name": "dwf-designerwallcovering",
-      "script": "server.js",
-      "cwd": "/root/public-projects/dw-domain-fleet",
-      "env": {
-        "SITE": "designerwallcovering",
-        "PORT": "9922",
-        "NODE_ENV": "production"
-      },
-      "max_memory_restart": "180M",
-      "autorestart": true
-    },
-    {
-      "name": "dwf-designerwallpaints",
-      "script": "server.js",
-      "cwd": "/root/public-projects/dw-domain-fleet",
-      "env": {
-        "SITE": "designerwallpaints",
-        "PORT": "9923",
-        "NODE_ENV": "production"
-      },
-      "max_memory_restart": "180M",
-      "autorestart": true
-    },
-    {
-      "name": "dwf-designerwalltiles",
-      "script": "server.js",
-      "cwd": "/root/public-projects/dw-domain-fleet",
-      "env": {
-        "SITE": "designerwalltiles",
-        "PORT": "9924",
-        "NODE_ENV": "production"
-      },
-      "max_memory_restart": "180M",
-      "autorestart": true
-    },
-    {
-      "name": "dwf-designwallcoverings",
-      "script": "server.js",
-      "cwd": "/root/public-projects/dw-domain-fleet",
-      "env": {
-        "SITE": "designwallcoverings",
-        "PORT": "9925",
-        "NODE_ENV": "production"
-      },
-      "max_memory_restart": "180M",
-      "autorestart": true
-    },
-    {
-      "name": "dwf-dwlosangeles",
-      "script": "server.js",
-      "cwd": "/root/public-projects/dw-domain-fleet",
-      "env": {
-        "SITE": "dwlosangeles",
-        "PORT": "9926",
+        "PORT": "9914",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -318,7 +174,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "etciemurals",
-        "PORT": "9927",
+        "PORT": "9915",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -330,7 +186,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "fabricfridays",
-        "PORT": "9928",
+        "PORT": "9916",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -342,7 +198,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "fireratedwallcovering",
-        "PORT": "9929",
+        "PORT": "9917",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -354,7 +210,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "flocked",
-        "PORT": "9930",
+        "PORT": "9918",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -366,7 +222,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "grassclothwallcovering",
-        "PORT": "9931",
+        "PORT": "9919",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -378,31 +234,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "handmadewallcovering",
-        "PORT": "9932",
-        "NODE_ENV": "production"
-      },
-      "max_memory_restart": "180M",
-      "autorestart": true
-    },
-    {
-      "name": "dwf-handmadewallpapers",
-      "script": "server.js",
-      "cwd": "/root/public-projects/dw-domain-fleet",
-      "env": {
-        "SITE": "handmadewallpapers",
-        "PORT": "9933",
-        "NODE_ENV": "production"
-      },
-      "max_memory_restart": "180M",
-      "autorestart": true
-    },
-    {
-      "name": "dwf-handscreenedwallpaper",
-      "script": "server.js",
-      "cwd": "/root/public-projects/dw-domain-fleet",
-      "env": {
-        "SITE": "handscreenedwallpaper",
-        "PORT": "9934",
+        "PORT": "9920",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -414,7 +246,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "hollywoodwallcovering",
-        "PORT": "9935",
+        "PORT": "9921",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -426,31 +258,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "hospitalitysalesagency",
-        "PORT": "9936",
-        "NODE_ENV": "production"
-      },
-      "max_memory_restart": "180M",
-      "autorestart": true
-    },
-    {
-      "name": "dwf-hospitalitysalesagents",
-      "script": "server.js",
-      "cwd": "/root/public-projects/dw-domain-fleet",
-      "env": {
-        "SITE": "hospitalitysalesagents",
-        "PORT": "9937",
-        "NODE_ENV": "production"
-      },
-      "max_memory_restart": "180M",
-      "autorestart": true
-    },
-    {
-      "name": "dwf-hospitalitysalesreps",
-      "script": "server.js",
-      "cwd": "/root/public-projects/dw-domain-fleet",
-      "env": {
-        "SITE": "hospitalitysalesreps",
-        "PORT": "9938",
+        "PORT": "9922",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -462,7 +270,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "malibuwallpaper",
-        "PORT": "9939",
+        "PORT": "9923",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -474,7 +282,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "montereywallpaper",
-        "PORT": "9940",
+        "PORT": "9924",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -486,7 +294,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "naturalwalltextures",
-        "PORT": "9941",
+        "PORT": "9925",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -498,7 +306,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "patterndesignlab",
-        "PORT": "9942",
+        "PORT": "9926",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -510,7 +318,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "philliperomano",
-        "PORT": "9943",
+        "PORT": "9927",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -522,7 +330,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "printmurals",
-        "PORT": "9944",
+        "PORT": "9928",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -534,7 +342,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "restaurantfabrics",
-        "PORT": "9945",
+        "PORT": "9929",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -546,7 +354,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "restaurantmurals",
-        "PORT": "9946",
+        "PORT": "9930",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -558,7 +366,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "roomsettings",
-        "PORT": "9947",
+        "PORT": "9931",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -570,7 +378,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "sheltermagazines",
-        "PORT": "9948",
+        "PORT": "9932",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -582,19 +390,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "specifywallpaper",
-        "PORT": "9949",
-        "NODE_ENV": "production"
-      },
-      "max_memory_restart": "180M",
-      "autorestart": true
-    },
-    {
-      "name": "dwf-steveabramsdesigns",
-      "script": "server.js",
-      "cwd": "/root/public-projects/dw-domain-fleet",
-      "env": {
-        "SITE": "steveabramsdesigns",
-        "PORT": "9950",
+        "PORT": "9933",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -606,19 +402,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "stevenabramsphotography",
-        "PORT": "9951",
-        "NODE_ENV": "production"
-      },
-      "max_memory_restart": "180M",
-      "autorestart": true
-    },
-    {
-      "name": "dwf-thedesignerlaboratory",
-      "script": "server.js",
-      "cwd": "/root/public-projects/dw-domain-fleet",
-      "env": {
-        "SITE": "thedesignerlaboratory",
-        "PORT": "9952",
+        "PORT": "9934",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -630,7 +414,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "thehotelwallpaper",
-        "PORT": "9953",
+        "PORT": "9935",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -642,7 +426,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "traditionalwhimsy",
-        "PORT": "9954",
+        "PORT": "9936",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -654,7 +438,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "unitedstateswallpaper",
-        "PORT": "9955",
+        "PORT": "9937",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -666,7 +450,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "wallcovering",
-        "PORT": "9956",
+        "PORT": "9938",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -678,7 +462,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "wallpaperexports",
-        "PORT": "9957",
+        "PORT": "9939",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -690,7 +474,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "wallpaperfromthe80s",
-        "PORT": "9958",
+        "PORT": "9940",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -702,19 +486,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "wallpaperny",
-        "PORT": "9959",
-        "NODE_ENV": "production"
-      },
-      "max_memory_restart": "180M",
-      "autorestart": true
-    },
-    {
-      "name": "dwf-wallpapernyc",
-      "script": "server.js",
-      "cwd": "/root/public-projects/dw-domain-fleet",
-      "env": {
-        "SITE": "wallpapernyc",
-        "PORT": "9960",
+        "PORT": "9941",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -726,7 +498,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "wallpaperpurchasing",
-        "PORT": "9961",
+        "PORT": "9942",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -738,19 +510,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "wallpaperweekly",
-        "PORT": "9962",
-        "NODE_ENV": "production"
-      },
-      "max_memory_restart": "180M",
-      "autorestart": true
-    },
-    {
-      "name": "dwf-wc-01",
-      "script": "server.js",
-      "cwd": "/root/public-projects/dw-domain-fleet",
-      "env": {
-        "SITE": "wc-01",
-        "PORT": "9963",
+        "PORT": "9943",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
@@ -762,19 +522,7 @@ module.exports = {
       "cwd": "/root/public-projects/dw-domain-fleet",
       "env": {
         "SITE": "wc01wallcoverings",
-        "PORT": "9964",
-        "NODE_ENV": "production"
-      },
-      "max_memory_restart": "180M",
-      "autorestart": true
-    },
-    {
-      "name": "dwf-wc01wallpaper",
-      "script": "server.js",
-      "cwd": "/root/public-projects/dw-domain-fleet",
-      "env": {
-        "SITE": "wc01wallpaper",
-        "PORT": "9965",
+        "PORT": "9944",
         "NODE_ENV": "production"
       },
       "max_memory_restart": "180M",
diff --git a/scripts/deploy-fleet.sh b/scripts/deploy-fleet.sh
index 8e10964..2be8fef 100755
--- a/scripts/deploy-fleet.sh
+++ b/scripts/deploy-fleet.sh
@@ -1,5 +1,5 @@
 #!/usr/bin/env bash
-# deploy-fleet.sh — push dw-domain-fleet to Kamatera, install, pm2 start all 65,
+# deploy-fleet.sh — push dw-domain-fleet to Kamatera, install, pm2 start all 44,
 # install nginx vhosts (HTTP only — certbot adds 443 after DNS cutover).
 set -euo pipefail
 
diff --git a/scripts/gen-configs.js b/scripts/gen-configs.js
index 2b2b2dc..f08a7dc 100644
--- a/scripts/gen-configs.js
+++ b/scripts/gen-configs.js
@@ -37,14 +37,25 @@ const FONTS = {
 // niche filter shorthand → {pos,neg,types}
 function W(t){return ['Wallcovering'];}
 
-// ---- the 66 domains: slug, palette, font, niche, copy ----
-// niche.pos = any-match keywords; neg = exclude; types = product_type filter
+// ---- the 44 BUILD domains: slug, palette, font, niche, copy ----
+//
+// SCOPE: a dtd debate-panel ruled SPLIT (Option B) on 2026-05-18. Of the
+// original 66 fleet domains, 22 near-duplicate/typo-variant domains stay as
+// 301 redirects to designerwallcoverings.com (doorway-page SEO risk if built
+// out) and are NOT in this table. The 44 below have genuinely distinct search
+// intent and get standalone sites.
+//
+// niche.pos = any-match keywords; neg = exclude; types = product_type filter.
+// SEO MUST-DO #1: every site serves a CURATED SUBSET (niche filter) with
+// original per-site copy — never the full shared catalog rendered identically.
+// Domains whose intent is geographic/editorial rather than product-category
+// (asseeninla, roomsettings, etc.) are differentiated by original landing copy
+// + per-site title/meta + rel=canonical, not by a product filter.
 const SPEC = [
   ['1800wallcoverings',   'ivory',   'cormorant', {types:W()},                              'Designer wallcoverings for every room.'],
-  ['1800wallpapers',      'noir',    'playfair',  {types:W()},                              'A complete designer wallcovering catalog.'],
-  ['800wallpaper',        'sand',    'cormorant', {types:W()},                              'Designer wallcoverings, one call away.'],
   ['asseeninhotels',      'gilt',    'bodoni',    {pos:['hospitality','hotel','contract','commercial']}, 'Wallcoverings seen in the world\'s finest hotels.'],
   ['asseeninla',          'noir',    'playfair',  {types:W()},                              'The wallcoverings of Los Angeles design.'],
+  ['asseeninmovies',      'noir',    'bodoni',    {pos:['dramatic','glamour','scenic','statement','mural','metallic']}, 'Wallcoverings seen on the silver screen.'],
   ['asseeninshowrooms',   'slate',   'cormorant', {types:W()},                              'Showroom-grade wallcoverings, direct to the trade.'],
   ['barwallpaper',        'bordeaux','bodoni',    {pos:['bar','hospitality','dark','dramatic','jewel']}, 'Dramatic wallcoverings for bars and lounges.'],
   ['blankstocklining',    'ink',     'georgia',   {pos:['liner','blank','lining','solid','paper'],neg:['display']}, 'Liner and blankstock for a flawless finish.'],
@@ -54,30 +65,15 @@ const SPEC = [
   ['classawallcovering',  'slate',   'cormorant', {pos:['class a','fire rated','commercial','contract']}, 'Class A fire-rated wallcoverings.'],
   ['commercialsalesreps', 'ink',     'georgia',   {pos:['commercial','contract']},          'Commercial wallcoverings and trade representation.'],
   ['commercialwallcovering','slate', 'cormorant', {pos:['commercial','contract','class a']}, 'Contract-grade commercial wallcoverings.'],
-  ['commercialwalls',     'ink',     'georgia',   {pos:['commercial','contract']},          'Wallcoverings built for commercial spaces.'],
-  ['designerlaboratory',  'ivory',   'cormorant', {types:W()},                              'A laboratory of designer wallcoverings.'],
   ['designermagnetics',   'slate',   'bodoni',    {pos:['magnetic','metallic','mica','metal']}, 'Magnetic and metallic wallcoverings.'],
-  ['designerswallcovering','ivory',  'playfair',  {types:W()},                              'Designer wallcoverings for the trade.'],
-  ['designerswallcoverings','noir',  'cormorant', {types:W()},                              'The designer wallcovering collection.'],
-  ['designerswallpapers', 'sand',    'playfair',  {types:W()},                              'Designer wallcoverings, curated.'],
-  ['designerwallcover',   'ivory',   'cormorant', {types:W()},                              'Designer wallcoverings, simply put.'],
-  ['designerwallcovering','noir',    'bodoni',    {types:W()},                              'The definitive designer wallcovering catalog.'],
-  ['designerwallpaints',  'blush',   'cormorant', {pos:['solid','paint','plain','texture'],neg:['display']}, 'Specialty wall finishes and painted effects.'],
-  ['designerwalltiles',   'coastal', 'bodoni',    {pos:['geometric','tile','pattern','mosaic']}, 'Tile-inspired designer wallcoverings.'],
-  ['designwallcoverings', 'ivory',   'cormorant', {types:W()},                              'Wallcoverings, designed.'],
-  ['dwlosangeles',        'noir',    'playfair',  {types:W()},                              'Designer Wallcoverings — Los Angeles.'],
   ['etciemurals',         'plum',    'playfair',  {pos:['mural','scenic','panoramic'],types:['Mural','Wallcovering']}, 'Statement murals for interiors.'],
   ['fabricfridays',       'blush',   'playfair',  {types:['Fabric']},                       'New designer fabrics every Friday.'],
   ['fireratedwallcovering','slate',  'georgia',   {pos:['fire rated','class a','commercial','contract']}, 'Fire-rated wallcoverings for code compliance.'],
   ['flocked',             'bordeaux','bodoni',    {pos:['flock','velvet','damask','traditional']}, 'Flocked velvet wallcoverings.'],
   ['grassclothwallcovering','sage',  'cormorant', {pos:['grasscloth','sisal','jute','arrowroot']}, 'Hand-crafted grasscloth wallcoverings.'],
   ['handmadewallcovering','sand',    'cormorant', {pos:['grasscloth','sisal','jute','hand screen','handcraft','artisan']}, 'Hand-made wallcoverings, artisan-crafted.'],
-  ['handmadewallpapers',  'sand',    'playfair',  {pos:['grasscloth','sisal','jute','hand screen','handcraft','artisan']}, 'Hand-crafted wallcoverings for the trade.'],
-  ['handscreenedwallpaper','plum',   'cormorant', {pos:['hand','screen','print','artisan','traditional']}, 'Hand-screened wallcoverings.'],
   ['hollywoodwallcovering','gilt',   'bodoni',    {pos:['hollywood','glamour','metallic','dramatic']}, 'Hollywood-glamour wallcoverings.'],
   ['hospitalitysalesagency','gilt',  'georgia',   {pos:['hospitality','hotel','contract','commercial']}, 'Hospitality wallcoverings and sales representation.'],
-  ['hospitalitysalesagents','gilt',  'georgia',   {pos:['hospitality','hotel','contract','commercial']}, 'Hospitality wallcovering sales agents.'],
-  ['hospitalitysalesreps','gilt',    'georgia',   {pos:['hospitality','hotel','contract','commercial']}, 'Hospitality wallcovering trade reps.'],
   ['malibuwallpaper',     'coastal', 'cormorant', {pos:['grasscloth','sisal','jute','organic modern','botanical']}, 'Coastal wallcoverings, Malibu style.'],
   ['montereywallpaper',   'sage',    'cormorant', {pos:['grasscloth','sisal','jute','organic modern']}, 'Monterey-coast wallcoverings.'],
   ['naturalwalltextures', 'sage',    'cormorant', {pos:['grasscloth','sisal','jute','arrowroot','madagascar','cork','mica']}, 'Natural-fiber wall textures.'],
@@ -89,9 +85,7 @@ const SPEC = [
   ['roomsettings',        'ivory',   'cormorant', {types:W()},                              'Wallcoverings, seen in the room.'],
   ['sheltermagazines',    'noir',    'playfair',  {types:W()},                              'The wallcoverings of shelter editorial.'],
   ['specifywallpaper',    'slate',   'georgia',   {pos:['commercial','contract','class a','fire rated']}, 'Specify commercial wallcoverings with confidence.'],
-  ['steveabramsdesigns',  'ink',     'bodoni',    {types:W()},                              'Steve Abrams — designs and wallcoverings.'],
   ['stevenabramsphotography','ink',  'playfair',  {types:W()},                              'Steven Abrams — photography and design.'],
-  ['thedesignerlaboratory','ivory',  'cormorant', {types:W()},                              'The designer wallcovering laboratory.'],
   ['thehotelwallpaper',   'gilt',    'bodoni',    {pos:['hospitality','hotel','contract','commercial']}, 'Wallcoverings for the modern hotel.'],
   ['traditionalwhimsy',   'blush',   'playfair',  {pos:['traditional','floral','toile','botanical','whimsical']}, 'Traditional wallcoverings with a whimsical turn.'],
   ['unitedstateswallpaper','slate',  'georgia',   {types:W()},                              'American designer wallcoverings.'],
@@ -99,12 +93,23 @@ const SPEC = [
   ['wallpaperexports',    'sand',    'georgia',   {types:W()},                              'Designer wallcoverings for export.'],
   ['wallpaperfromthe80s', 'plum',    'bodoni',    {pos:['retro','vintage','geometric','abstract','1980']}, 'Retro wallcoverings with 80s spirit.'],
   ['wallpaperny',         'ink',     'bodoni',    {types:W()},                              'New York designer wallcoverings.'],
-  ['wallpapernyc',        'noir',    'playfair',  {types:W()},                              'NYC designer wallcoverings.'],
   ['wallpaperpurchasing', 'slate',   'georgia',   {pos:['commercial','contract']},          'Commercial wallcovering purchasing.'],
   ['wallpaperweekly',     'ivory',   'playfair',  {types:W()},                              'New designer wallcoverings, weekly.'],
-  ['wc-01',               'ink',     'georgia',   {pos:['commercial','contract','class a']}, 'WC-01 — commercial wallcoverings.'],
-  ['wc01wallcoverings',   'slate',   'georgia',   {pos:['commercial','contract','class a']}, 'WC-01 commercial wallcoverings.'],
-  ['wc01wallpaper',       'ink',     'georgia',   {pos:['commercial','contract','class a']}, 'WC-01 commercial wallcoverings.']
+  ['wc01wallcoverings',   'slate',   'georgia',   {pos:['commercial','contract','class a']}, 'WC-01 commercial wallcoverings.']
+];
+
+// ---- the 22 REDIRECT-ONLY domains (NOT built — 301 → designerwallcoverings.com) ----
+// Kept here for documentation / DNS-audit reference only; gen-configs does not
+// emit a site config for these. Near-duplicate typo/variant spellings or
+// redundant siblings of designerwallcoverings.com.
+const REDIRECT_ONLY = [
+  'designerswallcovering.com','designerswallcoverings.com','designerswallpapers.com',
+  'designerwallcover.com','designerwallcovering.com','designwallcoverings.com',
+  'designerwallpaints.com','designerwalltiles.com','dwlosangeles.com',
+  'designerlaboratory.com','thedesignerlaboratory.com','handmadewallpapers.com',
+  'handscreenedwallpaper.com','hospitalitysalesagents.com','hospitalitysalesreps.com',
+  'commercialwalls.com','1800wallpapers.com','800wallpaper.com','wallpapernyc.com',
+  'wc01wallpaper.com','wc-01.com','steveabramsdesigns.com'
 ];
 
 // domain overrides where slug != slug+'.com'
@@ -120,6 +125,7 @@ const NAME_OVERRIDE = {
   'dwlosangeles':            'DW Los Angeles',
   'asseeninla':              'As Seen In LA',
   'asseeninhotels':          'As Seen In Hotels',
+  'asseeninmovies':          'As Seen In Movies',
   'asseeninshowrooms':       'As Seen In Showrooms',
   'wallpaperfromthe80s':     'Wallpaper From The 80s',
   'steveabramsdesigns':      'Steve Abrams Designs',
diff --git a/scripts/provision-ssl.sh b/scripts/provision-ssl.sh
index 0cc3053..4242023 100755
--- a/scripts/provision-ssl.sh
+++ b/scripts/provision-ssl.sh
@@ -4,7 +4,7 @@
 #
 # Usage:  ssh root@45.61.58.125 'bash -s' < provision-ssl.sh domain1 domain2 ...
 # certbot rate limit: 50 certs/registered-domain/week, 5 duplicate/week.
-# Each domain here is a distinct registered domain so 65 is well under the cap;
+# Each domain here is a distinct registered domain so 44 is well under the cap;
 # still — run in batches of ~10 and check output before continuing.
 set -uo pipefail
 EMAIL=info@designerwallcoverings.com
diff --git a/server.js b/server.js
index a5af30d..82f57d5 100644
--- a/server.js
+++ b/server.js
@@ -91,6 +91,14 @@ app.get('/catalog', (req, res) => {
   res.type('html').send(render.catalogPage(cfg, slice, q, sort, page, pages, total));
 });
 
+app.get('/product/:handle', (req, res) => {
+  const handle = String(req.params.handle || '').slice(0, 200);
+  const p = POOL.find(x => x.handle === handle);
+  if (!p) return res.status(404).type('html').send(render.aboutPage(cfg));
+  const related = sortProducts(POOL.filter(x => x.handle !== handle), 'newest').slice(0, 10);
+  res.type('html').send(render.productPage(cfg, p, related));
+});
+
 app.get('/about', (req, res) => {
   res.type('html').send(render.aboutPage(cfg));
 });
diff --git a/shared/render.js b/shared/render.js
index 4f4568e..1259af9 100644
--- a/shared/render.js
+++ b/shared/render.js
@@ -97,6 +97,7 @@ img{display:block;max-width:100%}
 .card{background:var(--card);border:1px solid var(--rule);border-radius:4px;overflow:hidden;
   cursor:pointer;transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column}
 .card:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(0,0,0,.13)}
+.card-link{display:flex;flex-direction:column;height:100%;color:inherit}
 .card-img{aspect-ratio:1/1.04;background:#eee center/cover no-repeat}
 .card-body{padding:13px 14px 16px}
 .card-title{font-family:var(--serif);font-size:16px;line-height:1.25;min-height:40px}
@@ -181,15 +182,20 @@ function script(cfg) {
 </script>`;
 }
 
-/* anti-flash theme + top-bar fg colour */
-function head(cfg, title, desc, path) {
+/* anti-flash theme + top-bar fg colour
+ * canonicalOverride — when set, rel=canonical points there instead of this
+ * site's own URL. Product pages pass the SKU's canonical home on the main
+ * store so shared SKUs never compete as duplicate content (panel SEO must-do).
+ */
+function head(cfg, title, desc, path, canonicalOverride) {
   const url = 'https://' + cfg.domain + (path || '');
+  const canonical = canonicalOverride || url;
   return `<!doctype html><html lang="en"><head>
 <meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
 <title>${esc(title)}</title>
 <meta name="description" content="${esc(desc)}">
 <meta name="brand" content="${esc(cfg.siteName)}">
-<link rel="canonical" href="${esc(url)}">
+<link rel="canonical" href="${esc(canonical)}">
 <meta property="og:type" content="website"><meta property="og:site_name" content="${esc(cfg.siteName)}">
 <meta property="og:title" content="${esc(title)}"><meta property="og:description" content="${esc(desc)}">
 <meta property="og:url" content="${esc(url)}">
@@ -212,21 +218,30 @@ function jsonld(cfg) {
   return `<script type="application/ld+json">${JSON.stringify(org).replace(/<\/script/gi,'<\\/script')}</script>`;
 }
 
-/* ---------- card ---------- */
+/* ---------- card ----------
+ * Wrapper is a <div> (NOT <a>) — an <a> wrapping the inner controls would be
+ * split by the browser's Adoption Agency Algorithm into sibling grid items.
+ * The crawlable link is an inner <a class=card-link> pointing at /product/:handle
+ * so search engines can reach every per-SKU page. data-* still drives the
+ * quick-view modal.
+ */
 function card(p) {
   const hx = dominantHex(p);
   const t = clean(p.title).split('|')[0].trim();
+  const href = '/product/' + encodeURIComponent(p.handle);
   return `<div class="card" data-handle="${esc(p.handle)}"
     data-title="${esc(t)}" data-sku="${esc(p.sku||p.handle)}"
     data-img="${esc(p.image_url)}" data-tags="${esc((p.tags||[]).slice(0,12).join(', '))}"
     data-price="${esc(p.price)}">
-  <div class="card-img" style="background-image:url('${esc(p.image_url)}')"></div>
-  <div class="card-body">
-    <div class="card-title">${esc(t)}</div>
-    <div class="card-meta"><span class="dot" style="background:${hx}"></span>
-      Designer Wallcoverings · ${esc(p.sku||p.handle)}</div>
-    <div class="card-sample">Order Memo Sample</div>
-  </div></div>`;
+  <a class="card-link" href="${esc(href)}" aria-label="${esc(t)}">
+    <div class="card-img" style="background-image:url('${esc(p.image_url)}')"></div>
+    <div class="card-body">
+      <div class="card-title">${esc(t)}</div>
+      <div class="card-meta"><span class="dot" style="background:${hx}"></span>
+        Designer Wallcoverings · ${esc(p.sku||p.handle)}</div>
+      <div class="card-sample">View Details</div>
+    </div>
+  </a></div>`;
 }
 
 /* ---------- home page ---------- */
@@ -376,8 +391,10 @@ function nsModal(cfg){
     document.getElementById('nsmCta').href='${DW}/products/'+c.dataset.handle+'#sample';
     back.classList.add('open');
   }
+  // cards are real crawlable links to /product/:handle — they navigate.
+  // the modal stays available for any element opting in via .quick-view.
   document.addEventListener('click',function(e){
-    var c=e.target.closest('.card');if(c){open(c);return;}
+    var c=e.target.closest('.quick-view');if(c){e.preventDefault();open(c);return;}
   });
   document.getElementById('nsmClose').addEventListener('click',function(){back.classList.remove('open');});
   back.addEventListener('click',function(){back.classList.remove('open');});
@@ -400,4 +417,66 @@ function heroRotate(n){
 </script>`;
 }
 
-module.exports = { homePage, catalogPage, aboutPage, clean, esc };
+/* ---------- product page ----------
+ * Per-SKU page. rel=canonical points to the SKU's canonical home on the main
+ * store (designerwallcoverings.com/products/<handle>) so a shared SKU rendered
+ * across multiple fleet sites never competes with the main store or its
+ * siblings as duplicate content. Title + meta description are per-site-unique
+ * (carry the site name + tagline), satisfying the panel SEO must-do.
+ */
+function productPage(cfg, p, related) {
+  const name = clean(p.title).split('|')[0].trim();
+  const sku = p.sku || p.handle;
+  const canonical = `${DW}/products/${encodeURIComponent(p.handle)}`;
+  // per-site-unique title + meta — site name makes each fleet copy distinct
+  const title = `${name} — ${sku} | ${cfg.siteName}`;
+  const desc = `${name} (${sku}) — ${clean(cfg.tagline)} Available through ${cfg.siteName} and Designer Wallcoverings with a free memo sample and expert order hand-holding.`;
+  const hx = dominantHex(p);
+  const chips = (p.tags || []).filter(Boolean).slice(0, 12)
+    .map(t => `<span>${esc(t)}</span>`).join('');
+  const productLd = {
+    '@context':'https://schema.org','@type':'Product',
+    name, sku, image: p.image_url, brand:{ '@type':'Brand', name:'Designer Wallcoverings' },
+    url: canonical
+  };
+  return head(cfg, title, desc, '/product/' + encodeURIComponent(p.handle), canonical)
+    + `<script type="application/ld+json">${JSON.stringify(productLd).replace(/<\/script/gi,'<\\/script')}</script>`
+    + jsonld(cfg) + chrome(cfg) + `
+<div style="height:84px"></div>
+<div class="wrap">
+  <div style="display:grid;grid-template-columns:1.05fr .95fr;gap:48px;padding:28px 0 10px"
+       class="pdp-grid">
+    <div class="card-img" style="background-image:url('${esc(p.image_url)}');
+       border-radius:6px;min-height:clamp(360px,52vw,640px)"></div>
+    <div>
+      <div style="font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)">
+        ${esc(cfg.siteName)}</div>
+      <h1 style="font-family:var(--serif);font-size:clamp(30px,3.4vw,46px);margin:10px 0 6px">
+        ${esc(name)}</h1>
+      <div class="card-meta" style="margin-bottom:18px"><span class="dot" style="background:${hx}"></span>
+        Designer Wallcoverings · ${esc(sku)}</div>
+      <div class="nsm-chips" style="display:flex;flex-wrap:wrap;gap:6px;margin:14px 0">${chips}</div>
+      <p style="font-size:14px;color:var(--muted);line-height:1.7;margin:16px 0">
+        ${esc(name)} is available through ${esc(cfg.siteName)} — part of Designer Wallcoverings.
+        Order a free memo sample and our team will hand-hold your order from selection
+        through installation.</p>
+      <a class="hero-cta__btn" style="position:static;background:var(--accent);color:#fff"
+         href="${DW}/products/${esc(p.handle)}#sample" target="_blank" rel="noopener noreferrer">
+        Order Memo Sample</a>
+      <p style="font-size:12px;color:var(--muted);margin:14px 0 0">
+        Catalogued by Designer Wallcoverings ·
+        <a href="${canonical}" rel="noopener noreferrer" style="color:var(--accent)">View on the main store</a></p>
+    </div>
+  </div>
+  ${related && related.length ? `
+  <div class="controls" style="margin-top:38px"><label>Related Selections</label></div>
+  <div class="grid">${related.map(card).join('')}</div>` : ''}
+</div>
+<style>@media(max-width:780px){.pdp-grid{grid-template-columns:1fr!important}}</style>
+${footer(cfg)}
+${nsModal(cfg)}
+${script(cfg)}
+</body></html>`;
+}
+
+module.exports = { homePage, catalogPage, aboutPage, productPage, clean, esc };
diff --git a/sites/1800wallpapers.json b/sites/1800wallpapers.json
deleted file mode 100644
index 6a9a18e..0000000
--- a/sites/1800wallpapers.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
-  "slug": "1800wallpapers",
-  "domain": "1800wallpapers.com",
-  "siteName": "1-800 Wallpapers",
-  "port": 9902,
-  "siteEmail": "info@1800wallpapers.com",
-  "tagline": "A complete designer wallcovering catalog.",
-  "heroHeadline": "1-800 Wallpapers",
-  "heroSub": "Explore the collection",
-  "metaDesc": "1-800 Wallpapers — A complete designer wallcovering catalog. Free memo samples, expert trade service, and hand-holding on every order from Designer Wallcoverings.",
-  "nicheLabel": "designer wallcoverings",
-  "aboutCopy": "1-800 Wallpapers curates designer wallcoverings for designers, architects, and discerning homeowners. A complete designer wallcovering catalog. Every selection is backed by Designer Wallcoverings' decades of trade experience.",
-  "niche": {
-    "pos": [],
-    "neg": [],
-    "types": [
-      "Wallcovering"
-    ]
-  },
-  "theme": {
-    "accent": "#a8884a",
-    "bg": "#0a0a09",
-    "bgLight": "#f4f2ee",
-    "ink": "#f0ede6",
-    "inkLight": "#15140f",
-    "rule": "#cfcabf",
-    "serif": "'Playfair Display',Georgia,serif",
-    "sans": "-apple-system,'Inter',system-ui,sans-serif",
-    "palette": "noir",
-    "font": "playfair"
-  }
-}
\ No newline at end of file
diff --git a/sites/800wallpaper.json b/sites/800wallpaper.json
deleted file mode 100644
index e9e5b65..0000000
--- a/sites/800wallpaper.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
-  "slug": "800wallpaper",
-  "domain": "800wallpaper.com",
-  "siteName": "800 Wallpaper",
-  "port": 9903,
-  "siteEmail": "info@800wallpaper.com",
-  "tagline": "Designer wallcoverings, one call away.",
-  "heroHeadline": "800 Wallpaper",
-  "heroSub": "Explore the collection",
-  "metaDesc": "800 Wallpaper — Designer wallcoverings, one call away. Free memo samples, expert trade service, and hand-holding on every order from Designer Wallcoverings.",
-  "nicheLabel": "designer wallcoverings",
-  "aboutCopy": "800 Wallpaper curates designer wallcoverings for designers, architects, and discerning homeowners. Designer wallcoverings, one call away. Every selection is backed by Designer Wallcoverings' decades of trade experience.",
-  "niche": {
-    "pos": [],
-    "neg": [],
-    "types": [
-      "Wallcovering"
-    ]
-  },
-  "theme": {
-    "accent": "#9c6b30",
-    "bg": "#16120a",
-    "bgLight": "#f6f1e7",
-    "ink": "#f1ead9",
-    "inkLight": "#211c12",
-    "rule": "#d6c9ad",
-    "serif": "'Cormorant Garamond','Playfair Display',Georgia,serif",
-    "sans": "-apple-system,'Inter',system-ui,sans-serif",
-    "palette": "sand",
-    "font": "cormorant"
-  }
-}
\ No newline at end of file
diff --git a/sites/asseeninhotels.json b/sites/asseeninhotels.json
index a97b4af..42b71ab 100644
--- a/sites/asseeninhotels.json
+++ b/sites/asseeninhotels.json
@@ -2,7 +2,7 @@
   "slug": "asseeninhotels",
   "domain": "asseeninhotels.com",
   "siteName": "As Seen In Hotels",
-  "port": 9904,
+  "port": 9902,
   "siteEmail": "info@asseeninhotels.com",
   "tagline": "Wallcoverings seen in the world's finest hotels.",
   "heroHeadline": "As Seen In Hotels",
diff --git a/sites/asseeninla.json b/sites/asseeninla.json
index 8bfe39a..3c3a516 100644
--- a/sites/asseeninla.json
+++ b/sites/asseeninla.json
@@ -2,7 +2,7 @@
   "slug": "asseeninla",
   "domain": "asseeninla.com",
   "siteName": "As Seen In LA",
-  "port": 9905,
+  "port": 9903,
   "siteEmail": "info@asseeninla.com",
   "tagline": "The wallcoverings of Los Angeles design.",
   "heroHeadline": "As Seen In LA",
diff --git a/sites/asseeninmovies.json b/sites/asseeninmovies.json
new file mode 100644
index 0000000..95d6552
--- /dev/null
+++ b/sites/asseeninmovies.json
@@ -0,0 +1,37 @@
+{
+  "slug": "asseeninmovies",
+  "domain": "asseeninmovies.com",
+  "siteName": "As Seen In Movies",
+  "port": 9904,
+  "siteEmail": "info@asseeninmovies.com",
+  "tagline": "Wallcoverings seen on the silver screen.",
+  "heroHeadline": "As Seen In Movies",
+  "heroSub": "Explore the collection",
+  "metaDesc": "As Seen In Movies — Wallcoverings seen on the silver screen. Free memo samples, expert trade service, and hand-holding on every order from Designer Wallcoverings.",
+  "nicheLabel": "designer wallcoverings",
+  "aboutCopy": "As Seen In Movies curates designer wallcoverings for designers, architects, and discerning homeowners. Wallcoverings seen on the silver screen. Every selection is backed by Designer Wallcoverings' decades of trade experience.",
+  "niche": {
+    "pos": [
+      "dramatic",
+      "glamour",
+      "scenic",
+      "statement",
+      "mural",
+      "metallic"
+    ],
+    "neg": [],
+    "types": []
+  },
+  "theme": {
+    "accent": "#a8884a",
+    "bg": "#0a0a09",
+    "bgLight": "#f4f2ee",
+    "ink": "#f0ede6",
+    "inkLight": "#15140f",
+    "rule": "#cfcabf",
+    "serif": "'Bodoni Moda',Didot,Georgia,serif",
+    "sans": "-apple-system,'Helvetica Neue',Arial,sans-serif",
+    "palette": "noir",
+    "font": "bodoni"
+  }
+}
\ No newline at end of file
diff --git a/sites/asseeninshowrooms.json b/sites/asseeninshowrooms.json
index e2cfd23..5af67cd 100644
--- a/sites/asseeninshowrooms.json
+++ b/sites/asseeninshowrooms.json
@@ -2,7 +2,7 @@
   "slug": "asseeninshowrooms",
   "domain": "asseeninshowrooms.com",
   "siteName": "As Seen In Showrooms",
-  "port": 9906,
+  "port": 9905,
   "siteEmail": "info@asseeninshowrooms.com",
   "tagline": "Showroom-grade wallcoverings, direct to the trade.",
   "heroHeadline": "As Seen In Showrooms",
diff --git a/sites/barwallpaper.json b/sites/barwallpaper.json
index 5a10dec..a13a72c 100644
--- a/sites/barwallpaper.json
+++ b/sites/barwallpaper.json
@@ -2,7 +2,7 @@
   "slug": "barwallpaper",
   "domain": "barwallpaper.com",
   "siteName": "Bar Wallpaper",
-  "port": 9907,
+  "port": 9906,
   "siteEmail": "info@barwallpaper.com",
   "tagline": "Dramatic wallcoverings for bars and lounges.",
   "heroHeadline": "Bar Wallpaper",
diff --git a/sites/blankstocklining.json b/sites/blankstocklining.json
index cb77e78..ae2cf2d 100644
--- a/sites/blankstocklining.json
+++ b/sites/blankstocklining.json
@@ -2,7 +2,7 @@
   "slug": "blankstocklining",
   "domain": "blankstocklining.com",
   "siteName": "Blankstock Lining",
-  "port": 9908,
+  "port": 9907,
   "siteEmail": "info@blankstocklining.com",
   "tagline": "Liner and blankstock for a flawless finish.",
   "heroHeadline": "Blankstock Lining",
diff --git a/sites/bleachfriendly.json b/sites/bleachfriendly.json
index cf71777..3f4b1a8 100644
--- a/sites/bleachfriendly.json
+++ b/sites/bleachfriendly.json
@@ -2,7 +2,7 @@
   "slug": "bleachfriendly",
   "domain": "bleachfriendly.com",
   "siteName": "Bleach Friendly",
-  "port": 9909,
+  "port": 9908,
   "siteEmail": "info@bleachfriendly.com",
   "tagline": "Bleach-cleanable performance wallcoverings.",
   "heroHeadline": "Bleach Friendly",
diff --git a/sites/carmelwallpaper.json b/sites/carmelwallpaper.json
index c385547..6c7c336 100644
--- a/sites/carmelwallpaper.json
+++ b/sites/carmelwallpaper.json
@@ -2,7 +2,7 @@
   "slug": "carmelwallpaper",
   "domain": "carmelwallpaper.com",
   "siteName": "Carmel Wallpaper",
-  "port": 9910,
+  "port": 9909,
   "siteEmail": "info@carmelwallpaper.com",
   "tagline": "Coastal-calm wallcoverings, Carmel to Monterey.",
   "heroHeadline": "Carmel Wallpaper",
diff --git a/sites/cfafabrics.json b/sites/cfafabrics.json
index a76fe21..4579f09 100644
--- a/sites/cfafabrics.json
+++ b/sites/cfafabrics.json
@@ -2,7 +2,7 @@
   "slug": "cfafabrics",
   "domain": "cfafabrics.com",
   "siteName": "CFA Fabrics",
-  "port": 9911,
+  "port": 9910,
   "siteEmail": "info@cfafabrics.com",
   "tagline": "Designer fabrics for the trade.",
   "heroHeadline": "CFA Fabrics",
diff --git a/sites/classawallcovering.json b/sites/classawallcovering.json
index 14e38a8..9b32304 100644
--- a/sites/classawallcovering.json
+++ b/sites/classawallcovering.json
@@ -2,7 +2,7 @@
   "slug": "classawallcovering",
   "domain": "classawallcovering.com",
   "siteName": "Class A Wallcovering",
-  "port": 9912,
+  "port": 9911,
   "siteEmail": "info@classawallcovering.com",
   "tagline": "Class A fire-rated wallcoverings.",
   "heroHeadline": "Class A Wallcovering",
diff --git a/sites/commercialsalesreps.json b/sites/commercialsalesreps.json
index 048002d..bb5d060 100644
--- a/sites/commercialsalesreps.json
+++ b/sites/commercialsalesreps.json
@@ -2,7 +2,7 @@
   "slug": "commercialsalesreps",
   "domain": "commercialsalesreps.com",
   "siteName": "Commercial Sales Reps",
-  "port": 9913,
+  "port": 9912,
   "siteEmail": "info@commercialsalesreps.com",
   "tagline": "Commercial wallcoverings and trade representation.",
   "heroHeadline": "Commercial Sales Reps",
diff --git a/sites/commercialwallcovering.json b/sites/commercialwallcovering.json
index 2db79c0..30d148a 100644
--- a/sites/commercialwallcovering.json
+++ b/sites/commercialwallcovering.json
@@ -2,7 +2,7 @@
   "slug": "commercialwallcovering",
   "domain": "commercialwallcovering.com",
   "siteName": "Commercial Wallcovering",
-  "port": 9914,
+  "port": 9913,
   "siteEmail": "info@commercialwallcovering.com",
   "tagline": "Contract-grade commercial wallcoverings.",
   "heroHeadline": "Commercial Wallcovering",
diff --git a/sites/commercialwalls.json b/sites/commercialwalls.json
deleted file mode 100644
index bade4cd..0000000
--- a/sites/commercialwalls.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
-  "slug": "commercialwalls",
-  "domain": "commercialwalls.com",
-  "siteName": "Commercial Walls",
-  "port": 9915,
-  "siteEmail": "info@commercialwalls.com",
-  "tagline": "Wallcoverings built for commercial spaces.",
-  "heroHeadline": "Commercial Walls",
-  "heroSub": "Explore the collection",
-  "metaDesc": "Commercial Walls — Wallcoverings built for commercial spaces. Free memo samples, expert trade service, and hand-holding on every order from Designer Wallcoverings.",
-  "nicheLabel": "designer wallcoverings",
-  "aboutCopy": "Commercial Walls curates designer wallcoverings for designers, architects, and discerning homeowners. Wallcoverings built for commercial spaces. Every selection is backed by Designer Wallcoverings' decades of trade experience.",
-  "niche": {
-    "pos": [
-      "commercial",
-      "contract"
-    ],
-    "neg": [],
-    "types": []
-  },
-  "theme": {
-    "accent": "#444440",
-    "bg": "#080807",
-    "bgLight": "#f1f1f0",
-    "ink": "#ededec",
-    "inkLight": "#121211",
-    "rule": "#c8c8c5",
-    "serif": "Georgia,'Times New Roman',serif",
-    "sans": "-apple-system,'Inter',system-ui,sans-serif",
-    "palette": "ink",
-    "font": "georgia"
-  }
-}
\ No newline at end of file
diff --git a/sites/designerlaboratory.json b/sites/designerlaboratory.json
deleted file mode 100644
index b05f1cd..0000000
--- a/sites/designerlaboratory.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
-  "slug": "designerlaboratory",
-  "domain": "designerlaboratory.com",
-  "siteName": "Designer Laboratory",
-  "port": 9916,
-  "siteEmail": "info@designerlaboratory.com",
-  "tagline": "A laboratory of designer wallcoverings.",
-  "heroHeadline": "Designer Laboratory",
-  "heroSub": "Explore the collection",
-  "metaDesc": "Designer Laboratory — A laboratory of designer wallcoverings. Free memo samples, expert trade service, and hand-holding on every order from Designer Wallcoverings.",
-  "nicheLabel": "designer wallcoverings",
-  "aboutCopy": "Designer Laboratory curates designer wallcoverings for designers, architects, and discerning homeowners. A laboratory of designer wallcoverings. Every selection is backed by Designer Wallcoverings' decades of trade experience.",
-  "niche": {
-    "pos": [],
-    "neg": [],
-    "types": [
-      "Wallcovering"
-    ]
-  },
-  "theme": {
-    "accent": "#7d3c00",
-    "bg": "#14110d",
-    "bgLight": "#faf7f2",
-    "ink": "#f3efe8",
-    "inkLight": "#1a1714",
-    "rule": "#d8cec0",
-    "serif": "'Cormorant Garamond','Playfair Display',Georgia,serif",
-    "sans": "-apple-system,'Inter',system-ui,sans-serif",
-    "palette": "ivory",
-    "font": "cormorant"
-  }
-}
\ No newline at end of file
diff --git a/sites/designermagnetics.json b/sites/designermagnetics.json
index 7ae9eb2..18318fa 100644
--- a/sites/designermagnetics.json
+++ b/sites/designermagnetics.json
@@ -2,7 +2,7 @@
   "slug": "designermagnetics",
   "domain": "designermagnetics.com",
   "siteName": "Designer Magnetics",
-  "port": 9917,
+  "port": 9914,
   "siteEmail": "info@designermagnetics.com",
   "tagline": "Magnetic and metallic wallcoverings.",
   "heroHeadline": "Designer Magnetics",
diff --git a/sites/designerswallcovering.json b/sites/designerswallcovering.json
deleted file mode 100644
index d417047..0000000
--- a/sites/designerswallcovering.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
-  "slug": "designerswallcovering",
-  "domain": "designerswallcovering.com",
-  "siteName": "Designers Wallcovering",
-  "port": 9918,
-  "siteEmail": "info@designerswallcovering.com",
-  "tagline": "Designer wallcoverings for the trade.",
-  "heroHeadline": "Designers Wallcovering",
-  "heroSub": "Explore the collection",
-  "metaDesc": "Designers Wallcovering — Designer wallcoverings for the trade. Free memo samples, expert trade service, and hand-holding on every order from Designer Wallcoverings.",
-  "nicheLabel": "designer wallcoverings",
-  "aboutCopy": "Designers Wallcovering curates designer wallcoverings for designers, architects, and discerning homeowners. Designer wallcoverings for the trade. Every selection is backed by Designer Wallcoverings' decades of trade experience.",
-  "niche": {
-    "pos": [],
-    "neg": [],
-    "types": [
-      "Wallcovering"
-    ]
-  },
-  "theme": {
-    "accent": "#7d3c00",
-    "bg": "#14110d",
-    "bgLight": "#faf7f2",
-    "ink": "#f3efe8",
-    "inkLight": "#1a1714",
-    "rule": "#d8cec0",
-    "serif": "'Playfair Display',Georgia,serif",
-    "sans": "-apple-system,'Inter',system-ui,sans-serif",
-    "palette": "ivory",
-    "font": "playfair"
-  }
-}
\ No newline at end of file
diff --git a/sites/designerswallcoverings.json b/sites/designerswallcoverings.json
deleted file mode 100644
index 6a65805..0000000
--- a/sites/designerswallcoverings.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
-  "slug": "designerswallcoverings",
-  "domain": "designerswallcoverings.com",
-  "siteName": "Designers Wallcoverings",
-  "port": 9919,
-  "siteEmail": "info@designerswallcoverings.com",
-  "tagline": "The designer wallcovering collection.",
-  "heroHeadline": "Designers Wallcoverings",
-  "heroSub": "Explore the collection",
-  "metaDesc": "Designers Wallcoverings — The designer wallcovering collection. Free memo samples, expert trade service, and hand-holding on every order from Designer Wallcoverings.",
-  "nicheLabel": "designer wallcoverings",
-  "aboutCopy": "Designers Wallcoverings curates designer wallcoverings for designers, architects, and discerning homeowners. The designer wallcovering collection. Every selection is backed by Designer Wallcoverings' decades of trade experience.",
-  "niche": {
-    "pos": [],
-    "neg": [],
-    "types": [
-      "Wallcovering"
-    ]
-  },
-  "theme": {
-    "accent": "#a8884a",
-    "bg": "#0a0a09",
-    "bgLight": "#f4f2ee",
-    "ink": "#f0ede6",
-    "inkLight": "#15140f",
-    "rule": "#cfcabf",
-    "serif": "'Cormorant Garamond','Playfair Display',Georgia,serif",
-    "sans": "-apple-system,'Inter',system-ui,sans-serif",
-    "palette": "noir",
-    "font": "cormorant"
-  }
-}
\ No newline at end of file
diff --git a/sites/designerswallpapers.json b/sites/designerswallpapers.json
deleted file mode 100644
index 06df24e..0000000
--- a/sites/designerswallpapers.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
-  "slug": "designerswallpapers",
-  "domain": "designerswallpapers.com",
-  "siteName": "Designers Wallpapers",
-  "port": 9920,
-  "siteEmail": "info@designerswallpapers.com",
-  "tagline": "Designer wallcoverings, curated.",
-  "heroHeadline": "Designers Wallpapers",
-  "heroSub": "Explore the collection",
-  "metaDesc": "Designers Wallpapers — Designer wallcoverings, curated. Free memo samples, expert trade service, and hand-holding on every order from Designer Wallcoverings.",
-  "nicheLabel": "designer wallcoverings",
-  "aboutCopy": "Designers Wallpapers curates designer wallcoverings for designers, architects, and discerning homeowners. Designer wallcoverings, curated. Every selection is backed by Designer Wallcoverings' decades of trade experience.",
-  "niche": {
-    "pos": [],
-    "neg": [],
-    "types": [
-      "Wallcovering"
-    ]
-  },
-  "theme": {
-    "accent": "#9c6b30",
-    "bg": "#16120a",
-    "bgLight": "#f6f1e7",
-    "ink": "#f1ead9",
-    "inkLight": "#211c12",
-    "rule": "#d6c9ad",
-    "serif": "'Playfair Display',Georgia,serif",
-    "sans": "-apple-system,'Inter',system-ui,sans-serif",
-    "palette": "sand",
-    "font": "playfair"
-  }
-}
\ No newline at end of file
diff --git a/sites/designerwallcover.json b/sites/designerwallcover.json
deleted file mode 100644
index 583ad14..0000000
--- a/sites/designerwallcover.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
-  "slug": "designerwallcover",
-  "domain": "designerwallcover.com",
-  "siteName": "Designer Wallcover",
-  "port": 9921,
-  "siteEmail": "info@designerwallcover.com",
-  "tagline": "Designer wallcoverings, simply put.",
-  "heroHeadline": "Designer Wallcover",
-  "heroSub": "Explore the collection",
-  "metaDesc": "Designer Wallcover — Designer wallcoverings, simply put. Free memo samples, expert trade service, and hand-holding on every order from Designer Wallcoverings.",
-  "nicheLabel": "designer wallcoverings",
-  "aboutCopy": "Designer Wallcover curates designer wallcoverings for designers, architects, and discerning homeowners. Designer wallcoverings, simply put. Every selection is backed by Designer Wallcoverings' decades of trade experience.",
-  "niche": {
-    "pos": [],
-    "neg": [],
-    "types": [
-      "Wallcovering"
-    ]
-  },
-  "theme": {
-    "accent": "#7d3c00",
-    "bg": "#14110d",
-    "bgLight": "#faf7f2",
-    "ink": "#f3efe8",
-    "inkLight": "#1a1714",
-    "rule": "#d8cec0",
-    "serif": "'Cormorant Garamond','Playfair Display',Georgia,serif",
-    "sans": "-apple-system,'Inter',system-ui,sans-serif",
-    "palette": "ivory",
-    "font": "cormorant"
-  }
-}
\ No newline at end of file
diff --git a/sites/designerwallcovering.json b/sites/designerwallcovering.json
deleted file mode 100644
index d250280..0000000
--- a/sites/designerwallcovering.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
-  "slug": "designerwallcovering",
-  "domain": "designerwallcovering.com",
-  "siteName": "Designer Wallcovering",
-  "port": 9922,
-  "siteEmail": "info@designerwallcovering.com",
-  "tagline": "The definitive designer wallcovering catalog.",
-  "heroHeadline": "Designer Wallcovering",
-  "heroSub": "Explore the collection",
-  "metaDesc": "Designer Wallcovering — The definitive designer wallcovering catalog. Free memo samples, expert trade service, and hand-holding on every order from Designer Wallcoverings.",
-  "nicheLabel": "designer wallcoverings",
-  "aboutCopy": "Designer Wallcovering curates designer wallcoverings for designers, architects, and discerning homeowners. The definitive designer wallcovering catalog. Every selection is backed by Designer Wallcoverings' decades of trade experience.",
-  "niche": {
-    "pos": [],
-    "neg": [],
-    "types": [
-      "Wallcovering"
-    ]
-  },
-  "theme": {
-    "accent": "#a8884a",
-    "bg": "#0a0a09",
-    "bgLight": "#f4f2ee",
-    "ink": "#f0ede6",
-    "inkLight": "#15140f",
-    "rule": "#cfcabf",
-    "serif": "'Bodoni Moda',Didot,Georgia,serif",
-    "sans": "-apple-system,'Helvetica Neue',Arial,sans-serif",
-    "palette": "noir",
-    "font": "bodoni"
-  }
-}
\ No newline at end of file
diff --git a/sites/designerwallpaints.json b/sites/designerwallpaints.json
deleted file mode 100644
index e3fe2ea..0000000
--- a/sites/designerwallpaints.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
-  "slug": "designerwallpaints",
-  "domain": "designerwallpaints.com",
-  "siteName": "Designer Wall Paints",
-  "port": 9923,
-  "siteEmail": "info@designerwallpaints.com",
-  "tagline": "Specialty wall finishes and painted effects.",
-  "heroHeadline": "Designer Wall Paints",
-  "heroSub": "Explore the collection",
-  "metaDesc": "Designer Wall Paints — Specialty wall finishes and painted effects. Free memo samples, expert trade service, and hand-holding on every order from Designer Wallcoverings.",
-  "nicheLabel": "designer wallcoverings",
-  "aboutCopy": "Designer Wall Paints curates designer wallcoverings for designers, architects, and discerning homeowners. Specialty wall finishes and painted effects. Every selection is backed by Designer Wallcoverings' decades of trade experience.",
-  "niche": {
-    "pos": [
-      "solid",
-      "paint",
-      "plain",
-      "texture"
-    ],
-    "neg": [
-      "display"
-    ],
-    "types": []
-  },
-  "theme": {
-    "accent": "#a85a5f",
-    "bg": "#130c0b",
-    "bgLight": "#f8f1f0",
-    "ink": "#f1e6e3",
-    "inkLight": "#1f1614",
-    "rule": "#dcc8c4",
-    "serif": "'Cormorant Garamond','Playfair Display',Georgia,serif",
-    "sans": "-apple-system,'Inter',system-ui,sans-serif",
-    "palette": "blush",
-    "font": "cormorant"
-  }
-}
\ No newline at end of file
diff --git a/sites/designerwalltiles.json b/sites/designerwalltiles.json
deleted file mode 100644
index c12c876..0000000
--- a/sites/designerwalltiles.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
-  "slug": "designerwalltiles",
-  "domain": "designerwalltiles.com",
-  "siteName": "Designer Wall Tiles",
-  "port": 9924,
-  "siteEmail": "info@designerwalltiles.com",
-  "tagline": "Tile-inspired designer wallcoverings.",
-  "heroHeadline": "Designer Wall Tiles",
-  "heroSub": "Explore the collection",
-  "metaDesc": "Designer Wall Tiles — Tile-inspired designer wallcoverings. Free memo samples, expert trade service, and hand-holding on every order from Designer Wallcoverings.",
-  "nicheLabel": "designer wallcoverings",
-  "aboutCopy": "Designer Wall Tiles curates designer wallcoverings for designers, architects, and discerning homeowners. Tile-inspired designer wallcoverings. Every selection is backed by Designer Wallcoverings' decades of trade experience.",
-  "niche": {
-    "pos": [
-      "geometric",
-      "tile",
-      "pattern",
-      "mosaic"
-    ],
-    "neg": [],
-    "types": []
-  },
-  "theme": {
-    "accent": "#2a7d8a",
-    "bg": "#0a1113",
-    "bgLight": "#f0f4f5",
-    "ink": "#e6eef0",
-    "inkLight": "#10191c",
-    "rule": "#bdcdd0",
-    "serif": "'Bodoni Moda',Didot,Georgia,serif",
-    "sans": "-apple-system,'Helvetica Neue',Arial,sans-serif",
-    "palette": "coastal",
-    "font": "bodoni"
-  }
-}
\ No newline at end of file
diff --git a/sites/designwallcoverings.json b/sites/designwallcoverings.json
deleted file mode 100644
index a0be5c8..0000000
--- a/sites/designwallcoverings.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
-  "slug": "designwallcoverings",
-  "domain": "designwallcoverings.com",
-  "siteName": "Design Wallcoverings",
-  "port": 9925,
-  "siteEmail": "info@designwallcoverings.com",
-  "tagline": "Wallcoverings, designed.",
-  "heroHeadline": "Design Wallcoverings",
-  "heroSub": "Explore the collection",
-  "metaDesc": "Design Wallcoverings — Wallcoverings, designed. Free memo samples, expert trade service, and hand-holding on every order from Designer Wallcoverings.",
-  "nicheLabel": "designer wallcoverings",
-  "aboutCopy": "Design Wallcoverings curates designer wallcoverings for designers, architects, and discerning homeowners. Wallcoverings, designed. Every selection is backed by Designer Wallcoverings' decades of trade experience.",
-  "niche": {
-    "pos": [],
-    "neg": [],
-    "types": [
-      "Wallcovering"
-    ]
-  },
-  "theme": {
-    "accent": "#7d3c00",
-    "bg": "#14110d",
-    "bgLight": "#faf7f2",
-    "ink": "#f3efe8",
-    "inkLight": "#1a1714",
-    "rule": "#d8cec0",
-    "serif": "'Cormorant Garamond','Playfair Display',Georgia,serif",
-    "sans": "-apple-system,'Inter',system-ui,sans-serif",
-    "palette": "ivory",
-    "font": "cormorant"
-  }
-}
\ No newline at end of file
diff --git a/sites/dwlosangeles.json b/sites/dwlosangeles.json
deleted file mode 100644
index 4dd7142..0000000
--- a/sites/dwlosangeles.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
-  "slug": "dwlosangeles",
-  "domain": "dwlosangeles.com",
-  "siteName": "DW Los Angeles",
-  "port": 9926,
-  "siteEmail": "info@dwlosangeles.com",
-  "tagline": "Designer Wallcoverings — Los Angeles.",
-  "heroHeadline": "DW Los Angeles",
-  "heroSub": "Explore the collection",
-  "metaDesc": "DW Los Angeles — Designer Wallcoverings — Los Angeles. Free memo samples, expert trade service, and hand-holding on every order from Designer Wallcoverings.",
-  "nicheLabel": "designer wallcoverings",
-  "aboutCopy": "DW Los Angeles curates designer wallcoverings for designers, architects, and discerning homeowners. Designer Wallcoverings — Los Angeles. Every selection is backed by Designer Wallcoverings' decades of trade experience.",
-  "niche": {
-    "pos": [],
-    "neg": [],
-    "types": [
-      "Wallcovering"
-    ]
-  },
-  "theme": {
-    "accent": "#a8884a",
-    "bg": "#0a0a09",
-    "bgLight": "#f4f2ee",
-    "ink": "#f0ede6",
-    "inkLight": "#15140f",
-    "rule": "#cfcabf",
-    "serif": "'Playfair Display',Georgia,serif",
-    "sans": "-apple-system,'Inter',system-ui,sans-serif",
-    "palette": "noir",
-    "font": "playfair"
-  }
-}
\ No newline at end of file
diff --git a/sites/etciemurals.json b/sites/etciemurals.json
index d464132..3a6796b 100644
--- a/sites/etciemurals.json
+++ b/sites/etciemurals.json
@@ -2,7 +2,7 @@
   "slug": "etciemurals",
   "domain": "etciemurals.com",
   "siteName": "Et Cie Murals",
-  "port": 9927,
+  "port": 9915,
   "siteEmail": "info@etciemurals.com",
   "tagline": "Statement murals for interiors.",
   "heroHeadline": "Et Cie Murals",
diff --git a/sites/fabricfridays.json b/sites/fabricfridays.json
index 89379e2..690bf47 100644
--- a/sites/fabricfridays.json
+++ b/sites/fabricfridays.json
@@ -2,7 +2,7 @@
   "slug": "fabricfridays",
   "domain": "fabricfridays.com",
   "siteName": "Fabric Fridays",
-  "port": 9928,
+  "port": 9916,
   "siteEmail": "info@fabricfridays.com",
   "tagline": "New designer fabrics every Friday.",
   "heroHeadline": "Fabric Fridays",
diff --git a/sites/fireratedwallcovering.json b/sites/fireratedwallcovering.json
index 0371d28..8b08d32 100644
--- a/sites/fireratedwallcovering.json
+++ b/sites/fireratedwallcovering.json
@@ -2,7 +2,7 @@
   "slug": "fireratedwallcovering",
   "domain": "fireratedwallcovering.com",
   "siteName": "Fire-Rated Wallcovering",
-  "port": 9929,
+  "port": 9917,
   "siteEmail": "info@fireratedwallcovering.com",
   "tagline": "Fire-rated wallcoverings for code compliance.",
   "heroHeadline": "Fire-Rated Wallcovering",
diff --git a/sites/flocked.json b/sites/flocked.json
index cd6bc20..dc32ae7 100644
--- a/sites/flocked.json
+++ b/sites/flocked.json
@@ -2,7 +2,7 @@
   "slug": "flocked",
   "domain": "flocked.org",
   "siteName": "Flocked",
-  "port": 9930,
+  "port": 9918,
   "siteEmail": "info@flocked.org",
   "tagline": "Flocked velvet wallcoverings.",
   "heroHeadline": "Flocked",
diff --git a/sites/grassclothwallcovering.json b/sites/grassclothwallcovering.json
index 3f4db21..bd8dffb 100644
--- a/sites/grassclothwallcovering.json
+++ b/sites/grassclothwallcovering.json
@@ -2,7 +2,7 @@
   "slug": "grassclothwallcovering",
   "domain": "grassclothwallcovering.com",
   "siteName": "Grasscloth Wallcovering",
-  "port": 9931,
+  "port": 9919,
   "siteEmail": "info@grassclothwallcovering.com",
   "tagline": "Hand-crafted grasscloth wallcoverings.",
   "heroHeadline": "Grasscloth Wallcovering",
diff --git a/sites/handmadewallcovering.json b/sites/handmadewallcovering.json
index 3d869bb..03f4613 100644
--- a/sites/handmadewallcovering.json
+++ b/sites/handmadewallcovering.json
@@ -2,7 +2,7 @@
   "slug": "handmadewallcovering",
   "domain": "handmadewallcovering.com",
   "siteName": "Hand-Made Wallcovering",
-  "port": 9932,
+  "port": 9920,
   "siteEmail": "info@handmadewallcovering.com",
   "tagline": "Hand-made wallcoverings, artisan-crafted.",
   "heroHeadline": "Hand-Made Wallcovering",
diff --git a/sites/handmadewallpapers.json b/sites/handmadewallpapers.json
deleted file mode 100644
index d77edf9..0000000
--- a/sites/handmadewallpapers.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
-  "slug": "handmadewallpapers",
-  "domain": "handmadewallpapers.com",
-  "siteName": "Hand-Made Wallpapers",
-  "port": 9933,
-  "siteEmail": "info@handmadewallpapers.com",
-  "tagline": "Hand-crafted wallcoverings for the trade.",
-  "heroHeadline": "Hand-Made Wallpapers",
-  "heroSub": "Explore the collection",
-  "metaDesc": "Hand-Made Wallpapers — Hand-crafted wallcoverings for the trade. Free memo samples, expert trade service, and hand-holding on every order from Designer Wallcoverings.",
-  "nicheLabel": "designer wallcoverings",
-  "aboutCopy": "Hand-Made Wallpapers curates designer wallcoverings for designers, architects, and discerning homeowners. Hand-crafted wallcoverings for the trade. Every selection is backed by Designer Wallcoverings' decades of trade experience.",
-  "niche": {
-    "pos": [
-      "grasscloth",
-      "sisal",
-      "jute",
-      "hand screen",
-      "handcraft",
-      "artisan"
-    ],
-    "neg": [],
-    "types": []
-  },
-  "theme": {
-    "accent": "#9c6b30",
-    "bg": "#16120a",
-    "bgLight": "#f6f1e7",
-    "ink": "#f1ead9",
-    "inkLight": "#211c12",
-    "rule": "#d6c9ad",
-    "serif": "'Playfair Display',Georgia,serif",
-    "sans": "-apple-system,'Inter',system-ui,sans-serif",
-    "palette": "sand",
-    "font": "playfair"
-  }
-}
\ No newline at end of file
diff --git a/sites/handscreenedwallpaper.json b/sites/handscreenedwallpaper.json
deleted file mode 100644
index c7642e9..0000000
--- a/sites/handscreenedwallpaper.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
-  "slug": "handscreenedwallpaper",
-  "domain": "handscreenedwallpaper.com",
-  "siteName": "Hand-Screened Wallpaper",
-  "port": 9934,
-  "siteEmail": "info@handscreenedwallpaper.com",
-  "tagline": "Hand-screened wallcoverings.",
-  "heroHeadline": "Hand-Screened Wallpaper",
-  "heroSub": "Explore the collection",
-  "metaDesc": "Hand-Screened Wallpaper — Hand-screened wallcoverings. Free memo samples, expert trade service, and hand-holding on every order from Designer Wallcoverings.",
-  "nicheLabel": "designer wallcoverings",
-  "aboutCopy": "Hand-Screened Wallpaper curates designer wallcoverings for designers, architects, and discerning homeowners. Hand-screened wallcoverings. Every selection is backed by Designer Wallcoverings' decades of trade experience.",
-  "niche": {
-    "pos": [
-      "hand",
-      "screen",
-      "print",
-      "artisan",
-      "traditional"
-    ],
-    "neg": [],
-    "types": []
-  },
-  "theme": {
-    "accent": "#6a3a7a",
-    "bg": "#0e0a10",
-    "bgLight": "#f3eff3",
-    "ink": "#ece4ee",
-    "inkLight": "#1a131c",
-    "rule": "#cdc1d0",
-    "serif": "'Cormorant Garamond','Playfair Display',Georgia,serif",
-    "sans": "-apple-system,'Inter',system-ui,sans-serif",
-    "palette": "plum",
-    "font": "cormorant"
-  }
-}
\ No newline at end of file
diff --git a/sites/hollywoodwallcovering.json b/sites/hollywoodwallcovering.json
index 3dd82ee..de50573 100644
--- a/sites/hollywoodwallcovering.json
+++ b/sites/hollywoodwallcovering.json
@@ -2,7 +2,7 @@
   "slug": "hollywoodwallcovering",
   "domain": "hollywoodwallcovering.com",
   "siteName": "Hollywood Wallcovering",
-  "port": 9935,
+  "port": 9921,
   "siteEmail": "info@hollywoodwallcovering.com",
   "tagline": "Hollywood-glamour wallcoverings.",
   "heroHeadline": "Hollywood Wallcovering",
diff --git a/sites/hospitalitysalesagency.json b/sites/hospitalitysalesagency.json
index dcd885d..623ce9f 100644
--- a/sites/hospitalitysalesagency.json
+++ b/sites/hospitalitysalesagency.json
@@ -2,7 +2,7 @@
   "slug": "hospitalitysalesagency",
   "domain": "hospitalitysalesagency.com",
   "siteName": "Hospitality Sales Agency",
-  "port": 9936,
+  "port": 9922,
   "siteEmail": "info@hospitalitysalesagency.com",
   "tagline": "Hospitality wallcoverings and sales representation.",
   "heroHeadline": "Hospitality Sales Agency",
diff --git a/sites/hospitalitysalesagents.json b/sites/hospitalitysalesagents.json
deleted file mode 100644
index 4de6981..0000000
--- a/sites/hospitalitysalesagents.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
-  "slug": "hospitalitysalesagents",
-  "domain": "hospitalitysalesagents.com",
-  "siteName": "Hospitality Sales Agents",
-  "port": 9937,
-  "siteEmail": "info@hospitalitysalesagents.com",
-  "tagline": "Hospitality wallcovering sales agents.",
-  "heroHeadline": "Hospitality Sales Agents",
-  "heroSub": "Explore the collection",
-  "metaDesc": "Hospitality Sales Agents — Hospitality wallcovering sales agents. Free memo samples, expert trade service, and hand-holding on every order from Designer Wallcoverings.",
-  "nicheLabel": "designer wallcoverings",
-  "aboutCopy": "Hospitality Sales Agents curates designer wallcoverings for designers, architects, and discerning homeowners. Hospitality wallcovering sales agents. Every selection is backed by Designer Wallcoverings' decades of trade experience.",
-  "niche": {
-    "pos": [
-      "hospitality",
-      "hotel",
-      "contract",
-      "commercial"
-    ],
-    "neg": [],
-    "types": []
-  },
-  "theme": {
-    "accent": "#b08923",
-    "bg": "#0d0b06",
-    "bgLight": "#f7f3e8",
-    "ink": "#f2ecd8",
-    "inkLight": "#1c1810",
-    "rule": "#d8caa0",
-    "serif": "Georgia,'Times New Roman',serif",
-    "sans": "-apple-system,'Inter',system-ui,sans-serif",
-    "palette": "gilt",
-    "font": "georgia"
-  }
-}
\ No newline at end of file
diff --git a/sites/hospitalitysalesreps.json b/sites/hospitalitysalesreps.json
deleted file mode 100644
index d8e31fb..0000000
--- a/sites/hospitalitysalesreps.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
-  "slug": "hospitalitysalesreps",
-  "domain": "hospitalitysalesreps.com",
-  "siteName": "Hospitality Sales Reps",
-  "port": 9938,
-  "siteEmail": "info@hospitalitysalesreps.com",
-  "tagline": "Hospitality wallcovering trade reps.",
-  "heroHeadline": "Hospitality Sales Reps",
-  "heroSub": "Explore the collection",
-  "metaDesc": "Hospitality Sales Reps — Hospitality wallcovering trade reps. Free memo samples, expert trade service, and hand-holding on every order from Designer Wallcoverings.",
-  "nicheLabel": "designer wallcoverings",
-  "aboutCopy": "Hospitality Sales Reps curates designer wallcoverings for designers, architects, and discerning homeowners. Hospitality wallcovering trade reps. Every selection is backed by Designer Wallcoverings' decades of trade experience.",
-  "niche": {
-    "pos": [
-      "hospitality",
-      "hotel",
-      "contract",
-      "commercial"
-    ],
-    "neg": [],
-    "types": []
-  },
-  "theme": {
-    "accent": "#b08923",
-    "bg": "#0d0b06",
-    "bgLight": "#f7f3e8",
-    "ink": "#f2ecd8",
-    "inkLight": "#1c1810",
-    "rule": "#d8caa0",
-    "serif": "Georgia,'Times New Roman',serif",
-    "sans": "-apple-system,'Inter',system-ui,sans-serif",
-    "palette": "gilt",
-    "font": "georgia"
-  }
-}
\ No newline at end of file
diff --git a/sites/malibuwallpaper.json b/sites/malibuwallpaper.json
index 56edafc..b2253dc 100644
--- a/sites/malibuwallpaper.json
+++ b/sites/malibuwallpaper.json
@@ -2,7 +2,7 @@
   "slug": "malibuwallpaper",
   "domain": "malibuwallpaper.com",
   "siteName": "Malibu Wallpaper",
-  "port": 9939,
+  "port": 9923,
   "siteEmail": "info@malibuwallpaper.com",
   "tagline": "Coastal wallcoverings, Malibu style.",
   "heroHeadline": "Malibu Wallpaper",
diff --git a/sites/montereywallpaper.json b/sites/montereywallpaper.json
index 05506d5..02de24b 100644
--- a/sites/montereywallpaper.json
+++ b/sites/montereywallpaper.json
@@ -2,7 +2,7 @@
   "slug": "montereywallpaper",
   "domain": "montereywallpaper.com",
   "siteName": "Monterey Wallpaper",
-  "port": 9940,
+  "port": 9924,
   "siteEmail": "info@montereywallpaper.com",
   "tagline": "Monterey-coast wallcoverings.",
   "heroHeadline": "Monterey Wallpaper",
diff --git a/sites/naturalwalltextures.json b/sites/naturalwalltextures.json
index a4f4c23..186862c 100644
--- a/sites/naturalwalltextures.json
+++ b/sites/naturalwalltextures.json
@@ -2,7 +2,7 @@
   "slug": "naturalwalltextures",
   "domain": "naturalwalltextures.com",
   "siteName": "Natural Wall Textures",
-  "port": 9941,
+  "port": 9925,
   "siteEmail": "info@naturalwalltextures.com",
   "tagline": "Natural-fiber wall textures.",
   "heroHeadline": "Natural Wall Textures",
diff --git a/sites/patterndesignlab.json b/sites/patterndesignlab.json
index 24af742..e27297b 100644
--- a/sites/patterndesignlab.json
+++ b/sites/patterndesignlab.json
@@ -2,7 +2,7 @@
   "slug": "patterndesignlab",
   "domain": "patterndesignlab.com",
   "siteName": "Pattern Design Lab",
-  "port": 9942,
+  "port": 9926,
   "siteEmail": "info@patterndesignlab.com",
   "tagline": "A laboratory of pattern design.",
   "heroHeadline": "Pattern Design Lab",
diff --git a/sites/philliperomano.json b/sites/philliperomano.json
index 503fff7..90d09a2 100644
--- a/sites/philliperomano.json
+++ b/sites/philliperomano.json
@@ -2,7 +2,7 @@
   "slug": "philliperomano",
   "domain": "philliperomano.com",
   "siteName": "Phillipe Romano",
-  "port": 9943,
+  "port": 9927,
   "siteEmail": "info@philliperomano.com",
   "tagline": "The Phillipe Romano collection.",
   "heroHeadline": "Phillipe Romano",
diff --git a/sites/printmurals.json b/sites/printmurals.json
index 29b03a5..cc0f8c6 100644
--- a/sites/printmurals.json
+++ b/sites/printmurals.json
@@ -2,7 +2,7 @@
   "slug": "printmurals",
   "domain": "printmurals.com",
   "siteName": "Print Murals",
-  "port": 9944,
+  "port": 9928,
   "siteEmail": "info@printmurals.com",
   "tagline": "Printed murals for every wall.",
   "heroHeadline": "Print Murals",
diff --git a/sites/restaurantfabrics.json b/sites/restaurantfabrics.json
index 5f5d484..2993e44 100644
--- a/sites/restaurantfabrics.json
+++ b/sites/restaurantfabrics.json
@@ -2,7 +2,7 @@
   "slug": "restaurantfabrics",
   "domain": "restaurantfabrics.com",
   "siteName": "Restaurant Fabrics",
-  "port": 9945,
+  "port": 9929,
   "siteEmail": "info@restaurantfabrics.com",
   "tagline": "Designer fabrics for restaurants.",
   "heroHeadline": "Restaurant Fabrics",
diff --git a/sites/restaurantmurals.json b/sites/restaurantmurals.json
index e3339ee..7a1934c 100644
--- a/sites/restaurantmurals.json
+++ b/sites/restaurantmurals.json
@@ -2,7 +2,7 @@
   "slug": "restaurantmurals",
   "domain": "restaurantmurals.com",
   "siteName": "Restaurant Murals",
-  "port": 9946,
+  "port": 9930,
   "siteEmail": "info@restaurantmurals.com",
   "tagline": "Murals for restaurant interiors.",
   "heroHeadline": "Restaurant Murals",
diff --git a/sites/roomsettings.json b/sites/roomsettings.json
index a023bf3..be6854c 100644
--- a/sites/roomsettings.json
+++ b/sites/roomsettings.json
@@ -2,7 +2,7 @@
   "slug": "roomsettings",
   "domain": "roomsettings.com",
   "siteName": "Room Settings",
-  "port": 9947,
+  "port": 9931,
   "siteEmail": "info@roomsettings.com",
   "tagline": "Wallcoverings, seen in the room.",
   "heroHeadline": "Room Settings",
diff --git a/sites/sheltermagazines.json b/sites/sheltermagazines.json
index c93b449..2cf57e5 100644
--- a/sites/sheltermagazines.json
+++ b/sites/sheltermagazines.json
@@ -2,7 +2,7 @@
   "slug": "sheltermagazines",
   "domain": "sheltermagazines.com",
   "siteName": "Shelter Magazines",
-  "port": 9948,
+  "port": 9932,
   "siteEmail": "info@sheltermagazines.com",
   "tagline": "The wallcoverings of shelter editorial.",
   "heroHeadline": "Shelter Magazines",
diff --git a/sites/specifywallpaper.json b/sites/specifywallpaper.json
index 72617ac..0849cea 100644
--- a/sites/specifywallpaper.json
+++ b/sites/specifywallpaper.json
@@ -2,7 +2,7 @@
   "slug": "specifywallpaper",
   "domain": "specifywallpaper.com",
   "siteName": "Specify Wallpaper",
-  "port": 9949,
+  "port": 9933,
   "siteEmail": "info@specifywallpaper.com",
   "tagline": "Specify commercial wallcoverings with confidence.",
   "heroHeadline": "Specify Wallpaper",
diff --git a/sites/steveabramsdesigns.json b/sites/steveabramsdesigns.json
deleted file mode 100644
index 698aa8d..0000000
--- a/sites/steveabramsdesigns.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
-  "slug": "steveabramsdesigns",
-  "domain": "steveabramsdesigns.com",
-  "siteName": "Steve Abrams Designs",
-  "port": 9950,
-  "siteEmail": "info@steveabramsdesigns.com",
-  "tagline": "Steve Abrams — designs and wallcoverings.",
-  "heroHeadline": "Steve Abrams Designs",
-  "heroSub": "Explore the collection",
-  "metaDesc": "Steve Abrams Designs — Steve Abrams — designs and wallcoverings. Free memo samples, expert trade service, and hand-holding on every order from Designer Wallcoverings.",
-  "nicheLabel": "designer wallcoverings",
-  "aboutCopy": "Steve Abrams Designs curates designer wallcoverings for designers, architects, and discerning homeowners. Steve Abrams — designs and wallcoverings. Every selection is backed by Designer Wallcoverings' decades of trade experience.",
-  "niche": {
-    "pos": [],
-    "neg": [],
-    "types": [
-      "Wallcovering"
-    ]
-  },
-  "theme": {
-    "accent": "#444440",
-    "bg": "#080807",
-    "bgLight": "#f1f1f0",
-    "ink": "#ededec",
-    "inkLight": "#121211",
-    "rule": "#c8c8c5",
-    "serif": "'Bodoni Moda',Didot,Georgia,serif",
-    "sans": "-apple-system,'Helvetica Neue',Arial,sans-serif",
-    "palette": "ink",
-    "font": "bodoni"
-  }
-}
\ No newline at end of file
diff --git a/sites/stevenabramsphotography.json b/sites/stevenabramsphotography.json
index 050973b..4c5957d 100644
--- a/sites/stevenabramsphotography.json
+++ b/sites/stevenabramsphotography.json
@@ -2,7 +2,7 @@
   "slug": "stevenabramsphotography",
   "domain": "stevenabramsphotography.com",
   "siteName": "Steven Abrams Photography",
-  "port": 9951,
+  "port": 9934,
   "siteEmail": "info@stevenabramsphotography.com",
   "tagline": "Steven Abrams — photography and design.",
   "heroHeadline": "Steven Abrams Photography",
diff --git a/sites/thedesignerlaboratory.json b/sites/thedesignerlaboratory.json
deleted file mode 100644
index ab5f9b6..0000000
--- a/sites/thedesignerlaboratory.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
-  "slug": "thedesignerlaboratory",
-  "domain": "thedesignerlaboratory.com",
-  "siteName": "The Designer Laboratory",
-  "port": 9952,
-  "siteEmail": "info@thedesignerlaboratory.com",
-  "tagline": "The designer wallcovering laboratory.",
-  "heroHeadline": "The Designer Laboratory",
-  "heroSub": "Explore the collection",
-  "metaDesc": "The Designer Laboratory — The designer wallcovering laboratory. Free memo samples, expert trade service, and hand-holding on every order from Designer Wallcoverings.",
-  "nicheLabel": "designer wallcoverings",
-  "aboutCopy": "The Designer Laboratory curates designer wallcoverings for designers, architects, and discerning homeowners. The designer wallcovering laboratory. Every selection is backed by Designer Wallcoverings' decades of trade experience.",
-  "niche": {
-    "pos": [],
-    "neg": [],
-    "types": [
-      "Wallcovering"
-    ]
-  },
-  "theme": {
-    "accent": "#7d3c00",
-    "bg": "#14110d",
-    "bgLight": "#faf7f2",
-    "ink": "#f3efe8",
-    "inkLight": "#1a1714",
-    "rule": "#d8cec0",
-    "serif": "'Cormorant Garamond','Playfair Display',Georgia,serif",
-    "sans": "-apple-system,'Inter',system-ui,sans-serif",
-    "palette": "ivory",
-    "font": "cormorant"
-  }
-}
\ No newline at end of file
diff --git a/sites/thehotelwallpaper.json b/sites/thehotelwallpaper.json
index 2870490..0941d57 100644
--- a/sites/thehotelwallpaper.json
+++ b/sites/thehotelwallpaper.json
@@ -2,7 +2,7 @@
   "slug": "thehotelwallpaper",
   "domain": "thehotelwallpaper.com",
   "siteName": "The Hotel Wallpaper",
-  "port": 9953,
+  "port": 9935,
   "siteEmail": "info@thehotelwallpaper.com",
   "tagline": "Wallcoverings for the modern hotel.",
   "heroHeadline": "The Hotel Wallpaper",
diff --git a/sites/traditionalwhimsy.json b/sites/traditionalwhimsy.json
index e31c61e..03fad2d 100644
--- a/sites/traditionalwhimsy.json
+++ b/sites/traditionalwhimsy.json
@@ -2,7 +2,7 @@
   "slug": "traditionalwhimsy",
   "domain": "traditionalwhimsy.com",
   "siteName": "Traditional Whimsy",
-  "port": 9954,
+  "port": 9936,
   "siteEmail": "info@traditionalwhimsy.com",
   "tagline": "Traditional wallcoverings with a whimsical turn.",
   "heroHeadline": "Traditional Whimsy",
diff --git a/sites/unitedstateswallpaper.json b/sites/unitedstateswallpaper.json
index 751874f..58eb5aa 100644
--- a/sites/unitedstateswallpaper.json
+++ b/sites/unitedstateswallpaper.json
@@ -2,7 +2,7 @@
   "slug": "unitedstateswallpaper",
   "domain": "unitedstateswallpaper.com",
   "siteName": "United States Wallpaper",
-  "port": 9955,
+  "port": 9937,
   "siteEmail": "info@unitedstateswallpaper.com",
   "tagline": "American designer wallcoverings.",
   "heroHeadline": "United States Wallpaper",
diff --git a/sites/wallcovering.json b/sites/wallcovering.json
index 662d81f..edc81c9 100644
--- a/sites/wallcovering.json
+++ b/sites/wallcovering.json
@@ -2,7 +2,7 @@
   "slug": "wallcovering",
   "domain": "wallcovering.net",
   "siteName": "Wallcovering",
-  "port": 9956,
+  "port": 9938,
   "siteEmail": "info@wallcovering.net",
   "tagline": "Wallcovering — the catalog.",
   "heroHeadline": "Wallcovering",
diff --git a/sites/wallpaperexports.json b/sites/wallpaperexports.json
index a0c7f6f..91c5372 100644
--- a/sites/wallpaperexports.json
+++ b/sites/wallpaperexports.json
@@ -2,7 +2,7 @@
   "slug": "wallpaperexports",
   "domain": "wallpaperexports.com",
   "siteName": "Wallpaper Exports",
-  "port": 9957,
+  "port": 9939,
   "siteEmail": "info@wallpaperexports.com",
   "tagline": "Designer wallcoverings for export.",
   "heroHeadline": "Wallpaper Exports",
diff --git a/sites/wallpaperfromthe80s.json b/sites/wallpaperfromthe80s.json
index 505a526..535cbd0 100644
--- a/sites/wallpaperfromthe80s.json
+++ b/sites/wallpaperfromthe80s.json
@@ -2,7 +2,7 @@
   "slug": "wallpaperfromthe80s",
   "domain": "wallpaperfromthe80s.com",
   "siteName": "Wallpaper From The 80s",
-  "port": 9958,
+  "port": 9940,
   "siteEmail": "info@wallpaperfromthe80s.com",
   "tagline": "Retro wallcoverings with 80s spirit.",
   "heroHeadline": "Wallpaper From The 80s",
diff --git a/sites/wallpaperny.json b/sites/wallpaperny.json
index c3826e4..d5e52a2 100644
--- a/sites/wallpaperny.json
+++ b/sites/wallpaperny.json
@@ -2,7 +2,7 @@
   "slug": "wallpaperny",
   "domain": "wallpaperny.com",
   "siteName": "Wallpaper NY",
-  "port": 9959,
+  "port": 9941,
   "siteEmail": "info@wallpaperny.com",
   "tagline": "New York designer wallcoverings.",
   "heroHeadline": "Wallpaper NY",
diff --git a/sites/wallpapernyc.json b/sites/wallpapernyc.json
deleted file mode 100644
index 71373c6..0000000
--- a/sites/wallpapernyc.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
-  "slug": "wallpapernyc",
-  "domain": "wallpapernyc.com",
-  "siteName": "Wallpaper NYC",
-  "port": 9960,
-  "siteEmail": "info@wallpapernyc.com",
-  "tagline": "NYC designer wallcoverings.",
-  "heroHeadline": "Wallpaper NYC",
-  "heroSub": "Explore the collection",
-  "metaDesc": "Wallpaper NYC — NYC designer wallcoverings. Free memo samples, expert trade service, and hand-holding on every order from Designer Wallcoverings.",
-  "nicheLabel": "designer wallcoverings",
-  "aboutCopy": "Wallpaper NYC curates designer wallcoverings for designers, architects, and discerning homeowners. NYC designer wallcoverings. Every selection is backed by Designer Wallcoverings' decades of trade experience.",
-  "niche": {
-    "pos": [],
-    "neg": [],
-    "types": [
-      "Wallcovering"
-    ]
-  },
-  "theme": {
-    "accent": "#a8884a",
-    "bg": "#0a0a09",
-    "bgLight": "#f4f2ee",
-    "ink": "#f0ede6",
-    "inkLight": "#15140f",
-    "rule": "#cfcabf",
-    "serif": "'Playfair Display',Georgia,serif",
-    "sans": "-apple-system,'Inter',system-ui,sans-serif",
-    "palette": "noir",
-    "font": "playfair"
-  }
-}
\ No newline at end of file
diff --git a/sites/wallpaperpurchasing.json b/sites/wallpaperpurchasing.json
index 3c13168..4eff0a7 100644
--- a/sites/wallpaperpurchasing.json
+++ b/sites/wallpaperpurchasing.json
@@ -2,7 +2,7 @@
   "slug": "wallpaperpurchasing",
   "domain": "wallpaperpurchasing.com",
   "siteName": "Wallpaper Purchasing",
-  "port": 9961,
+  "port": 9942,
   "siteEmail": "info@wallpaperpurchasing.com",
   "tagline": "Commercial wallcovering purchasing.",
   "heroHeadline": "Wallpaper Purchasing",
diff --git a/sites/wallpaperweekly.json b/sites/wallpaperweekly.json
index 3a41f06..f1ee614 100644
--- a/sites/wallpaperweekly.json
+++ b/sites/wallpaperweekly.json
@@ -2,7 +2,7 @@
   "slug": "wallpaperweekly",
   "domain": "wallpaperweekly.com",
   "siteName": "Wallpaper Weekly",
-  "port": 9962,
+  "port": 9943,
   "siteEmail": "info@wallpaperweekly.com",
   "tagline": "New designer wallcoverings, weekly.",
   "heroHeadline": "Wallpaper Weekly",
diff --git a/sites/wc-01.json b/sites/wc-01.json
deleted file mode 100644
index 286f395..0000000
--- a/sites/wc-01.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
-  "slug": "wc-01",
-  "domain": "wc-01.com",
-  "siteName": "WC-01",
-  "port": 9963,
-  "siteEmail": "info@wc-01.com",
-  "tagline": "WC-01 — commercial wallcoverings.",
-  "heroHeadline": "WC-01",
-  "heroSub": "Explore the collection",
-  "metaDesc": "WC-01 — WC-01 — commercial wallcoverings. Free memo samples, expert trade service, and hand-holding on every order from Designer Wallcoverings.",
-  "nicheLabel": "designer wallcoverings",
-  "aboutCopy": "WC-01 curates designer wallcoverings for designers, architects, and discerning homeowners. WC-01 — commercial wallcoverings. Every selection is backed by Designer Wallcoverings' decades of trade experience.",
-  "niche": {
-    "pos": [
-      "commercial",
-      "contract",
-      "class a"
-    ],
-    "neg": [],
-    "types": []
-  },
-  "theme": {
-    "accent": "#444440",
-    "bg": "#080807",
-    "bgLight": "#f1f1f0",
-    "ink": "#ededec",
-    "inkLight": "#121211",
-    "rule": "#c8c8c5",
-    "serif": "Georgia,'Times New Roman',serif",
-    "sans": "-apple-system,'Inter',system-ui,sans-serif",
-    "palette": "ink",
-    "font": "georgia"
-  }
-}
\ No newline at end of file
diff --git a/sites/wc01wallcoverings.json b/sites/wc01wallcoverings.json
index 6b7956c..42d751d 100644
--- a/sites/wc01wallcoverings.json
+++ b/sites/wc01wallcoverings.json
@@ -2,7 +2,7 @@
   "slug": "wc01wallcoverings",
   "domain": "wc01wallcoverings.com",
   "siteName": "WC-01 Wallcoverings",
-  "port": 9964,
+  "port": 9944,
   "siteEmail": "info@wc01wallcoverings.com",
   "tagline": "WC-01 commercial wallcoverings.",
   "heroHeadline": "WC-01 Wallcoverings",
diff --git a/sites/wc01wallpaper.json b/sites/wc01wallpaper.json
deleted file mode 100644
index 158e3a7..0000000
--- a/sites/wc01wallpaper.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
-  "slug": "wc01wallpaper",
-  "domain": "wc01wallpaper.com",
-  "siteName": "WC-01 Wallpaper",
-  "port": 9965,
-  "siteEmail": "info@wc01wallpaper.com",
-  "tagline": "WC-01 commercial wallcoverings.",
-  "heroHeadline": "WC-01 Wallpaper",
-  "heroSub": "Explore the collection",
-  "metaDesc": "WC-01 Wallpaper — WC-01 commercial wallcoverings. Free memo samples, expert trade service, and hand-holding on every order from Designer Wallcoverings.",
-  "nicheLabel": "designer wallcoverings",
-  "aboutCopy": "WC-01 Wallpaper curates designer wallcoverings for designers, architects, and discerning homeowners. WC-01 commercial wallcoverings. Every selection is backed by Designer Wallcoverings' decades of trade experience.",
-  "niche": {
-    "pos": [
-      "commercial",
-      "contract",
-      "class a"
-    ],
-    "neg": [],
-    "types": []
-  },
-  "theme": {
-    "accent": "#444440",
-    "bg": "#080807",
-    "bgLight": "#f1f1f0",
-    "ink": "#ededec",
-    "inkLight": "#121211",
-    "rule": "#c8c8c5",
-    "serif": "Georgia,'Times New Roman',serif",
-    "sans": "-apple-system,'Inter',system-ui,sans-serif",
-    "palette": "ink",
-    "font": "georgia"
-  }
-}
\ No newline at end of file

← 32e95f9 fleet: DNS cutover + SSL + deploy scripts, PROGRESS.md  ·  back to Dw Domain Fleet  ·  fleet: STEP 2 — re-port fleet-44 to 10001-10044 (clear colli b57956d →