Changelog
All notable changes to vibe-prototypes are documented here. Format: Keep a Changelog. Versioning: SemVer.
[Unreleased]
Added
- Vercel deployment: the Express app is exported (
app.js) and served throughapi/index.js;pnpm run buildbundles it with esbuild into one CommonJS file because Vercel's runtime cannotrequire()ES-module-only packages (marked,jsdomand others failed).vercel.jsonroutes all requests to the function and bundlesprototypes/**andletsvibe-brand/**. - Branded home page: Living Sanctuary masthead with the logo lockup (orb + wordmark) and a menu, auto-discovered prototype cards with version links and a Changelog/Flow dropdown, brand and docs cards, and a collapsed "Browse all files". Mobile header is fixed and compacts on scroll with CSS transitions; sections have sticky-aware anchor offsets.
- Start here guide (source:
getting-started/prompts.json): five steps, eight copy-ready Claude prompts, and Claude Code commands in.claude/commands/(/get-latest,/new-prototype,/new-version,/check-standards,/ship). AGENTS.md(plusCLAUDE.mdand.github/copilot-instructions.mdpointers): mandatory rules for AI agents covering prototype structure and versioning, URLs/history/deep links, light and dark mode, the CTA rule, logo + type lockup, CSS transitions, accessibility and responsive design, Vercel constraints, and a direct-to-mainworkflow.- Brand 1.1.0: reserved CTA tokens (
--cta*,--grad-cta, radial from the top-left, with on-dark variants and a two-layer label text shadow), the CTA rule and full CTA state set, the lockup rule, light/dark mapping, and CSS-transition guidance. - Prototypes:
partners/v1(partner portal) andvibe-landing/v1joinedwellness-hub; every prototype has a flow map (FLOW.md) and changelog (CHANGELOG.md) for its latest version. - Rendered markdown pages now have heading anchors, a skip link and a
<main>landmark; hidden/platform folders (___vc, dotfiles) are hidden from listings.
Changed
Home page disclosures rebuilt: the version Changelog/Flow dropdown and the prompt cards no longer use native
<details>(a closed dropdown could leave a ghost painted over the next section); they are button + panel controls with CSS transitions. "Browse all files" is redesigned as an explorer card (folder badge, count, file-type badges, indent guides). Brand & docs keeps each card's links on one line, two cards per row above phone width.Code view always shows a readable tree: minified or single-line JSON, JavaScript, CSS and XML/SVG are re-indented before display (with a short note), and browsers that don't send Fetch Metadata still get the code view. Hosting platforms can re-save files compactly (Vercel does this to
vercel.json).Standards-compliance pass on the latest versions (
partners/v1,vibe-landing/v1,wellness-hub/v8): WCAG 2.2 AA fixes, no horizontal scroll from 320px, 44px touch targets, one main heading and landmark per view, every view with its own hash URL (history, deep links, sign-in return, not-found), dark mode where missing. No design or behaviour change; see each version'sCHANGELOG.md.Markdown sanitising moved from
jsdom/DOMPurify tosanitize-html, andmarkedpinned to 15 (CommonJS), so the app bundles for Vercel.Prototype layout normalised to
prototypes/<name>/<version>/index.html(the loose "Current" file becamewellness-hub/v8;Vibe-landing_vNextbecamevibe-landing/v1).README section "Adding & generating prototypes" covering: where prototype files go (
prototypes/<name>/<version>/index.html) and the no-registration/no-build authoring flow, how to run the server locally, the routing constraint (no SPA fallback → use multi-page or hash routing, neverpushStateto virtual sub-paths), and a copy-pasteable AI prompt template for generating handoff-ready, deep-linkable prototypes with explicit data seams, a state model, component boundaries, brand-token usage, and a machine-readable flow map.
Changed
- Reorganized the wellness-hub prototype under the versioned
prototypes/<name>/<version>/layout (prototypes/wellness-hub/v7/); README routes and structure updated to match.
[1.0.0] — 2026-06
Added
- Zero-build prototype server (
app.js, Express 5, port3000) serving the repo root with no env vars, no build step, and no config. Middleware order: Markdown render → view-source →express.static→serve-indexdirectory browser. - Markdown rendering:
GET/HEADfor*.mdrendered viamarked+highlight.js, sanitized with DOMPurify, wrapped in a brand-themed light/dark page. - View-source: direct document navigation to a dev file (
.js/.ts/.json/.css/.scss/.yml+ ~20 more) returns a syntax-highlighted page; the same file fetched as a page asset still serves raw, so prototypes keep working..html/.htmare excluded so prototypes render. - Directory index at
/viaserve-index(icons on,node_moduleshidden). - Path-traversal protection (
safeResolverejects anything resolving outside the repo root). - The "Living Sanctuary" brand system under
letsvibe-brand/— tokens (tokens.css/.scss/.ts/.json,tailwind.preset.js),css/base.css+css/components.css,brand/BRAND_GUIDELINES.md, and thedocs/index.htmlstyleguide. - The wellness-hub prototype (
prototypes/wellness-hub/v7/). - Standardized on
pnpm@10.12.4(pnpm-lock.yamlcommitted).