Some checks failed
Main Confidence / confidence (push) Failing after 43s
## 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
6.8 KiB
6.8 KiB
Data Model: Website Information Architecture / Core Pages
Overview
This feature introduces no database schema. The model is a website-local route and discoverability contract expressed through page roles, navigation entries, publication rules, compatibility paths, and buyer-journey stages inside apps/website.
Entities
Website IA Contract
- Purpose: The canonical information-architecture contract for
apps/website. - Key fields:
scope(apps/websiteonly)requiredCoreRoutesrecommendedCoreRoutesoptionalSurfaceFamiliesdeferredSurfaceFamiliesprimaryConversionRoutelegalBaselineRoutesmaxPrimaryInformationalLinks
- Relationships:
- Owns many
Public Surfaceentries - Owns many
Navigation Entryentries - Owns many
Footer Groupentries - Owns many
Content Publication Ruleentries - Owns many
Compatibility Pathentries - Owns many
Journey Stageentries
- Owns many
- Validation rules:
- Must remain explicitly local to
apps/website - Must keep Trust top-level visible
- Must keep one clear primary conversion route
- Must keep primary navigation at or below 5 informational links plus one CTA
- Must forbid placeholder or thin-content top-level surfaces
- Must remain explicitly local to
Public Surface
- Purpose: A named public page or route that performs one clear job in the website journey.
- Key fields:
pathrole(home,product,trust,changelog,contact,privacy,imprint,secondary-supporting,secondary-legal,compatibility)priority(required,recommended,optional,deferred,compatibility)family(landing,trust,content)jobStatementbuyerQuestionsAnsweredcanonicalStatus(canonical,conditional,legacy)
- Relationships:
- Belongs to
Website IA Contract - May appear in many
Navigation EntryandFooter Groupentries - May satisfy one or more
Journey Stageentries - May be gated by one
Content Publication Rule
- Belongs to
- Validation rules:
- Every required surface must have a named job in the buyer journey
- Required surfaces must be publishable without relying on deferred surfaces
- Optional surfaces cannot appear in primary navigation without passing content-readiness rules
- Compatibility surfaces must never become a second canonical truth
Navigation Entry
- Purpose: A visible public link in the header, footer, brand, or CTA slot.
- Key fields:
location(brand,primary-nav,footer,primary-cta,secondary-cta)labelhrefprominence(informational,cta,legal,secondary)visibilityRulesourceSurfaceRole
- Relationships:
- Belongs to
Website IA Contract - References one
Public Surface - May belong to one
Footer Group
- Belongs to
- Validation rules:
- Brand entry must route to
/ - Trust must have a visible
primary-naventry - Only one
primary-ctaroute may be primary at a time - No
primary-naventry may point to a placeholder or deferred surface
- Brand entry must route to
Footer Group
- Purpose: A semantic grouping of footer links that reinforces the public IA without inflating header navigation.
- Key fields:
titlepurpose(product,trust-legal,contact,content)items
- Relationships:
- Belongs to
Website IA Contract - Contains many
Navigation Entryitems
- Belongs to
- Validation rules:
- Footer must expose Product, Trust/Legal, and Contact discoverability
- Privacy and Imprint must remain directly reachable from the footer
- Content groups such as
Resources, later editorial surfaces, or Docs may only appear when those surfaces are actually published
Content Publication Rule
- Purpose: The rule that determines whether an optional public surface becomes discoverable.
- Key fields:
surfaceFamily(resources,blog-editorial,docs,pricing)contentSourceminimumSubstanceRuleprimaryNavAllowedfooterAllowedfallbackBehavior
- Relationships:
- Belongs to
Website IA Contract - May gate one or more
Public Surfaceentries
- Belongs to
- Validation rules:
Resourcesmay not be promoted until substantive content exists- The existing
articlescollection remains unpublished asblog-editorialinventory until a separate spec activates it - Docs and Pricing remain deferred until a later spec activates them
- Changelog is exempt from optionality but still requires dated, substantive entries rather than an empty route
Compatibility Path
- Purpose: A temporary or secondary path that preserves continuity during IA changes.
- Key fields:
legacyPathcanonicalPathstrategy(redirect,secondary,retire)reasonexpiryIntent
- Relationships:
- Belongs to
Website IA Contract - References one canonical
Public Surface
- Belongs to
- Validation rules:
- Compatibility paths must not appear in primary navigation
- Compatibility paths should not stay permanent without a separate justification
- Sitemap and canonical-link generation must point to the canonical route, not the legacy alias
Journey Stage
- Purpose: The required stage in the public buyer journey that the IA must support.
- Key fields:
stage(entry,first-clarification,deepening,action)primaryQuestionallowedSurfaceRolesrequiredTransitions
- Relationships:
- Belongs to
Website IA Contract - References many
Public Surfaceroles
- Belongs to
- Validation rules:
- Entry surfaces must route visitors to Product, Trust, Changelog, or Contact without dead ends
- Deepening surfaces must preserve a path to the primary conversion route
- Outcome explanation must be present before or during the first-clarification stage, not deferred to a later optional hub
Relationship Summary
Website IA Contractowns manyPublic SurfaceWebsite IA Contractowns manyNavigation EntryWebsite IA Contractowns manyFooter GroupWebsite IA Contractowns manyContent Publication RuleWebsite IA Contractowns manyCompatibility PathWebsite IA Contractowns manyJourney StageNavigation Entryreferences onePublic SurfaceFooter Groupcontains manyNavigation EntryContent Publication Rulegates one or more optionalPublic SurfaceCompatibility Pathpoints to one canonicalPublic SurfaceJourney Stageis satisfied by one or morePublic Surfaceroles
State / Lifecycle Notes
- No persisted runtime state is introduced.
- The IA is repo-owned truth expressed through route files, route metadata, navigation config, and content publication decisions.
- A surface becomes public when its publication rules are satisfied and it is included in the canonical navigation/footer contract.
- Compatibility paths are transitional by design and should shrink over time rather than becoming a permanent parallel IA.