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
62 lines
2.7 KiB
Plaintext
62 lines
2.7 KiB
Plaintext
---
|
|
import Callout from '@/components/content/Callout.astro';
|
|
import PageShell from '@/components/layout/PageShell.astro';
|
|
import Container from '@/components/primitives/Container.astro';
|
|
import Grid from '@/components/primitives/Grid.astro';
|
|
import Section from '@/components/primitives/Section.astro';
|
|
import SectionHeader from '@/components/primitives/SectionHeader.astro';
|
|
import CTASection from '@/components/sections/CTASection.astro';
|
|
import FeatureGrid from '@/components/sections/FeatureGrid.astro';
|
|
import PageHero from '@/components/sections/PageHero.astro';
|
|
import {
|
|
productHero,
|
|
productMetrics,
|
|
productModelBlocks,
|
|
productNarrative,
|
|
productSeo,
|
|
} from '@/content/pages/product';
|
|
---
|
|
|
|
<PageShell currentPath="/product" title={productSeo.title} description={productSeo.description}>
|
|
<PageHero
|
|
hero={productHero}
|
|
metrics={productMetrics}
|
|
calloutTitle="Connected governance model"
|
|
calloutDescription="TenantAtlas connects present-state inventory, immutable snapshots, restore posture, drift, exceptions, and evidence so teams can explain what happened before they decide what to do next."
|
|
/>
|
|
|
|
<FeatureGrid
|
|
eyebrow="Connected governance model"
|
|
title="Explain what the product does before asking for buyer trust."
|
|
description="This page should explain how the pieces fit together so visitors do not mistake the product for a loose collection of backup, reporting, and restore features."
|
|
items={productModelBlocks}
|
|
/>
|
|
|
|
<Section tone="muted" density="base" layer="3">
|
|
<Container width="wide">
|
|
<div class="space-y-8">
|
|
<SectionHeader
|
|
eyebrow="Narrative"
|
|
title="Keep the path from product truth into trust and action readable."
|
|
description="The public product page should make it obvious how the product helps a team move from current-state understanding into trust review, visible progress, and reviewable action."
|
|
/>
|
|
<Grid cols="3">
|
|
{productNarrative.map((block) => <Callout content={block} />)}
|
|
</Grid>
|
|
</div>
|
|
</Container>
|
|
</Section>
|
|
|
|
<CTASection
|
|
eyebrow="Continue"
|
|
title="Trust review and visible progress should follow the product explanation cleanly."
|
|
description="Once the product model is clear, the next useful moves are to inspect the Trust surface, verify current progress, and start the contact path."
|
|
primary={{ href: '/changelog', label: 'Read the changelog' }}
|
|
secondary={{
|
|
href: '/contact',
|
|
label: 'Start the working session',
|
|
variant: 'secondary',
|
|
}}
|
|
/>
|
|
</PageShell>
|