Skip to content

frontend(feat): landing section visual pass + FAQ/Wiring refinements#156

Open
Ducksss wants to merge 10 commits into
devfrom
claude/keen-roentgen-0ffc4f
Open

frontend(feat): landing section visual pass + FAQ/Wiring refinements#156
Ducksss wants to merge 10 commits into
devfrom
claude/keen-roentgen-0ffc4f

Conversation

@Ducksss

@Ducksss Ducksss commented Jun 19, 2026

Copy link
Copy Markdown
Owner

What

A visual pass over the landing page so it leans on real component previews and section graphics instead of text walls.

  • Page blocks → family teaser: the catalog section shows one live demo twin per page family (count + install command + link to /components) instead of re-listing every component. (Builds on the family-teaser already on dev; this branch keeps it in sync.)
  • StackBand: pill chips with a brand node dot per item.
  • WorkflowSection: per-step lucide glyphs (read / run / commit).
  • WiringSection: WiringCoverage bars (1-of-5 vs 5-of-5) above the ledger; headline reworded to "One command owns the wiring." — the old "Copying files was never the hard part." duplicated the Tax beat "The paste was never the problem."
  • FaqSection: two-column layout (heading left, accordion right) — consistent with the rest of the page instead of a centered island.
  • illustrations.tsx: WiringCoverage (a Tax wiring illustration was explored and then dropped).

Verification

  • pnpm install + pnpm source:build + pnpm exec tsc --noEmit clean
  • frontend + geo e2e: 30/30; landing visual snapshots regenerated (darwin)
  • Merged latest origin/dev (alpha-messaging removal, FAQ family, blog, brand-guide, registry/security work) — conflicts resolved, suite green

🤖 Generated with Claude Code

imgbot Bot and others added 10 commits June 19, 2026 00:15
*Total -- 8,574.67kb -> 7,308.09kb (14.77%)

/tests/e2e/frontend.e2e.spec.ts-snapshots/landing-home-mobile-chromium-linux.png -- 1,782.31kb -> 1,363.18kb (23.52%)
/tests/e2e/frontend.e2e.spec.ts-snapshots/landing-home-desktop-chromium-linux.png -- 2,082.01kb -> 1,691.00kb (18.78%)
/tests/e2e/frontend.e2e.spec.ts-snapshots/landing-home-mobile-chromium-darwin.png -- 1,799.55kb -> 1,601.58kb (11%)
/tests/e2e/frontend.e2e.spec.ts-snapshots/landing-home-desktop-chromium-darwin.png -- 1,999.80kb -> 1,800.86kb (9.95%)
/public/showcase/symposium.jpg -- 596.30kb -> 553.32kb (7.21%)
/public/showcase/genium.jpg -- 310.40kb -> 294.01kb (5.28%)
/public/favicon.svg -- 4.30kb -> 4.14kb (3.9%)

Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>
Co-authored-by: ImgBotApp <ImgBotHelp@gmail.com>
Co-authored-by: Chai Pin Zheng <chaipinzheng@gmail.com>
Document the brand — logo/wordmark, the light-first monochrome +
emerald palette, the Geist/Instrument Serif type system, token
scales, and voice — as a living style guide built from existing
site primitives. Values are sourced verbatim from globals.css.

Register /brand-guide in the sitemap and link it from the footer's
Project column. Header nav is intentionally unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Replace the 38-item Components wall with category links that deep-link
to the filtered catalog (/components?category=<key>), plus an accented
"All 38 components" link. Refresh the footer layout within the
light-monochrome + emerald system: brand hairline, alpha-badged wordmark,
terminal-style install line, and an explicit GitHub link. Regenerate the
landing visual-contract snapshots (footer-only diff).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Mirror shadcn's information architecture: lead with Get Started
(Introduction, concepts, install), surface the Components catalog,
then trail with Reference and Contributing. Rename the docs landing
page from "Start Here" to "Introduction" and fold it into Get Started.
Drop the redundant Docs/Components sidebar links (already in the site
header; they caused a double-highlight on /docs) and add icons to the
two Get Started pages that lacked them for visual consistency.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Summary:
- Validate component slugs before manifest path construction and keep manifest, registry source, and shadcn alias paths inside their roots.
- Add shared safe URL helpers for installable blocks, sandbox Embed Basic iframes, and restrict signup form actions to same-origin paths.
- Sync manifests, registry metadata, docs, and regression tests for the hardened security invariants.

Rationale:
- The security scan found path traversal and editor-controlled URL sinks that could read unintended files or ship unsafe target code.
- The fix enforces the invariants at the source-loading and target-field boundaries while preserving the existing registry and install flow.

Tests:
- pnpm exec vitest run --config ./vitest.config.mts tests/int/payload-components-security.int.spec.ts
- pnpm exec vitest run --config ./vitest.config.mts tests/int/payload-components-security.int.spec.ts tests/int/payload-components-manifest.int.spec.ts tests/int/public-registry.int.spec.ts tests/int/fumadocs-site.int.spec.ts tests/int/demo-twins.int.spec.ts
- pnpm lint
- pnpm source:build
- pnpm exec tsc --noEmit
- E2E_PORT=3100 pnpm test:release
- After merging origin/dev into the branch: pnpm lint && pnpm source:build && pnpm exec tsc --noEmit
- StackBand: pill chips with a brand node dot per item
- WorkflowSection: per-step lucide glyphs (read / run / commit)
- WiringSection: WiringCoverage bars above the ledger; headline reworded to
  "One command owns the wiring." (the old "Copying files was never the hard
  part." duplicated the Tax beat "The paste was never the problem.")
- FaqSection: two-column layout (heading left, accordion right) — no more
  centered island, consistent with the rest of the landing
- CatalogFamilyTeaser: type-clean pageFamilies() (fixes a tsc error in f4b09a6)
- illustrations.tsx: WiringCoverage only (the Tax wiring illustration was
  explored over several iterations, then dropped)
- regenerate landing visual snapshots

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Ducksss <58126222+Ducksss@users.noreply.github.com>
Co-authored-by: Chai Pin Zheng <chaipinzheng@gmail.com>
Integrates dev's footer refresh, brand-guide page, docs IA reorder, and
registry/target-URL security hardening alongside the landing visual pass.

Conflicts resolved:
- src/components/site/CatalogFamilyTeaser.tsx: took dev's pageFamilies()
  (dev did the same for-loop restructure; functionally identical, no divergence)
- src/lib/site.ts: auto-merged — kept the reworded Wiring heading
  ("One command owns the wiring.") and dev's siteUrl/security changes
- landing darwin snapshots: regenerated for the combined visual

Verified: pnpm install + source:build + tsc clean; frontend + geo e2e 29/29.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Integrates the latest dev (alpha-messaging removal, FAQ family blocks,
fumadocs blog, registry shadcn-directory prep, brand-guide, CI visual-
regression fixes) alongside the landing visual pass.

Conflicts resolved:
- src/app/brand-guide/page.tsx, tests/int/public-registry.int.spec.ts:
  took dev's versions (not authored on this branch)
- landing darwin snapshots: regenerated for the combined visual

Verified: pnpm install + source:build + tsc clean; frontend + geo e2e 30/30.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 19, 2026

Copy link
Copy Markdown

Deployment failed with the following error:

Resource is limited - try again in 24 hours (more than 100, code: "api-deployments-free-per-day").

Learn More: https://vercel.com/ducksss-projects?upgradeToPro=build-rate-limit

@Ducksss Ducksss enabled auto-merge (squash) June 19, 2026 16:58
@Ducksss

Ducksss commented Jun 23, 2026

Copy link
Copy Markdown
Owner Author

Current action: keep open on dev, but rebase/refresh before review. GitHub reports an unknown merge state, so this needs a current branch check before merging.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant