# Data Model: Initial Website Foundation & v0 Product Site ## Overview This feature introduces no database schema. The model is file- and route-based inside `apps/website` and describes how public content, page composition, navigation, and conversion surfaces are structured. ## Entities ### Site Configuration - **Purpose**: Global site metadata and shared shell settings used by every public page. - **Key fields**: - `siteName` - `siteTagline` - `defaultTitle` - `defaultDescription` - `defaultOgImage` - `primaryNavigation` - `footerNavigationGroups` - `contactCta` - **Relationships**: - Owns many `NavigationItem` entries - Supplies defaults to many `PublicPage` entries - **Validation rules**: - Must define a Home destination via brand/logo path - Must include Product, Solutions, Security & Trust, Integrations, and Contact / Demo in primary navigation - Must include Privacy and Terms in footer navigation ### Public Page - **Purpose**: One published route in the v0 public website. - **Key fields**: - `slug` - `title` - `description` - `routePath` - `pageRole` (`home`, `product`, `solutions`, `trust`, `integrations`, `contact`, `legal`) - `hero` - `sections` - `primaryCta` - `secondaryCta` - `seo` - **Relationships**: - Has one or more `NarrativeSection` entries - May reference zero or more `AudienceNarrative` or `IntegrationEntry` entries depending on page role - Consumes shared defaults from `SiteConfiguration` - **Validation rules**: - Each published page must have a unique `routePath` - Each page must provide title, description, and at least one next-step path - Product and Solutions must remain distinct page roles ### Narrative Section - **Purpose**: Reusable section-level content block used to compose pages. - **Key fields**: - `sectionType` (`hero`, `problem-framing`, `feature-grid`, `trust-grid`, `logo-strip`, `cta`, `rich-text`, `audience-row`, `legal-prose`) - `eyebrow` - `headline` - `body` - `items` - `themeVariant` - **Relationships**: - Belongs to one `PublicPage` - May include many `SectionItem` entries through `items` - **Validation rules**: - Each section must support a clear narrative purpose - Sections used on public core pages must remain semantically meaningful and not decorative-only ### Navigation Item - **Purpose**: A user-facing route link in the header or footer. - **Key fields**: - `label` - `href` - `placement` (`header`, `footer`) - `group` - `order` - `isExternal` - **Relationships**: - Belongs to `SiteConfiguration` - Usually points to one `PublicPage` - **Validation rules**: - Footer items for legal routes must point to published pages - No live navigation item may point to an unpublished placeholder route ### Call To Action - **Purpose**: Standardized next-step action shown within or after narrative sections. - **Key fields**: - `label` - `href` - `variant` (`primary`, `secondary`) - `context` - **Relationships**: - May belong to `PublicPage`, `NarrativeSection`, or `SiteConfiguration` - **Validation rules**: - Every core page must expose at least one CTA leading deeper into the product/trust/contact flow - CTA labels must preserve consistent domain wording and avoid hype language ### Audience Narrative - **Purpose**: Audience-specific framing used primarily on Solutions and supporting pages. - **Key fields**: - `audience` - `problemStatement` - `operatingModelFit` - `proofPoints` - `nextStep` - **Relationships**: - Belongs to the Solutions page or other audience-aware sections - **Validation rules**: - Must distinguish MSP and Enterprise IT narratives rather than collapsing them into generic copy ### Integration Entry - **Purpose**: A public description of one real integration direction or ecosystem anchor. - **Key fields**: - `name` - `summary` - `scopeNote` - `category` - **Relationships**: - Belongs to the Integrations page - **Validation rules**: - Must represent a real or explicitly planned integration direction - Must not express speculative wishlist claims as if they were live product truth ### Legal Document - **Purpose**: Public legal content required to support a credible launch. - **Key fields**: - `slug` - `title` - `summary` - `sections` - `lastReviewedAt` - **Relationships**: - Belongs to the Legal surface - **Validation rules**: - Privacy and Terms must both exist before launch - Any required jurisdiction-specific public legal notice must exist either as a section of the Legal hub or as a dedicated linked legal document before launch - Legal content must be reachable from the footer and the conversion path ## Relationship Summary - `SiteConfiguration` has many `NavigationItem` - `SiteConfiguration` provides defaults to many `PublicPage` - `PublicPage` has many `NarrativeSection` - `PublicPage` may have many `CallToAction` - `Solutions` page has many `AudienceNarrative` - `Integrations` page has many `IntegrationEntry` - `Legal` surface has many `LegalDocument` ## State / Lifecycle Notes - No persisted runtime states are introduced. - Publishability is file- and route-driven: a route is “live” when the page exists and is intentionally linked; future sections remain absent from navigation until live. - Trust and integration claims stay governed by content review rather than by a new application state machine.