## Summary - apply public website launch readiness updates across the Astro site shell, content, and navigation - refine website components, metadata, and localization-related structure for launch prep - update docs/content paths and smoke coverage to match the launch-ready public site state ## Scope - touches the website app and related spec artifacts for feature 403 - does not modify `apps/platform` ## Testing - not run in this step Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #394
165 lines
5.7 KiB
Markdown
165 lines
5.7 KiB
Markdown
# Public Site Contract: Spec 403 Launch Readiness
|
|
|
|
This feature has no REST, GraphQL, Laravel, Filament, Livewire, Microsoft Graph, database, queue, job, policy, RBAC, or product runtime API contract.
|
|
|
|
The contract is the public static website behavior that reviewers and smoke tests must verify.
|
|
|
|
## Rendered Canonical Routes
|
|
|
|
The following German default routes must render intentionally and expose Tenantial-specific page content and metadata:
|
|
|
|
- `/`
|
|
- `/platform`
|
|
- `/pricing`
|
|
- `/contact`
|
|
- `/trust`
|
|
- `/legal`
|
|
- `/privacy`
|
|
- `/terms`
|
|
- `/imprint`
|
|
- `/welcome-to-docs/`
|
|
- `/guides/intro/`
|
|
- `/guides/getting-started/`
|
|
- `/guides/first-project-checklist/`
|
|
- `/platform/evidence-review/`
|
|
|
|
The following English route mirrors must render intentionally under `/en/...`:
|
|
|
|
- `/en/`
|
|
- `/en/platform`
|
|
- `/en/pricing`
|
|
- `/en/contact`
|
|
- `/en/trust`
|
|
- `/en/legal`
|
|
- `/en/privacy`
|
|
- `/en/terms`
|
|
- `/en/imprint`
|
|
- `/en/welcome-to-docs/`
|
|
- `/en/guides/intro/`
|
|
- `/en/guides/getting-started/`
|
|
- `/en/guides/first-project-checklist/`
|
|
- `/en/platform/evidence-review/`
|
|
|
|
## Redirect-Only Aliases
|
|
|
|
The following aliases must redirect intentionally to `/platform` and must not appear as canonical sitemap entries:
|
|
|
|
- `/product`
|
|
- `/products`
|
|
- `/services`
|
|
- `/blog`
|
|
- `/insights`
|
|
|
|
The English aliases must redirect intentionally to `/en/platform` and must not appear as canonical sitemap entries:
|
|
|
|
- `/en/product`
|
|
- `/en/products`
|
|
- `/en/services`
|
|
- `/en/blog`
|
|
- `/en/insights`
|
|
|
|
Current source behavior may use permanent or temporary redirects, but launch review must document which aliases are retained and why.
|
|
|
|
Current planning baseline:
|
|
|
|
- `/product`, `/products`, and `/services` use 301 redirects.
|
|
- `/blog` and `/insights` use 302 redirects.
|
|
|
|
## Static Generated Routes
|
|
|
|
The following static outputs must be available after build:
|
|
|
|
- `/robots.txt`
|
|
- `/sitemap-index.xml`
|
|
- generated sitemap child files such as `/sitemap-0.xml`
|
|
- `/manifest.json`
|
|
- `/favicon.ico`
|
|
|
|
`robots.txt` must point to `/sitemap-index.xml` for the configured public site URL.
|
|
|
|
## Metadata Contract
|
|
|
|
Each rendered canonical route must provide:
|
|
|
|
- Tenantial-specific page title
|
|
- Tenantial-specific page description
|
|
- route-appropriate canonical, Open Graph, and Twitter URL values
|
|
- German default and English alternate `hreflang` links, plus `x-default` pointing at German
|
|
- locale-appropriate Open Graph locale values
|
|
- existing social image URL and MIME/type metadata
|
|
- no ScrewFast, construction/hardware, template, TenantAtlas, TenantPilot, or TenantCTRL residue in public metadata
|
|
- no unsupported proof claims in title, description, Open Graph, Twitter, schema, or docs metadata
|
|
|
|
## CTA Contract
|
|
|
|
Every public CTA, navigation item, footer link, docs link, and visible form-like control must satisfy:
|
|
|
|
- resolves to an intentional route, anchor, static asset, or legitimate external URL
|
|
- no public `href="#"` placeholders
|
|
- demo/contact paths route to `/contact` or an intentional contact section
|
|
- localized public links remain in the current locale where a localized route exists
|
|
- no login, account creation, billing, checkout, backend submission, guaranteed provisioning, or app access implication unless implemented
|
|
- pricing CTAs remain contact/demo-oriented
|
|
- static form controls must not imply backend submission, guaranteed response, account creation, provisioning, or subscription workflow
|
|
- footer email/newsletter controls must be removed or reframed if no newsletter workflow exists
|
|
|
|
## Trust And Pricing Claim Contract
|
|
|
|
Public copy and metadata must avoid unsupported:
|
|
|
|
- SOC 2, ISO, or other certification claims
|
|
- Microsoft endorsement claims
|
|
- compliance guarantees
|
|
- recovery guarantees
|
|
- uptime guarantees
|
|
- fake customer logos
|
|
- fake testimonials
|
|
- fake "trusted by" claims
|
|
- self-serve billing, checkout, subscription, or entitlement claims
|
|
- production legal details left as explicit replacement placeholders
|
|
|
|
## Product Preview Contract
|
|
|
|
Static product previews must:
|
|
|
|
- be framed as illustrative, static, or demo content
|
|
- avoid implying live tenant data
|
|
- avoid internal Laravel/Filament implementation details
|
|
- avoid turning visual labels into product runtime taxonomy
|
|
- communicate meaning through text or labels, not color alone
|
|
|
|
## Browser And Accessibility Contract
|
|
|
|
Validated public routes must:
|
|
|
|
- avoid body-level horizontal overflow on representative desktop and mobile viewports
|
|
- keep primary navigation, CTAs, footer links, and visible controls keyboard reachable
|
|
- show visible focus states for interactive elements
|
|
- remain understandable with reduced motion
|
|
- keep primary content and links usable if JavaScript fails where reasonably possible for a static marketing site
|
|
|
|
## Launch Review Risk Register
|
|
|
|
Implementation should explicitly resolve or document these current source risks:
|
|
|
|
- Starlight child docs routes are public and indexed but not fully covered by current smoke route lists.
|
|
- Main-layout `og:url` and `twitter:url` are root-oriented rather than route-specific.
|
|
- Social image metadata may reference a missing or type-mismatched asset.
|
|
- `/imprint` contains placeholder production details.
|
|
- Contact form copy may imply a backend workflow that does not exist.
|
|
- Footer `Subscribe` wording may imply a newsletter workflow that does not exist.
|
|
- Source placeholder social links with `#` must not be emitted publicly.
|
|
|
|
## Scope Contract
|
|
|
|
Implementation and validation must not touch:
|
|
|
|
- `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/platform`
|
|
- Laravel providers, migrations, policies, jobs, queues, database, Filament resources, Livewire components, Blade views, tenant/workspace/RBAC code, Microsoft Graph code, or AuditLog behavior
|
|
|
|
Scope proof command:
|
|
|
|
```bash
|
|
cd /Users/ahmeddarrazi/Documents/projects/wt-website && git status --short -- apps/platform
|
|
```
|