Skip to content

feat(landing-page): redesign homepage around the live workspace demo - #6881

Open
joeylee12629-star wants to merge 1 commit into
mainfrom
feat/landing-home-redesign
Open

feat(landing-page): redesign homepage around the live workspace demo#6881
joeylee12629-star wants to merge 1 commit into
mainfrom
feat/landing-home-redesign

Conversation

@joeylee12629-star

@joeylee12629-star joeylee12629-star commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Why

The homepage had grown into a long scroll of abstract marketing sections (about, capabilities scrollytelling, labs dock, falling-text method block, stats wall, newsletter) that never showed the product doing anything. Visitors arriving from "Claude Design alternative" / "vibe design" searches had to take our word for what Open Design is, then hunt for a download button that competed with a dozen other CTAs.

This PR lands the 2026-08 homepage redesign that was prototyped and reviewed offline: one positioning line (Vibe Design Workspace), one download CTA repeated per section, and a live three-pane workspace demo doing real work above the fold. It is my own use case as maintainer of the marketing site — the old page converted the product story into copy instead of showing it.

What users will see

  • New hero. "Vibe Design Workspace" positioning, a single breathing download CTA, and five scenario tabs (prototype / mobile app / poster / slides / video) that drive a live three-pane workspace demo — project rail, agent chat, artifact canvas. The artifacts are real template previews produced by the build's own copy-example-html step, and they are editable in place and auto-advance.
  • Announcement bar with the live release label (build-time release metadata + client-side codename refresh), rendered inside the fixed chrome so it never covers the nav.
  • Agent marquee (21 coding agents), three-step "How it works", key-features grid including an interactive brand-system demo and a real Codex-plugin screenshot, a benchmark band, team-workspace mock, three ways to use it, customer stories, and a data-driven "Recent highlights" blog rail.
  • Nav consolidation, site-wide. Solution's three groups fold into the Product mega panel next to a new Plugin column; the product-family column moves to footer-only; the top-level Plugins dropdown becomes a single Resources item; a quiet GitHub star chip sits before Download.
  • Removed from the homepage: about, capabilities scrollytelling, labs dock, method falling-text (and its matter-js vendoring), stats wall, newsletter, and the download-engagement prompt — the new page repeats the download CTA per section instead. Contributor globe, closing CTA, FAQ and footer stay.
  • FAQ gains three entries (Codex plugin, brand-system self-evolution, team workspace); homepage title/description/FAQ heading move to the Vibe Design Workspace framing while keeping the Claude Design alternative anchor.
  • All new copy ships in all 11 locales (en/zh hand-written, the rest agent-translated). Demo documents are English product mocks with a hand-translated zh variant, matching how the site treats product screenshots.

Live campaign surfaces that landed on main after this branch was cut are preserved on the redesigned page: the DeepSeek V4 Pro campaign banner (active through 2026-08-27) and the Launch Week float both still render, stacked above the new announcement bar. Verified at 1440px and 390px — no overlap, hero clears both.

Surface area

  • UI — homepage rebuild plus the site-wide header consolidation
  • Keyboard shortcut
  • CLI / env var
  • API / contract
  • Extension point
  • i18n keys — new home-redesign-i18n.ts copy pack across all 11 landing locales, plus FAQ/SEO string updates
  • New top-level dependency
  • Default behavior change — the homepage every visitor lands on is replaced, and the global nav structure changes

Build wiring: scripts/build-home-demo.ts now runs in dev and build:static (also exposed as pnpm build:home-demo). It generates the workspace demo assets from the repo's own design systems into public/home-redesign/ — those outputs are gitignored, never hand-edited.

Screenshots

The branch preview at https://pr-6881.open-design-landing-staging.pages.dev is the entry point to click through: the announcement bar and consolidated nav are the first thing on screen, the scenario tabs sit directly under the hero CTA, and the workspace demo runs live below them. Desktop (1440px) and mobile (390px) captures of that same view are in the review notes.

Bug fix verification

Not a bug fix.

Validation

  • pnpm --filter @open-design/landing-page test — 137 pass, 0 fail
  • pnpm --filter @open-design/landing-page build (includes astro check) — clean, 6466 pages, localized template routes verified
  • Rebased onto current main (117 commits) and resolved the homepage conflicts by keeping main's live campaign banner + Launch Week float alongside the redesign
  • Local static-serve pass over the built out/: EN + ZH homepages at 1440×900 and 390×844 — campaign banner, announcement bar, nav, hero, scenario tabs and the workspace demo all render as intended
  • pnpm guard is clean apart from the pre-existing "residual JavaScript" report for build-generated, gitignored assets (public/enhancers/*.js on main, plus this branch's public/home-redesign/artifacts.js from the same generator pattern); it does not fire on a clean checkout

Rebuild the homepage per the approved 2026-08 prototype:

- Announcement bar with the live release label (build-time release
  metadata + client-side codename refresh), inside the fixed chrome so
  it never covers the nav.
- New hero: Vibe Design Workspace positioning, one breathing download
  CTA, five scenario tabs driving a live three-pane workspace demo
  (projects / agent chat / artifact canvas). The demo embeds real
  template previews already produced by the build's copy-example-html
  step; wheel events relay out via postMessage so page scroll never
  dies inside the iframes.
- Agent marquee (21 coding agents), three-step 'How it works',
  key-features grid with an interactive brand-system demo iframe and a
  benchmark band, team-workspace mock, three ways to use it, customer
  stories, and a data-driven 'Recent highlights' blog rail.
- Nav consolidation (site-wide header): Solution's three groups fold
  into the Product mega panel alongside a new Plugin column (Codex
  Plugin); the product-family column moves to footer-only; the
  top-level Plugins dropdown becomes a single Resources item; a quiet
  GitHub star chip joins the bar before Download. The mega panel
  centers on the viewport via a static trigger li.
- Removed sections: about, capabilities scrollytelling, labs dock,
  method falling-text (and its matter-js vendoring), stats wall,
  newsletter, and the homepage download-engagement prompt (the new
  page repeats the download CTA per section). Contributor globe,
  closing CTA, FAQ, and footer stay.
- FAQ gains three entries (Codex plugin, brand system self-evolution,
  team workspace); homepage title/description/FAQ heading move to the
  Vibe Design Workspace framing while keeping the Claude Design
  alternative anchor.
- All new copy ships in all 11 locales (en/zh hand-written, the rest
  agent-translated); demo documents are English product mocks with a
  hand-translated zh variant, matching the site's product screenshots.
- New CSS lives under an hm- namespace so nothing collides with the
  legacy global classes.
@lefarcen
lefarcen requested a review from PerishCode August 14, 2026 03:47
@lefarcen lefarcen added size/XXL PR changes 1500+ lines risk/medium Medium risk: regular code changes type/feature New feature skip-validation Maintainer override: bot will not auto-add needs-validation on this PR. labels Aug 14, 2026

@PerishCode PerishCode left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The live workspace demo introduces a useful cross-frame interaction, but the message channel needs to authenticate its peer before this can ship.

🔁 Powered by Looper · runner=reviewer · agent=codex · An autonomous AI dev team for your GitHub repos.

});
});
}
window.addEventListener('message', (event) => {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Authenticate the iframe before acting on cross-window messages. This global handler accepts od-download and arbitrary numeric odScroll payloads from any window, so an unrelated iframe or a page that opened the landing site can force navigation through the download CTA or continuously move the visitor's page. The paired receiver in scripts/home-demo/controller.ts likewise accepts scene commands from any sender, and both sides publish with '*'. Restrict the host handler to event.source === frame.contentWindow and the expected same-origin event.origin; in the generated demo require e.source === parent plus that origin, and use location.origin as targetOrigin for both directions. Please add a focused fixture test covering accepted messages from the demo frame and ignored messages from another source/origin.

🔁 Powered by Looper · runner=reviewer · agent=codex · An autonomous AI dev team for your GitHub repos.

@github-actions

Copy link
Copy Markdown
Contributor

🚀 Landing page preview

This PR is deployed to a Cloudflare Pages preview — not staging or production:

@lefarcen

Copy link
Copy Markdown
Contributor

@joeylee12629-star PerishCode has the blocker for this head: please lock down the workspace demo message channel so both sides only accept messages from the expected frame/source + origin, and add the focused test they called out. Once that lands, the next review pass should be straightforward.

💡 To drive this PR to merge hands-free, paste this to your AI coding agent (Claude Code / Codex / opencode / Cursor …):
Take over nexu-io/open-design#6881 until it merges — read https://raw.githubusercontent.com/nexu-io/looper/main/skills/pr-takeover/SKILL.md and follow it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk/medium Medium risk: regular code changes size/XXL PR changes 1500+ lines skip-validation Maintainer override: bot will not auto-add needs-validation on this PR. type/feature New feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants