Naturaltextilewallpaper
Search the build
-
4d090cb2026-07-03 corner-nav: move login to its own hamburger in upper-left (panel slides from left) -
91489092026-06-21 deploy: scaffold .deploy.conf for banner deploy -
6e82e1f2026-06-21 banner: wire universal promo-banner require above express.static (officer-approved; deploy gated) -
d4797372026-06-11 Recompute aesthetic from tags via classifyAesthetic (was degenerate 'all' snapshot) -
13c12842026-06-04 seo: add per-page canonical + Open Graph + Twitter card (headHTML threads canonical+ogImage; index collapses facets to material per DTD-B, detail uses redacted product slug) -
2f5369f2026-06-03 Scrub residual vendor names from products.json (title/vendor/tags); preserve sku/handle -
2895d202026-06-03 Vendor-neutral image proxy via _shared/image-proxy: hero+detail render + /api/products+/api/sliders emit /img/<token>, server streams CDN bytes. Kills image_url vendor-name leak (279 Wolf Gordon products). Proven local: 0 image/cdn leaks, /img 200. (handle/sku concatenated-vendor TEXT leak is separate/pre-existing.) -
c2bd7bc2026-05-31 render: route buy CTA + main-store anchor + card sample through /buy/:slug + close denylist gap (cowtan/designtex/knoll/brewster/york/fabricut/stout/hygge/designerwallcoverings); kill vendor-handle DOM leak (mirrors fleet a85eb02) -
f63b9512026-05-31 Add per-site favicon (kills /favicon.ico 404) -
e170ae62026-05-30 scrub residual 3rd-party vendor names from products.json source (per sku-redact denylist; sku/handle + DW house brands preserved) -
b6f6b8c2026-05-30 fix: strip bare '-arte' (Arte International abbrev) from product slugs + sort denylist longest-first so 'arte international' strips before 'arte' (no 'international' residue). Closes residual leak from 2026-05-30 verify sweep. -
1f0773a2026-05-29 fix: strip vendor tokens from product slug (redactVendorSlug) + dual-key route resolve — closes standalone slug vendor leak -
97397c52026-05-29 feat(theme): add ?theme=N toggle to headHTML() — mirrors dw-domain-fleet productPage() canonical (commit 34fbe0e). Single block injected after <body> opening (closes the headHTML template-literal cleanly). Uses 'data-page-theme' attribute + 'wallco-page-theme' localStorage key — distinct from this site's existing data-theme dark/light system (ntw_theme key) so no collision. Hidden until ?theme=1|2 or localStorage opt-in. -
8f891e82026-05-28 scrub vendor name leaks from products.json source (1309 products: title/vendor/tags cleaned per sku-redact denylist) -
01349642026-05-26 redact vendor names from customer-facing /api (close fleet leak) -
1fcdeed2026-05-25 replace p.vendor render on detail page with 'Designer Wallcoverings' brand string -
d2fa5f32026-05-25 retag aesthetic from PG: 4166 rows updated -
151be032026-05-19 make server.js self-contained — gate _shared/admin-catalog behind MICROSITE_ADMIN_ENABLED env flag (kamatera deploy unblock) -
b4fde9f2026-05-19 add ns-contact modal (CSS + HTML + JS) — info@naturaltextilewallpaper.com -
34181042026-05-19 add corner-nav.js — universal top-right nav per _shared/corner-nav.js -
9fe6fb92026-05-19 Phase 2: mobile-ready + tap-to-reveal -
393ab0e2026-05-19 stage2: wire naturaltextilewallpaper onto shared catalog (hand-tailored) -
d25f7422026-05-19 Untrack server.js.pre-sort-skill snapshot; broaden .gitignore -
f812ade2026-05-19 Hydrate saved sort from localStorage before first grid load -
10d0c182026-05-13 snapshot: 1 file(s) changed, +1 new -
2b867462026-05-10 sort-skill canonical: add light-dark/dark-light/wheel + helpers -
f2493792026-05-07 initial scaffold: NTW site — 4166 natural-fiber products, Loro Piana aesthetic, dark/light toggle, material filter pills, infinite scroll
Authors
- Steve27
Agents used
Skills used
- /vendor2
- /tags2
- /handle2
- /light2
- /image-proxy1
- /products1
- /sliders1
- /cdn1
- /sku1
- /pre-existing1
- /buy1
- /designtex1
- /knoll1
- /brewster1
- /york1
- /fabricut1
- /stout1
- /hygge1
- /designerwallcoverings1
- /favicon1
- /admin-catalog1
- /corner-nav1
- /dark-light1
- /wheel1
Creative ideas + design notes
d2fa5f3 · 2026-05-25 · retag aesthetic from PG: 4166 rows updated
before: <null>=4166 after: all=30, architectural=65, commercial=3940, textured=49, vinyl=82 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>
d25f742 · 2026-05-19 · Untrack server.js.pre-sort-skill snapshot; broaden .gitignore
Removed the committed editor snapshot from version control and extended .gitignore to cover *.bak, *.bak.*, *.pre-*, *.orig and backup tilde files so future snapshots never get committed. A static middleware guard already 404s any .bak/.pre-/.orig/.swp/.tmp request so these files never serve from the public root. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
f812ade · 2026-05-19 · Hydrate saved sort from localStorage before first grid load
The sort <select> persisted its value but never re-applied it on a fresh visit, so the catalog always loaded in 'newest' order regardless of the user's last choice. hydrateSort() now checks localStorage and issues a window.location.replace with the saved sort BEFORE the grid's initial loadPage() runs, gating the IntersectionObserver setup on it. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>