← back to Dw Universe
CHANGELOG.md
66 lines
# DW Universe — Changelog
Front door of the Designer Wallcoverings family of sister sites.
Live at https://retrowalls.com/universe/ (path-mounted) and locally at http://127.0.0.1:9466/.
---
## 0.1.0 — 2026-05-06 (autonomous overnight build)
Eleven creative features built in one session via a 4-agent dream-team brainstorm
(ui-ux-designer + frontend-developer + product-strategist + contrarian) → backlog →
ship-one-feature-per-iteration.
### Search & Discovery
- **Cross-niche search** — single endpoint `/api/search` queries all 10,400+ patterns across 43 niches with score-weighted matching (title 3× / tag 2× / niche-name 1×). Median 12-23 ms.
- **Constellation map** — 43 SVG nodes in 4 vertical category bands (material / decade / craft / use), sized by inventory count, hand-curated category tints.
- **Niche poems** — every niche has a one-line literary editorial blurb shown on hover (`data/niche-poems.json`).
### Brand-voice features
- **One-Line Oracle** — when the search box is empty + unfocused, the placeholder cycles through the 43 editorial blurbs in italic Playfair, 4.2s per line, 600ms cross-fade.
- **Velvet Rope** — first-visit ritual: a single-line riddle (*"Name a room you've decorated in a dream"*) gates the catalog. Type 3+ chars + Enter, or 12+ chars auto-unlocks. Skippable. Auto-skips deeplinks (`?q=`, `?passport=`).
- **Slow-Reveal Bookmark** — visit counter unlocks an italic editorial line on visits 3 / 7 / 14 / 30 / 60 / 100, fades in for 12 seconds.
### Visual / interaction
- **Pattern Density Scroll** — as the top search result changes, the body background tiles that pattern at 6% opacity. The page itself becomes wallpaper.
- **Niche Drift** — hover any constellation node and the 3 hand-curated nearest kin illuminate while non-kin dim to 18%; gold dashed arcs draw between center and kin.
- **Niche DNA** — each constellation node fills with a per-category procedural SVG pattern: material = woven hairlines, decade = chevrons, craft = dashed stitch hatch, use = tight architectural grid.
- **Star Float + Scroll Parallax** — every node breathes in place (5-10 s loop, 2-5 px amplitude, deterministic per slug). The whole map drifts ±28 px on scroll where supported. Honors `prefers-reduced-motion: reduce`.
- **View Transitions** — clicking a node morphs its SVG label into the search input via `document.startViewTransition()`, then filters the grid. ⌘ / Ctrl / Shift-click preserves "open the niche site". Falls back to instant on Safari/FF.
### Compounding / sticky
- **Pairing Oracle** — every product card has a `+` button → opens a modal showing one cross-niche "soulmate" + a hand-written editorial blurb ("the room needs a whisper after this shout"). 43 source-niche → complementary-niche rules in `data/pair-rules.json`. 19 blurbs. Reroll button.
- **Sample Passport** — header pill "Passport · N" shows niches the user has clicked into. Modal renders all 43 as gold-checkmark stamps with timestamps. **Copy share link** drops a `?passport=slug1,slug2` URL someone else can open in read-only mode.
### Schedule-aware
- **Tuesday hero** — every Tuesday, the empty-state grid renders ONE giant pattern instead of 24, with caption *"the only pattern we want you to see today. show me the other 23 →"*. Search overrides immediately.
- **Constellation Sleeps** — between 2 and 4 a.m. local time, the constellation dims to 15 % and a single random pattern thumbnail drifts diagonally across the viewport with caption *"the catalog is dreaming."* Click anywhere to wake.
### Dark / light theme
- DW-standard sun/moon toggle in the header, persisted in localStorage. Pattern Density uses `mix-blend-mode: overlay` in dark + `multiply` in light.
---
## Fleet-wide work (parallel, same session)
- **Hero uniqueness** — every one of the 49 active DW family sites now has a UNIQUE hero image URL across the fleet (was 22 collisions before). Sort key: textures-first → patterns second within each site.
- **5 P0 security patches** shipped to all 46 sister sites (`clean()` regex bug, basic-auth timing-safe equality, login timing oracle, curation-editor shell injection, ReDoS guard).
- **ADMIN_PASS env-only enforcement** — hardcoded `DWSecure2024!` removed from every site's `_universal-auth.js` on disk. Strong random pass provisioned to `/root/.dw-fleet.env` on Kamatera, fanned via `pm2 restart all --update-env`.
- **D2 redirects** — `recycledwallpaper.com / stringwallpaper.com / embroideredwallpaper.com` now 301-redirect to their parent niches (catalog stranding fix).
- **a11y** — `:focus-visible` rule fleet-wide, museum's `pointer-events:none` removed.
---
## Next ideas (not yet shipped)
- **Color Search** — drop an image, find closest matches across all 43 niches by dominant palette
- **Mini-constellation widget** on each niche site → cross-promotes the network
- **Hand-built per-niche SVG seal** → upgrade Sample Passport stamps from generic checkmarks
- **Niche-poetry on each site's home page** → reuse `niche-poems.json` as each site's own opening line