TenantAtlas/specs/215-website-core-pages/data-model.md
Ahmed Darrazi 27d520b4aa
Some checks failed
PR Fast Feedback / fast-feedback (pull_request) Failing after 1m10s
feat: implement website core pages IA
2026-04-19 12:16:45 +02:00

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/website only)
    • requiredCoreRoutes
    • recommendedCoreRoutes
    • optionalSurfaceFamilies
    • deferredSurfaceFamilies
    • primaryConversionRoute
    • legalBaselineRoutes
    • maxPrimaryInformationalLinks
  • Relationships:
    • Owns many Public Surface entries
    • Owns many Navigation Entry entries
    • Owns many Footer Group entries
    • Owns many Content Publication Rule entries
    • Owns many Compatibility Path entries
    • Owns many Journey Stage entries
  • 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

Public Surface

  • Purpose: A named public page or route that performs one clear job in the website journey.
  • Key fields:
    • path
    • role (home, product, trust, changelog, contact, privacy, imprint, secondary-supporting, secondary-legal, compatibility)
    • priority (required, recommended, optional, deferred, compatibility)
    • family (landing, trust, content)
    • jobStatement
    • buyerQuestionsAnswered
    • canonicalStatus (canonical, conditional, legacy)
  • Relationships:
    • Belongs to Website IA Contract
    • May appear in many Navigation Entry and Footer Group entries
    • May satisfy one or more Journey Stage entries
    • May be gated by one Content Publication Rule
  • 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)
    • label
    • href
    • prominence (informational, cta, legal, secondary)
    • visibilityRule
    • sourceSurfaceRole
  • Relationships:
    • Belongs to Website IA Contract
    • References one Public Surface
    • May belong to one Footer Group
  • Validation rules:
    • Brand entry must route to /
    • Trust must have a visible primary-nav entry
    • Only one primary-cta route may be primary at a time
    • No primary-nav entry may point to a placeholder or deferred surface
  • Purpose: A semantic grouping of footer links that reinforces the public IA without inflating header navigation.
  • Key fields:
    • title
    • purpose (product, trust-legal, contact, content)
    • items
  • Relationships:
    • Belongs to Website IA Contract
    • Contains many Navigation Entry items
  • 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)
    • contentSource
    • minimumSubstanceRule
    • primaryNavAllowed
    • footerAllowed
    • fallbackBehavior
  • Relationships:
    • Belongs to Website IA Contract
    • May gate one or more Public Surface entries
  • Validation rules:
    • Resources may not be promoted until substantive content exists
    • The existing articles collection remains unpublished as blog-editorial inventory 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:
    • legacyPath
    • canonicalPath
    • strategy (redirect, secondary, retire)
    • reason
    • expiryIntent
  • Relationships:
    • Belongs to Website IA Contract
    • References one canonical Public Surface
  • 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)
    • primaryQuestion
    • allowedSurfaceRoles
    • requiredTransitions
  • Relationships:
    • Belongs to Website IA Contract
    • References many Public Surface roles
  • 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 Contract owns many Public Surface
  • Website IA Contract owns many Navigation Entry
  • Website IA Contract owns many Footer Group
  • Website IA Contract owns many Content Publication Rule
  • Website IA Contract owns many Compatibility Path
  • Website IA Contract owns many Journey Stage
  • Navigation Entry references one Public Surface
  • Footer Group contains many Navigation Entry
  • Content Publication Rule gates one or more optional Public Surface
  • Compatibility Path points to one canonical Public Surface
  • Journey Stage is satisfied by one or more Public Surface roles

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.