TenantAtlas/specs/403-public-website-launch-readiness/contracts/public-site-contract.md
ahmido b9c128163b feat: public website launch readiness updates (#394)
## 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
2026-05-21 21:41:33 +00:00

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 /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:

cd /Users/ahmeddarrazi/Documents/projects/wt-website && git status --short -- apps/platform