## 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
5.7 KiB
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/servicesuse 301 redirects./blogand/insightsuse 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
hreflanglinks, plusx-defaultpointing 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
/contactor 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:urlandtwitter:urlare root-oriented rather than route-specific. - Social image metadata may reference a missing or type-mismatched asset.
/imprintcontains placeholder production details.- Contact form copy may imply a backend workflow that does not exist.
- Footer
Subscribewording 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:
cd /Users/ahmeddarrazi/Documents/projects/wt-website && git status --short -- apps/platform