Skip to content

feat: split portal and configurable lab - #6

Merged
Foscat merged 35 commits into
mainfrom
refactorAndRefine
Aug 3, 2026
Merged

feat: split portal and configurable lab#6
Foscat merged 35 commits into
mainfrom
refactorAndRefine

Conversation

@Foscat

@Foscat Foscat commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • replace the 16,500px root experience with a concise developer-first portal
  • move the complete configurator, observatory, workbench, laboratories, integration fixtures, installation guide, and package directory to /lab/
  • refactor the homepage and lab headers around typed, data-driven responsive and disclosure navigation
  • preserve legacy configuration URLs, anchors, query keys, saved configuration state, package versions, and ownership boundaries
  • separate route metadata, structured data, sitemap entries, Pages-safe links, and export size budgets
  • update technical wording and add accessible quick-start copy behavior

Why

The previous root page mixed product introduction, configuration, demonstrations, installation, and company conversion into one dense journey. Its inline navigation also allowed labels to collide near the 1249px desktop boundary. This change gives developers a focused adoption path at / while retaining the full configurable showcase at /lab/.

User and developer impact

The homepage now communicates the four-package value proposition and installation path immediately. The lab retains all working demonstrations with clearer section language and an always-disclosed section menu that remains keyboard-, pointer-, and short-height operable. Legacy shared links automatically resolve to the lab without losing configuration state.

Validation

  • npm.cmd run quality
  • 45 unit tests
  • 18 fixture and icon tests
  • 4 brand tests
  • development hydration and GitHub Pages export
  • 10 export-contract tests
  • 144 Playwright tests across Chromium, Firefox, WebKit, mobile, and axe
  • rendered Chrome checks at desktop, tablet portrait, phone portrait, and short landscape sizes
  • git diff --check

No dependencies, package versions, deployment state, or publishing state changed.

Foscat added 4 commits July 30, 2026 19:46
# Conflicts:
#	README.md
#	app/components/labs/LayoutLab.tsx
#	app/data/ecosystem.ts
#	package-lock.json
#	package.json
#	playwright.config.ts
#	scripts/build-fixtures.mjs
#	scripts/verify-export.mjs
#	tests/browser/site.spec.ts
#	tests/ecosystem.test.ts
#	tests/export.test.mjs
#	tests/fixtures.test.mjs
# Conflicts:
#	app/components/CombinedWorkbench.tsx
#	app/components/FeatureShowcase.tsx
#	app/components/InstallGuide.tsx
#	app/components/ResponsiveNavigation.tsx
#	app/components/SiteHeader.tsx
#	app/components/labs/IconLab.tsx
#	app/components/labs/IntegrationLab.tsx
#	app/components/labs/LayoutLab.tsx
#	app/page.tsx
#	app/styles/responsive.css
#	app/styles/shell.css
#	scripts/verify-export.mjs
#	tests/browser/accessibility.spec.ts
#	tests/browser/site.spec.ts
#	tests/dev-browser/hydration.spec.ts
#	tests/ecosystem.test.ts
#	tests/export.test.mjs
@Foscat Foscat self-assigned this Aug 3, 2026
@Foscat
Foscat marked this pull request as ready for review August 3, 2026 07:46
Copilot AI review requested due to automatic review settings August 3, 2026 07:46
@Foscat Foscat added bug Something isn't working enhancement New feature or request labels Aug 3, 2026

Copilot AI 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.

Pull request overview

This PR restructures the site into a concise developer-first homepage (/) and a full-featured configurable lab experience under /lab/, while preserving legacy deep links and ensuring GitHub Pages-safe routing, navigation, and export verification.

Changes:

  • Split the previous all-in-one homepage into a portal (/) plus a dedicated lab route (/lab/) with updated metadata, structured data, and sitemap entries.
  • Introduced typed, data-driven navigation for home vs. lab (responsive vs. disclosure presentation) and added legacy URL redirection to preserve shared configuration links.
  • Updated export validation, budgets, and Playwright/unit tests to cover the new route split, structured data separation, and Pages-safe asset/link behavior.

Reviewed changes

Copilot reviewed 34 out of 35 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tests/structured-data.test.ts Adds unit coverage for home/lab JSON-LD builders and safe serialization.
tests/site-routing.test.ts Verifies Pages-safe lab URL helpers and legacy redirect destination logic.
tests/navigation.test.ts Asserts the new typed home/lab navigation datasets.
tests/export.test.mjs Updates export-contract checks for separate home vs. lab canonical/JSON-LD and budgets.
tests/ecosystem.test.ts Aligns ecosystem assertions with the new /lab/ page split and copy updates.
tests/dev-browser/hydration.spec.ts Moves dev hydration coverage to the lab route.
tests/browser/site.spec.ts Adjusts end-to-end expectations to treat /lab/ as the full experience route.
tests/browser/routes.spec.ts Adds browser coverage for portal vs. lab behavior and legacy redirect handling.
tests/browser/capabilities.spec.ts Points capability checks at /lab/ and updates heading expectations.
tests/browser/accessibility.spec.ts Splits axe coverage between homepage and lab, updates route/section expectations.
scripts/verify-export.mjs Extends export verification to validate lab/index.html, separate budgets, and schema separation.
app/styles/shell.css Adds disclosure navigation styling and new homepage section styling.
app/styles/responsive.css Updates responsive breakpoint and adds new homepage grid/layout responsiveness.
app/sitemap.ts Adds /lab/ to sitemap with its own priority.
app/page.tsx Replaces the old monolithic experience with the new portal layout and legacy redirect hook.
app/lib/structured-data.ts Introduces shared builders for home vs. lab structured data and safe serialization.
app/lib/site.ts Adds canonical lab path/url helpers for Pages-safe linking.
app/lib/legacy-navigation.ts Implements legacy deep-link preservation by mapping old config/hash URLs to /lab/.
app/lab/page.tsx Adds dedicated lab route page with its own metadata and JSON-LD.
app/data/navigation.ts Adds typed navigation item datasets for home vs. lab.
app/components/SiteHeader.tsx Refactors header to accept typed nav/actions and support different presentations.
app/components/ResponsiveNavigation.tsx Refactors navigation rendering to be data-driven and support disclosure behavior.
app/components/QuickStartCopy.tsx Adds client-side copy-to-clipboard quick-start component for the portal.
app/components/LibraryDirectory.tsx Updates directory labeling and routes the “studio” link back to the homepage.
app/components/LegacyLabRedirect.tsx Adds client redirect to preserve legacy shared configurations and anchors.
app/components/labs/UiNativeLab.tsx Updates disclosure copy/headings to match new wording and navigation labels.
app/components/labs/LayoutLab.tsx Updates headings and disclosure summary labels for clarity/consistency.
app/components/labs/InteractionLab.tsx Updates headings and disclosure labels to the new wording.
app/components/labs/IntegrationLab.tsx Updates headings, disclosure labels, and “studio” link routing.
app/components/labs/IconLab.tsx Updates lab heading copy.
app/components/InstallGuide.tsx Updates headings and disclosure labels to match the new quick-start language.
app/components/HeroActions.tsx Introduces dedicated home vs. lab hero CTA components.
app/components/FeatureShowcase.tsx Replaces proof cards with a package overview grid linking into lab sections.
app/components/CombinedWorkbench.tsx Updates workbench heading copy.
.gitignore Adds Playwright CLI and output directories to ignores.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread app/components/ResponsiveNavigation.tsx
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@Foscat
Foscat merged commit 8617e7f into main Aug 3, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants