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
45 lines
2.0 KiB
TypeScript
45 lines
2.0 KiB
TypeScript
import type { HeroContent, LegalSection, PageSeo } from '@/types/site';
|
|
|
|
export const legalSeo: PageSeo = {
|
|
title: 'TenantAtlas | Legal',
|
|
description:
|
|
'The TenantAtlas legal baseline keeps privacy, terms, imprint, and trust routing accessible without promoting the legal hub into the primary navigation.',
|
|
path: '/legal',
|
|
};
|
|
|
|
export const legalHero: HeroContent = {
|
|
eyebrow: 'Retained legal surface',
|
|
title: 'Legal access should stay one click away from the trust and contact path.',
|
|
description:
|
|
'The legal hub keeps privacy, website terms, imprint details, and trust routing discoverable from the footer and the conversion flow so visitors do not have to guess where those basics live.',
|
|
primaryCta: {
|
|
href: '/imprint',
|
|
label: 'Imprint',
|
|
},
|
|
secondaryCta: {
|
|
href: '/trust',
|
|
label: 'Trust',
|
|
variant: 'secondary',
|
|
},
|
|
highlights: [
|
|
'Public legal basics stay reachable before a visitor shares evaluation context.',
|
|
'The site separates website disclosures from future product-commercial paperwork.',
|
|
'Imprint remains the canonical notice surface while this hub stays a secondary index.',
|
|
],
|
|
};
|
|
|
|
export const legalNoticeSections: LegalSection[] = [
|
|
{
|
|
title: 'Why this route still exists',
|
|
body: [
|
|
'This retained legal hub exists so visitors can still find the legal baseline quickly while the canonical notice itself lives on Imprint and the core trust story lives on Trust.',
|
|
'During controlled evaluation, legal and privacy inquiries can be routed through the public contact path while launch-ready publisher details continue to tighten.',
|
|
],
|
|
bullets: [
|
|
'Trust stays top-level visible in the header, not buried inside legal pages.',
|
|
'Privacy, Terms, and Imprint remain directly reachable from the footer.',
|
|
'The legal hub stays published without becoming part of the initial core navigation.',
|
|
],
|
|
},
|
|
];
|