## Summary - implement the website-only core IA for Spec 215 with canonical Home, Product, Trust, Changelog, Contact, Privacy, and Imprint routes - reduce primary navigation to the core buyer journey, retain legal/supporting pages as secondary surfaces, and redirect `/security-trust` to `/trust` - add route metadata, sitemap/canonical handling, changelog publishing, and updated smoke coverage for the new IA contract ## Testing - `corepack pnpm build:website` - `cd apps/website && corepack pnpm exec playwright test` - integrated browser smoke validation for core routes, secondary routes, `/security-trust -> /trust`, hidden optional routes, mobile nav, and Trust/Changelog to Contact paths ## Notes - keeps all changes local to `apps/website` and the Spec 215 artifacts - preserves the website working contract with no `apps/platform` runtime coupling Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #252
12 KiB
Tasks: Website Information Architecture / Core Pages
Input: Design documents from /specs/215-website-core-pages/
Prerequisites: plan.md, spec.md, research.md, data-model.md, quickstart.md, contracts/public-site-ia.openapi.yaml
Tests: Browser smoke coverage and the root website build proof are required for this runtime-changing website feature.
Test Governance Checklist
- Lane assignment is named and is the narrowest sufficient proof for the changed behavior.
- New or changed tests stay in the smallest honest family, and any browser coverage addition remains explicit.
- Shared helpers and context defaults stay cheap by default; no backend, auth, or fixture-heavy setup is introduced.
- Planned validation commands cover the website IA change without pulling in unrelated platform lane cost.
- Any runtime-cost or escalation note stays documented in this feature rather than being deferred implicitly.
- Explicit governance outcome is recorded as
document-in-featurefor this feature-local fast-feedback validation scope.
Phase 1: Setup (Shared Infrastructure)
Purpose: Prepare the canonical website IA types, metadata hooks, and smoke-test scaffolding that all user stories depend on.
- T001 Update the expanded route and surface taxonomy in
apps/website/src/types/site.ts - T002 [P] Rebuild the core route registry, navigation metadata, footer group seeds, and conversion-route metadata in
apps/website/src/lib/site.ts - T003 [P] Extend route-topology, hidden-surface, and core-navigation smoke helpers in
apps/website/tests/smoke/smoke-helpers.ts
Phase 2: Foundational (Blocking Prerequisites)
Purpose: Create the shared SEO, shell, and publication scaffolding that must exist before any individual story can be completed.
⚠️ CRITICAL: No user story work should begin until this phase is complete.
- T004 Prepare canonical URL and sitemap scaffolding for core and retained secondary routes in
apps/website/src/lib/seo.tsandapps/website/src/pages/sitemap.xml.ts - T005 [P] Prepare shared shell support for new core and retained secondary page roles in
apps/website/src/layouts/BaseLayout.astroandapps/website/src/components/layout/PageShell.astro - T006 [P] Wire optional
Resourcesgating and keep the unpublishedarticlescollection out of the public IA inapps/website/src/content.config.tsandapps/website/src/lib/site.ts
Checkpoint: The canonical core-route skeleton exists, and user-story work can proceed independently on top of it.
Phase 3: User Story 1 - Understand the Product and Next Step Quickly (Priority: P1) 🎯 MVP
Goal: Make the first visitor journey obvious by centering Product, Trust, Changelog, and Contact in the header and core pages.
Independent Test: A first-time visitor can use / and /product to discover Product, Trust, Changelog, and Contact within two clicks, without seeing placeholder or deferred top-level routes.
Tests for User Story 1
- T007 [P] [US1] Update first-journey smoke coverage for home/product navigation, CTA hierarchy, and core-route reachability in
apps/website/tests/smoke/home-product.spec.ts
Implementation for User Story 1
- T008 [P] [US1] Rebuild primary navigation and header CTA behavior around Product, Trust, Changelog, and Contact in
apps/website/src/lib/site.ts,apps/website/src/components/layout/Navbar.astro, andapps/website/src/components/layout/PageShell.astro - T009 [P] [US1] Refocus the home and product content modules on product understanding, buyer outcomes, and the next-step path in
apps/website/src/content/pages/home.tsandapps/website/src/content/pages/product.ts - T010 [US1] Apply the core first-visit journey to
apps/website/src/content/pages/contact.ts,apps/website/src/pages/index.astro,apps/website/src/pages/product.astro, andapps/website/src/pages/contact.astro
Checkpoint: Home and Product now deliver the MVP first-visitor journey with one clear next step.
Phase 4: User Story 2 - Validate Trust and Technical Seriousness (Priority: P1)
Goal: Make /trust the canonical credibility surface and keep legal/trust discoverability coherent and explicit.
Independent Test: A technical evaluator can open /trust, confirm the presence of trust posture and bounded claims, reach Privacy and Imprint from the footer, and see the legacy /security-trust path resolve to the canonical Trust surface.
Tests for User Story 2
- T011 [P] [US2] Update trust/legal smoke coverage for the canonical Trust route,
/trust -> /contactreachability, footer legal visibility, and the legacy Trust redirect inapps/website/tests/smoke/solutions-trust-integrations.spec.tsandapps/website/tests/smoke/contact-legal.spec.ts
Implementation for User Story 2
- T012 [P] [US2] Implement the canonical Trust surface with bounded trust-claim content in
apps/website/src/content/pages/trust.tsandapps/website/src/pages/trust.astro - T013 [P] [US2] Rebuild trust/legal footer groups around Trust, Privacy, Imprint, Terms, and Contact in
apps/website/src/lib/site.tsandapps/website/src/components/layout/Footer.astro - T014 [US2] Align the retained secondary legal surfaces and Trust compatibility path to the new Trust contract in
apps/website/src/content/pages/legal.ts,apps/website/src/content/pages/privacy.ts,apps/website/src/content/pages/imprint.ts,apps/website/src/pages/legal.astro,apps/website/src/pages/privacy.astro,apps/website/src/pages/imprint.astro,apps/website/src/pages/terms.astro, andapps/website/src/pages/security-trust.astro
Checkpoint: Trust and legal discoverability are now canonical, explicit, and compatibility-safe.
Phase 5: User Story 3 - See Visible Product Progress (Priority: P2)
Goal: Publish a real Changelog surface and keep optional or deferred surfaces from inflating the initial IA.
Independent Test: A returning visitor can open /changelog, see dated updates, and confirm that unpublished Resources and editorial articles content are not promoted while non-core legacy routes no longer dominate the IA.
Tests for User Story 3
- T015 [P] [US3] Add changelog and optional-surface smoke coverage for dated updates,
/changelog -> /contactreachability, hiddenResources, hidden editorialarticles, and footer content gating inapps/website/tests/smoke/changelog-core-ia.spec.ts
Implementation for User Story 3
- T016 [P] [US3] Implement the Changelog surface and its initial dated entry in
apps/website/src/content/pages/changelog.ts,apps/website/src/pages/changelog.astro, andapps/website/src/content/changelog/2026-04-19-initial-core-pages.md - T017 [P] [US3] Gate optional
Resourcesdiscoverability, keep the editorialarticlescollection unpublished, and keep deferred surfaces out of primary navigation inapps/website/src/lib/site.ts,apps/website/src/components/layout/Navbar.astro, andapps/website/src/components/layout/Footer.astro - T018 [US3] Reclassify
/legal,/terms,/solutions, and/integrationsas retained secondary surfaces inapps/website/src/content/pages/legal.ts,apps/website/src/pages/legal.astro,apps/website/src/content/pages/terms.ts,apps/website/src/pages/terms.astro,apps/website/src/content/pages/solutions.ts,apps/website/src/pages/solutions.astro,apps/website/src/content/pages/integrations.ts, andapps/website/src/pages/integrations.astro
Checkpoint: Returning visitors can see real product progress, and optional/deferred surfaces no longer crowd the initial IA.
Phase 6: Polish & Cross-Cutting Concerns
Purpose: Finalize canonical route outputs, record the lane proof, and verify website-working-contract compatibility.
- T019 [P] Refresh canonical URL generation and sitemap output for the final core IA in
apps/website/src/lib/seo.tsandapps/website/src/pages/sitemap.xml.ts - T020 [P] Record fast-feedback lane validation notes and reviewer proof commands in
specs/215-website-core-pages/plan.mdandspecs/215-website-core-pages/quickstart.md - T021 Run
corepack pnpm build:websiteandcorepack pnpm exec playwright testfor the updated website IA contract usingpackage.json,apps/website/package.json, andapps/website/playwright.config.ts - T022 Verify website working-contract and static-output invariants in
apps/website/astro.config.mjs,package.json, andapps/website/package.json
Dependencies & Execution Order
Phase Dependencies
- Phase 1 starts immediately.
- Phase 2 depends on Phase 1 and blocks all user stories.
- Phase 3 depends on Phase 2 only.
- Phase 4 depends on Phase 2 only.
- Phase 5 depends on Phase 2 only.
- Phase 6 depends on the targeted user stories being complete.
User Story Dependencies
- US1 is the MVP slice and has no dependency on US2 or US3.
- US2 has no dependency on US1 or US3, but reuses the shared route and navigation foundation.
- US3 has no dependency on US1 or US2, but reuses the shared core-route scaffolding and smoke helpers.
Within Each User Story
- Write or update the browser smoke coverage first.
- Update central route or content metadata before finalizing page-route composition.
- Finish route-level integration before moving to polish or the next story’s cleanup.
Parallel Opportunities
- T002 and T003 can run in parallel after T001.
- T005 can run in parallel with T006 after T004 starts.
- In US1, T008 and T009 can run in parallel before T010.
- In US2, T012 and T013 can run in parallel before T014.
- In US3, T016 and T017 can run in parallel before T018.
- In Phase 6, T019 and T020 can run in parallel before T021 and T022.
Parallel Example: User Story 1
# Launch first-journey metadata and content work together:
Task: "T008 [US1] Rebuild primary navigation and header CTA behavior"
Task: "T009 [US1] Refocus the home and product content modules"
# Then finish route-level integration:
Task: "T010 [US1] Apply the core first-visit journey to the published pages"
Parallel Example: User Story 2
# Launch Trust and footer/legal work together:
Task: "T012 [US2] Implement the canonical Trust surface"
Task: "T013 [US2] Rebuild trust/legal footer groups"
# Then align the legal baseline and compatibility path:
Task: "T014 [US2] Align the legal baseline and compatibility surfaces"
Parallel Example: User Story 3
# Launch changelog publishing and optional-surface gating together:
Task: "T016 [US3] Implement the Changelog surface and initial dated entry"
Task: "T017 [US3] Gate optional Resources discoverability"
# Then reclassify the non-core legacy surfaces:
Task: "T018 [US3] Reclassify the retained secondary surfaces"
Implementation Strategy
MVP First
- Complete Phase 1: Setup.
- Complete Phase 2: Foundational.
- Complete Phase 3: User Story 1.
- Run
corepack pnpm build:websiteand the updated home/product smoke proof. - Demo the MVP on
/,/product, and/contactwith the new header navigation.
Incremental Delivery
- Setup and Foundational phases establish the canonical core-route contract.
- US1 makes the first visitor journey obvious.
- US2 makes Trust and legal discoverability canonical.
- US3 adds visible progress and optional-surface gating.
- Polish refreshes sitemap/canonical output and closes the lane-validation loop.
Suggested MVP Scope
- Deliver through User Story 1 if the smallest initial release is needed.
- Add User Story 2 next to make Trust and legal discoverability fully canonical.
- Finish with User Story 3 to publish Changelog and tighten optional-surface discipline.