1960swallpaper
Search the build
-
817b5cc2026-09-23 front-page-steward: ux-primitives bundle (grid) TK-12031 -
81d8f2e2026-09-22 revert ux-primitives auto-apply — coordinator gates fan-out (TK-12031) -
28536452026-09-22 front-page-steward: ux-primitives bundle (silent) TK-12031 -
ac295e32026-09-16 TK-11787: restore 1960swallpaper site identity (undo retrowalls template flattening from 2026-09-10) -
41885562026-09-15 hero: flash-free R4 (flip after cells paint + clear grid) — yoloforever cycle 2 -
ee711412026-09-15 hero: remove hero-4grid.js collision, R4 alternating block is sole owner (yoloforever cycle 1) -
2f940cd2026-09-14 1960swallpaper: add .deploy.conf (Kamatera /var/www/1960swallpaper.com, matches fleet deploy path) -
8ddaa4a2026-09-14 1960swallpaper: declare helmet + dotenv (undeclared deps would crash prod on npm ci --production) -
81f42952026-09-10 Add clean /privacy route (AdSense URL consistency) -
32c552f2026-09-10 Standardize privacy policy to /privacy.html + footer link (AdSense) -
f6087da2026-09-10 Add AdSense-compliant privacy policy page + footer link + /privacy route -
d1a1be72026-09-09 TK-11341: add AdSense Auto-Ads loader + ads.txt (revert to remove ads) -
090a53d2026-08-24 auto-data-snapshot: 2026-08-24T04:13:07 (1 data files) — server.js.ldrbak.1787569812 -
470120c2026-08-24 Add p.visible!==false guard to product load filter (cluster5 resid) -
b7c64c52026-08-22 auto-data-snapshot: 2026-08-22T11:19:22 (1 data files) — data/products.json -
d5cdfed2026-08-12 viewer standard: add per-field on/off menu (Fields ▾) to product grid -
07374e92026-08-04 fix: take infinite-scroll .loading indicator out of flow (kills ~0.3-0.4 CLS scroll-jump) -
6fc789e2026-08-04 Wire DW Meta Pixel 1431180262113856 + DW-network ad slot [ads/tracking rollout] -
bb726dc2026-08-03 GA4: propagate site gtag to untagged pages (fleet coverage) -
c1dd8ee2026-08-01 1960swallpaper: adopt href-to-deeper-data storefront primitives (TK-10093) -
ce04fb62026-07-30 search: scroll results into view on mobile (grid was below the fold → looked like nothing happened) -
7fae0b42026-07-29 corner-nav: block javascript:/data: URIs in search preview (URL-scheme allowlist) -
b63c92b2026-07-29 search: /api matcher now covers title+tags+description+type+vendor+sku -
568d8db2026-07-29 corner-nav: live as-you-type search with thumbnail previews (title+tags+description) -
c3e27772026-07-06 Square product-card images (aspect-ratio 1/1) -
dbb48fb2026-07-03 corner-nav: move login to its own hamburger in upper-left (panel slides from left) -
b34f1332026-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. -
9b397e52026-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) -
1ef53a42026-06-11 Recompute aesthetic from tags via classifyAesthetic (was degenerate 'all' snapshot) -
403f4962026-06-11 1960swallpaper: rails fire again — wire sliders + grid filter to aesthetic-OR-tags matcher (prod-safe try-require + inline fallback) -
3c75b1c2026-06-09 step2 vendor-leak fix: dual-key /sample resolver + handle_display hrefs -
b7021c52026-06-09 snapshot before step2 codemod -
968347a2026-06-03 Scrub residual vendor names from products.json (title/vendor/tags); preserve sku/handle -
d9b620f2026-06-03 seo/a11y: add visually-hidden <h1> (site name) for heading semantics — zero visual change -
113fc972026-06-03 a11y: add aria-label to contact/sample form inputs (zero visual; screen-reader association) -
566c0642026-06-01 admin: dw-theme-nav drop-in — 20-theme next/back navigator (upper-right, admin-only) -
67f67122026-06-01 fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local branch -
a495c542026-06-01 theme: period-appropriate decade color palette (light+dark :root + accent) -
106b4d12026-06-01 dw-header: hide ANY pre-existing <header> (not just ns-header); title-case bare-slug names -
bef90a02026-06-01 catalog: add 1256 mid-century/retro wallcoverings from Shopify (was 3 live) -
289bc7d2026-06-01 FIX: dw-header was injected inside a doc-comment (never ran); re-inject before the real </body> -
24ea10b2026-06-01 hero: rotate curated room-setting pool (hero-pool.json), guard >=1400px, no swatch blur -
973dee92026-06-01 header name → domain name '1960s Wallpaper' (remove odd brand name) -
df641732026-06-01 hero: huge 2520px clean hero from dw_unified (graphic-designer vetted; no header/text/watermark) -
9fb8a4d2026-06-01 hero: graphic-designer-vetted clean replacement (no baked text/watermark/vendor logo) -
16dba0d2026-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 -
6c45ef02026-06-01 disable hero-4grid overlay so the unique high-res hero shows full-bleed (pilot) -
47196a52026-06-01 fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local branch -
e0f4be32026-06-01 homepage: collapse duplicated 'Ideas' rail-eyebrows into one section eyebrow -
55bce0d2026-06-01 Unique hero image (backsync from prod, fleet hero dedup 2026-06-01) -
66527292026-06-01 Re-add Big Red embed (revert conflicted; re-injected) -
337b6182026-06-01 fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local pilot branch -
ae773192026-06-01 hero: activate self-contained 2x2 hero-4grid (fleet sweep, local) -
93325ce2026-06-01 Remove Big Red widget — never UX-worked, collided with Help pill (fleet sweep) -
cefd88a2026-06-01 fix(security): add noopener,noreferrer to window.open sister-site nav -
7ae38892026-06-01 fix(api): /api/facets counts reflect filtered result set (skip own dimension) -
a2788ec2026-05-30 fix: remove public bak file leak + fix 404-guard regex + gitignore bak-* pattern -
534a9552026-05-29 feat(fleet): theme1/theme2 query-param-gated toggle on catalog page -
e75f4492026-05-26 frontend: cleanSku() strips vendor names from displayed sku (.ven/list/detail) + defer renderRailSections call (fix ReferenceError) — click-through verified -
b0a82542026-05-26 sku-redact: wire shared vendor-id display scrubber -
4b827b52026-05-26 wire api-vendor-redact middleware (close vendors-facet leak) -
5ecc9382026-05-25 pull-from-shopify: use shared classifier with rails primary, local aestheticOf as fallback -
25315d52026-05-25 remove dead /vocabulary nav link from supporting pages -
8a905be2026-05-20 add: pre-stage Meta Pixel snippet (placeholder; flip via _dw-batch set-fb-pixel.sh) -
b3eec392026-05-20 fix: /about → history.html alias (was 404) -
325875c2026-05-19 make server.js self-contained — inline admin-catalog (kamatera deploy unblock) -
e69b3af2026-05-19 Phase 2b: harden .card .pat against long-token title clipping (overflow-wrap) -
80e1bff2026-05-19 fix: null-guard dead #theme-toggle reference (clean console + immediate grid render) -
fba91592026-05-19 Phase 2: mobile-ready + tap-to-reveal -
8ec2cc42026-05-19 stage2: populate 1960swallpaper catalog + fix niche filter -
ac5bb042026-05-19 stage2: wire microsite catalog + admin CRUD + grid/list view -
e5fd4912026-05-19 Add rel=noreferrer to Facebook external link -
5ac19fd2026-05-19 Wire sort param into grid fetch + hydrate saved sort before first load -
dc3b7f82026-05-19 Untrack snapshot files, add .bak 404-guard + clean-URL routes, fix facets total -
683b5ad2026-05-14 hero-4grid: relocate json from data/ to public/ for Express static -
ca0e8152026-05-14 4-grid hero: drop-in script + crop CSS + initial 4 newest products -
2788aab2026-05-14 favicon: Mag-7-inspired SVG glyph -
e5723882026-05-13 fix env wiring — add __dirname-anchored dotenv + dotenv dep so ADMIN_PASS / GEORGE_AUTH actually load -
5bd85fc2026-05-13 corner-nav: title-case the brand name even when .ns-name source is lowercase -
061fc372026-05-13 corner-nav: title-case brand display (e.g. corkwallcovering → Cork Wallcovering) -
c874ded2026-05-13 corner-nav: fix injection — script tag was landing inside HTML comment, now anchored to real </body> -
89f90252026-05-13 embed Big Red customer chat (lower-left, retail mode, vendor-redacted) -
c6560172026-05-13 chip-click → product details modal; vendor redacted in card overlay -
448cc232026-05-13 add universal corner-nav.js (UR 4-icon: bag/account/search/menu) -
fc0ace12026-05-13 remove stray contact modal markup that was rendering inline on the page -
704d4b62026-05-13 header: remove duplicate <header> with dwmOpen-contact (was overlapping ns-header) + add display:none default to .ns-modal so How-can-we-help only opens on click. Restores canonical logo-UL + hamburger-UR layout per MEMORY rule. -
2b52ecf2026-05-13 brand: replace remaining fake brand globally → '1960swallpaper' across head/meta/wordmark/footer — enforces MEMORY brand-stem rule -
f05003b2026-05-11 fleet-grid refine: chip_uniform_aspect (1960swallpaper) -
8a3a1eb2026-05-11 snapshot before fleet-grid refine tick 3 -
b8fec6c2026-05-10 sort-skill UI: add Light→Dark / Dark→Light / Color Wheel options -
15bbf6f2026-05-10 sort-skill canonical: add light-dark/dark-light/wheel + helpers -
af9e4752026-05-07 graphic-loop pass 13: real footer brand + Facebook link + OG/Twitter meta tags -
728ac6b2026-05-07 graphic-loop pass 12: niche keyword filter (no off-niche products like 'solid' on patterned sites) -
e8005ad2026-05-07 graphic-loop pass 11: add Ideas rails (New this week + Curated picks) above main grid -
975b0cf2026-05-07 graphic-loop pass 10: center-mark to top + readable text-shadow + tighter letter-spacing (no mix-blend-mode) -
e56b63c2026-05-07 graphic-loop pass 9: real site name + 20-image hero rotation + 2400px hero res -
4566acf2026-05-07 graphic-loop pass 8: theme-aware font Bungee Shade (panel-approved comprehensive 16-bucket assignment) -
dcb44b52026-05-06 graphic-loop pass 5: serif hero typography (Cormorant Garamond) + nav legibility (qwen3 unanimous) -
a5770ea2026-05-06 graphic-loop pass 2: fix .corner-mark contrast + soften hero overlay (qwen3:14b consensus across fleet) -
66b8c982026-05-06 initial snapshot — gitify all builds (CLAUDE.md rule 2026-05-06)
Authors
- Steve94
- front-page-steward3
- auto-commit-fleet2
- steve1
Agents used
Skills used
- /products4
- /privacy3
- /retro3
- /claude2
- /code2
- /sample2
- /vendor2
- /body2
- /watermark2
- /facets2
- /list2
- /vocabulary2
- /about2
- /www1
- /off1
- /tracking1
- /data1
- /tags1
- /handle1
- /a11y1
- /back1
- /text1
- /ideas1
- /json1
- /index1
- /theme21
- /detail1
- /catalog1
- /pop1
- /psychedelic1
Creative ideas + design notes
4188556 · 2026-09-15 · hero: flash-free R4 (flip after cells paint + clear grid) — yoloforever cycle 2
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UxvvaJ7p6VRZ4RzKDaBXqK
ee71141 · 2026-09-15 · hero: remove hero-4grid.js collision, R4 alternating block is sole owner (yoloforever cycle 1)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UxvvaJ7p6VRZ4RzKDaBXqK
2f940cd · 2026-09-14 · 1960swallpaper: add .deploy.conf (Kamatera /var/www/1960swallpaper.com, matches fleet deploy path)
Scaffolded from live pm2 introspection so the site deploys via the shared deploy.sh like the rest of the fleet. Deployed + verified 200. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
8ddaa4a · 2026-09-14 · 1960swallpaper: declare helmet + dotenv (undeclared deps would crash prod on npm ci --production)
server.js hard-requires helmet but package.json declared only express; a clean npm ci --production prunes to express-only and the app crash-loops (MODULE_NOT_FOUND helmet, 502) — same latent bug that took linenwallpaper down. Declare both so a clean install is safe. Local only; not deployed. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
a2788ec · 2026-05-30 · fix: remove public bak file leak + fix 404-guard regex + gitignore bak-* pattern
- Removed public/index.html.bak-20260526152130 (was served HTTP 200) - Fixed 404-guard regex to block .bak-<timestamp> patterns (was only blocking .bak and .bak.) - Added *.bak-* to .gitignore (was missing; *.bak and *.bak.* did not cover hyphenated timestamps) - npm install ran to populate empty node_modules (express was MODULE_NOT_FOUND on boot) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
534a955 · 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.
25315d5 · 2026-05-25 · remove dead /vocabulary nav link from supporting pages
No vocabulary.html exists and no clean-URL route serves /vocabulary, so the link was a 404 from every supporting page footer (sourcing, history, care, trade). Removed rather than scaffolded — no content backing it. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
325875c · 2026-05-19 · make server.js self-contained — inline admin-catalog (kamatera deploy unblock)
PG-backed admin catalog now opt-in via MICROSITE_ADMIN_ENABLED=true. Prod (Kamatera) stays static — loads from data/products.json, no pg dep. Dev (Mac2) flips the flag on to use dw_unified + /admin/catalog UI.
8ec2cc4 · 2026-05-19 · stage2: populate 1960swallpaper catalog + fix niche filter
- Inserted 150 genuine 1960s-era wallcoverings into dw_unified.microsite_products
(pop art, op art, psychedelic, space-age, mid-century modern) pulled from the
DW master catalog; site previously had only 3 off-niche Circus Damask rows.
- Fixed site.config.json rails: hyphenated 'pop-art'/'op-art' and bare 'mod'
never whole-word-matched the actual tags ('Pop Art', 'Mid-Century Modern'),
so every product fell into the 'all' aesthetic bucket. Rails now
modern/pop/psychedelic/floral/geometric/retro — buckets populate correctly.
- Broadened server.js NICHE_POS to include mid-century/space-age/retro.
- Added scripts/populate-catalog.js (idempotent, deterministic).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
e5fd491 · 2026-05-19 · Add rel=noreferrer to Facebook external link
The target=_blank Facebook link had rel=noopener but was missing noreferrer; add it for full referrer-leak protection. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
5ac19fd · 2026-05-19 · Wire sort param into grid fetch + hydrate saved sort before first load
loadGridPage never sent the sort param to /api/products, so the sort <select> had no effect on the grid. Add sort to the request params and add 'sort' to the state object. Move sort hydration into a pre-load IIFE that runs before the initial loadGridPage() call, so a reload restores the saved sort on the first paint instead of only after a change event. Trim the later wire-up IIFE to just the change handler (no double hydration). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
dc3b7f8 · 2026-05-19 · Untrack snapshot files, add .bak 404-guard + clean-URL routes, fix facets total
Untrack 28 *.bak/*.pre-* snapshot files (incl. public/) and broaden .gitignore to cover them. Add Express middleware that 404s any .bak/.orig/.pre- path so stale snapshots never serve from static root. Add clean-URL routes (/about /history /care /sourcing /trade) for the extension-less nav links that previously 404'd. Fix /api/facets total to count PRODUCTS_NICHE (the niche-filtered list actually served) instead of the raw unfiltered PRODUCTS array. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
File tree
- .deploy.conf
- .gitignore
- _universal-auth.js
- _universal-contact.js
- data/products.json
- ecosystem.config.cjs
- package-lock.json
- package.json
- public/ads.txt
- public/care.html
- public/corner-nav.js
- public/drill.js
- public/dw-header.js
- public/dw-theme-nav.js
- public/favicon.svg
- public/hero-bg.jpg
- public/hero-pool.json
- public/history.html
- public/index.html
- public/privacy.html
- public/sku-redact.js
- public/sourcing.html
- public/trade.html
- public/ux-primitives.bundle.css
- public/ux-primitives.bundle.js
- scripts/populate-catalog.js
- scripts/pull-from-shopify.js
- server.js
- server.js.ldrbak.1787569812
- site.config.json