Wallpapercanada
Search the build
-
26ec0802026-07-06 Square product-card images (aspect-ratio 1/1) -
630376a2026-07-03 corner-nav: move login to its own hamburger in upper-left (panel slides from left) -
c3879e42026-06-19 Mount new-arrivals promo strip (Tier B): require ../_shared/_universal-promo-banner before express.static — text-only rotating 'New · <product> →' banner from /api/products?sort=newest. Local only; deploy gated. -
0e0c8b62026-06-18 fix: safeImg allow same-origin /img/ proxy urls (vendor-neutral image proxy 2026-06-03) — product cards were falling back to hero-bg (images all wrong) -
713d1d92026-06-11 Recompute aesthetic from tags via classifyAesthetic (was degenerate 'all' snapshot) -
f3097f22026-06-09 step2 vendor-leak fix: dual-key /sample resolver + handle_display hrefs -
7eda6692026-06-09 snapshot before step2 codemod -
af18cf02026-06-03 Scrub residual vendor names from products.json (title/vendor/tags); preserve sku/handle -
62c8b442026-06-01 admin: add dw-theme-nav 20-theme navigator (upper-right, admin-only) -
3c42a252026-06-01 fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local branch -
1ff66b52026-06-01 dw-header: hide ANY pre-existing <header> (not just ns-header); title-case bare-slug names -
cc8bd142026-06-01 FIX: dw-header was injected inside a doc-comment (never ran); re-inject before the real </body> -
8f952ab2026-06-01 hero: rotate curated room-setting pool (hero-pool.json), guard >=1400px, no swatch blur -
82697b72026-06-01 hero: huge 2520px clean hero from dw_unified (graphic-designer vetted; no header/text/watermark) -
fd8ef052026-06-01 header A-rebuild: dw-header.js wins fleet — patched to hide original header + corner-nav + v1, fix centered site-name (title fallback), add theme toggle; v1 removed from index -
c0e04172026-06-01 header: remove dw-header.js — fixes overlapping hamburgers (DW-HAMBURGER-NAV v1 sole nav); fleet regression sweep -
b6e81572026-06-01 hero/ideas: single big full-bleed hero (remove 2x2 four-square grid + hero-4grid.js/json + inert CSS), collapse Ideas to one rail -
4e708672026-06-01 disable hero-4grid overlay so the unique high-res room/pattern hero shows full-bleed -
cbba2482026-06-01 fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local branch -
0874f5d2026-06-01 homepage: collapse duplicated 'Ideas' rail-eyebrows into one section eyebrow -
1783e6d2026-06-01 Unique hero image (backsync from prod, fleet hero dedup 2026-06-01) -
f1a5ceb2026-06-01 Revert "Remove Big Red widget — never UX-worked, collided with Help pill (fleet sweep)" -
8c17f572026-06-01 fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local pilot branch -
f5e76b82026-06-01 Remove Big Red widget — never UX-worked, collided with Help pill (fleet sweep) -
42a408e2026-06-01 facets: filter-aware drill-down counts (shared filterProducts, per-dimension skip) -
03655a12026-05-30 fix: remove leaked public/index.html.bak file + harden bak-guard regex to cover .bak-* filenames -
b6b91202026-05-29 feat(fleet): theme1/theme2 query-param-gated toggle on catalog page -
b9c87c82026-05-28 scrub vendor name leaks from products.json source (224 products: title/vendor/tags cleaned per sku-redact denylist) -
3cbcb1f2026-05-26 frontend: cleanSku() strips vendor names from displayed sku (.ven/list/detail) + defer renderRailSections call (fix ReferenceError) — click-through verified -
ebf35702026-05-26 sku-redact: wire shared vendor-id display scrubber (proof site, local) -
98886762026-05-26 rails: tag-aware facet filter (productInRail) so rail drill-down + pills return products (fix regression) -
cff90a52026-05-26 rails: editorial labels for new tag-derived rail keys (index.html LABELS) -
da21eed2026-05-26 fix package-lock name field (stale hospitalitywallpaper from scaffold copy) -
86eb0492026-05-26 rails: build from tags via shared rail-match helper (fix degenerate single-rail collapse) -
aa91da42026-05-26 rails: editorial labels for firing aesthetic buckets -
6783aaa2026-05-26 rails: wire /api/sliders into horizontal scroll-snap rail sections [rails-degenerate] -
a31eac92026-05-25 wire api-vendor-redact middleware — strips vendor field + vendors facet + ?vendor= from /api/* responses -
95e6d352026-05-25 redact vendor name on customer cards + rail tiles (show Designer Wallcoverings instead) -
1746fa12026-05-25 retag aesthetic from PG: 600 rows updated -
e5c01e62026-05-20 add: pre-stage Meta Pixel snippet (placeholder; flip via _dw-batch set-fb-pixel.sh) -
4763ad32026-05-19 make server.js self-contained — gate _shared/admin-catalog behind MICROSITE_ADMIN_ENABLED env flag (kamatera deploy unblock) -
28b62e42026-05-19 Phase 2b: harden .card .pat against long-token title clipping (overflow-wrap) -
2ae6d3b2026-05-19 Phase 2: mobile-ready + tap-to-reveal -
515af192026-05-19 fix site.config.json — correct slug/identity (was copy-pasted from hospitalitywallpaper) -
e1c084e2026-05-19 stage2: wire microsite catalog + admin CRUD + grid/list view -
446b34f2026-05-19 security: add rel=noopener noreferrer to all target=_blank external links -
abe92132026-05-19 nav: remove dead /about links (3) — no About page or route exists -
2ee110e2026-05-19 server: 404-guard for snapshot paths + facets total counts the served list -
56a7fe72026-05-19 chore: untrack 18 editor snapshot files (*.bak / *.pre-*) and broaden .gitignore -
d03187d2026-05-19 sort: honor sort param — send state.sort to /api/products and hydrate saved value before first grid load -
131605d2026-05-14 hero-4grid: relocate json from data/ to public/ for Express static -
305f7802026-05-14 4-grid hero: drop-in script + crop CSS + initial 4 newest products -
2da67332026-05-14 favicon: Mag-7-inspired SVG glyph -
cdfec992026-05-13 corner-nav: title-case the brand name even when .ns-name source is lowercase -
d507caf2026-05-13 corner-nav: title-case brand display (e.g. corkwallcovering → Cork Wallcovering) -
6e9f86d2026-05-13 fix: contact modal CSS + HTML (was rendering inline as raw emoji/links) -
faf1f8b2026-05-13 embed Big Red customer chat (lower-left, retail mode, vendor-redacted) -
31cab582026-05-13 chip-click → product details modal; vendor redacted in card overlay -
c190ab02026-05-13 add universal corner-nav.js (UR 4-icon: bag/account/search/menu) -
43093142026-05-13 remove stray contact modal markup that was rendering inline on the page -
9ea470a2026-05-11 hamburger nav: apply canonical pattern from sister-site fleet -
16884352026-05-11 snapshot before fleet-grid refine -
58615c32026-05-10 sort-skill UI: add Light→Dark / Dark→Light / Color Wheel options -
a45c0e82026-05-10 sort-skill canonical: add light-dark/dark-light/wheel + helpers -
03dbc9d2026-05-10 add gated figma capture loader (only fires on ?figmacapture= URL param) -
7a79c5d2026-05-10 brand customization for wallpapercanada -
690b5d62026-05-08 fleet UX: novasuede-style hamburger drawer (DW-Websites/_shared/dw-fleet-nav.js) -
c9699382026-05-07 graphic-loop pass 13: real footer brand + Facebook link + OG/Twitter meta tags -
f8c4ed72026-05-07 graphic-loop pass 12: niche keyword filter (no off-niche products like 'solid' on patterned sites) -
3e4a6bb2026-05-07 graphic-loop pass 11: add Ideas rails (New this week + Curated picks) above main grid -
de6aabe2026-05-07 graphic-loop pass 10: center-mark to top + readable text-shadow + tighter letter-spacing (no mix-blend-mode) -
fb4455f2026-05-07 graphic-loop pass 9: real site name + 20-image hero rotation + 2400px hero res -
9880dd82026-05-07 graphic-loop pass 8: theme-aware font Cormorant Garamond (panel-approved comprehensive 16-bucket assignment) -
2cbfe462026-05-06 graphic-loop pass 2: fix .corner-mark contrast + soften hero overlay (qwen3:14b consensus across fleet) -
404c2522026-05-06 initial scaffold (gitify-all 2026-05-06)
Authors
- Steve75
Agents used
Skills used
- /body3
- /products2
- /vendor2
- /tags2
- /index2
- /list2
- /about2
- /sample1
- /handle1
- /text1
- /watermark1
- /ideas1
- /json1
- /pattern1
- /theme21
- /detail1
- /sliders1
- /admin-catalog1
- /identity1
- /facets1
- /links1
- /account1
- /search1
- /menu1
- /dark-light1
- /wheel1
- /robots1
- /dw-fleet-nav1
Creative ideas + design notes
03655a1 · 2026-05-30 · fix: remove leaked public/index.html.bak file + harden bak-guard regex to cover .bak-* filenames
- rm public/index.html.bak-20260526152130 (was returning 200 via static) - guard regex /(^|\.)bak(\.|$)/ missed .bak-TIMESTAMP pattern; updated to ([.\-]|$) - .gitignore: add *.bak-* alongside existing *.bak / *.bak.* Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
b6b9120 · 2026-05-29 · feat(fleet): theme1/theme2 query-param-gated toggle on catalog page
Default: theme1, toggle hidden. Opt-in via ?theme=2 or localStorage
('wallco-page-theme' key shared across the fleet). Same gate pattern
as dw-domain-fleet productPage.
1746fa1 · 2026-05-25 · retag aesthetic from PG: 600 rows updated
before: all=600 after: architectural=600 Backfills correct multi-bucket aesthetic tagging from dw_unified.microsite_products (DTD verdict B, 2026-05-25 fleet retag run). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
446b34f · 2026-05-19 · security: add rel=noopener noreferrer to all target=_blank external links
Facebook footer link and dw-fleet-nav sister-brand links upgraded from noopener to noopener noreferrer; the programmatic window.open fleet-tile handler now passes 'noopener,noreferrer' as windowFeatures. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
abe9213 · 2026-05-19 · nav: remove dead /about links (3) — no About page or route exists
The single-page storefront has no /about page, no about.html, and no server route. Removed the 3 dead links (primary nav, footer, burger panel) rather than scaffold an empty route. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2ee110e · 2026-05-19 · server: 404-guard for snapshot paths + facets total counts the served list
Added middleware that 404s any .bak / .pre-* request before express.static so leftover snapshot files can never serve from the static root. /api/facets total now reports PRODUCTS_NICHE.length (the list actually served) instead of the raw pre-niche-filter PRODUCTS.length. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
56a7fe7 · 2026-05-19 · chore: untrack 18 editor snapshot files (*.bak / *.pre-*) and broaden .gitignore
These index.html / server.js snapshots were committed to the repo (15 under public/, where they served as static files). Removed from the index, broadened .gitignore to *.bak.* and *.pre-*. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
d03187d · 2026-05-19 · sort: honor sort param — send state.sort to /api/products and hydrate saved value before first grid load
loadGridPage never sent the sort param so the server's sort was always 'newest'. The DW-standard wire-up also ran after the initial loadGridPage(), so a saved sort was ignored on first paint. Moved hydration before first load and removed the duplicate change-listener block. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
6e9f86d · 2026-05-13 · fix: contact modal CSS + HTML (was rendering inline as raw emoji/links)
Same root cause as the hospitalitywallcoverings fix — .ns-modal / .ns-action CSS missing, modal rendered inline with default-blue underlined links. Added the CSS block + the contact HTML block with the WPC-specific info@wallpapercanada.com mailto.
03dbc9d · 2026-05-10 · add gated figma capture loader (only fires on ?figmacapture= URL param)
The script never loads for normal visitors — only when the URL contains 'figmacapture=' query string or hash, which is required for the figma MCP generate_figma_design tool to convert the page to a Figma file.
7a79c5d · 2026-05-10 · brand customization for wallpapercanada
- swap Heritage Atelier → site-specific brand - swap GA G-XM0936TL4N → site-specific measurement_id - swap palette + typography to match per-site fashion template - swap port + sitemap/robots domain
690b5d6 · 2026-05-08 · fleet UX: novasuede-style hamburger drawer (DW-Websites/_shared/dw-fleet-nav.js)
This site has 2 </body> (one in a comment block) — script tag goes before the LAST </body> per the corrected injector logic.