TenantAtlas/specs/403-public-website-launch-readiness/tasks.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

23 KiB

Tasks: apps/website Public Website Launch Readiness

Input: Design documents from /Users/ahmeddarrazi/Documents/projects/wt-website/specs/403-public-website-launch-readiness/ Prerequisites: plan.md, spec.md, research.md, data-model.md, public-site-contract.md, quickstart.md

Tests: Browser/static website validation is required by Spec 403. Use Playwright smoke tests and static source/build checks only; do not add Pest, Laravel, Filament, Livewire, database, Sail, Microsoft Graph, queue, job, policy, RBAC, or apps/platform test coverage.

Phase 1: Setup

Purpose: Establish the website-only scope and current launch-readiness baseline before editing.

  • T001 Inspect current git scope and confirm /Users/ahmeddarrazi/Documents/projects/wt-website/apps/platform is untouched with git status --short -- apps/platform from /Users/ahmeddarrazi/Documents/projects/wt-website
  • T002 [P] Review current public route sources in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages
  • T003 [P] Review current navigation and footer link data in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/utils/navigation.ts
  • T004 [P] Review current metadata components in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/components/Meta.astro and /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/components/ui/starlight/Head.astro
  • T005 [P] Review current Playwright smoke coverage in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/smoke-helpers.ts, /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/public-routes.spec.ts, and /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/interaction.spec.ts

Phase 2: Foundational

Purpose: Add shared launch-readiness validation scaffolding required before user-story work.

Critical: Complete this phase before story-specific implementation.

  • T006 Update canonical rendered route and docs route lists in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/smoke-helpers.ts to include /, /platform, /pricing, /contact, /trust, /legal, /privacy, /terms, /imprint, /welcome-to-docs/, /guides/intro/, /guides/getting-started/, /guides/first-project-checklist/, and /platform/evidence-review/
  • T007 Update redirect alias expectations in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/smoke-helpers.ts for /product, /products, /services, /blog, and /insights
  • T008 Add shared forbidden metadata and public claim assertion helpers in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/smoke-helpers.ts
  • T009 Add shared public link and anchor validation helpers in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/smoke-helpers.ts
  • T010 Add shared sitemap parsing helpers in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/smoke-helpers.ts
  • T011 Confirm no foundational task touches /Users/ahmeddarrazi/Documents/projects/wt-website/apps/platform by running git status --short -- apps/platform from /Users/ahmeddarrazi/Documents/projects/wt-website

Checkpoint: Public route, link, metadata, and sitemap smoke helpers are ready for user-story implementation.


Phase 3: User Story 1 - Understand Tenantial Quickly (Priority: P1) MVP

Goal: A first-time visitor understands from / that Tenantial is evidence-first governance for Microsoft tenant configuration, including backup, restore, drift detection, findings, evidence, auditability, exceptions, and reviews.

Independent Test: Open / in desktop and mobile widths and verify that the hero, section sequence, CTAs, and FAQ communicate the product category and core value without requiring platform knowledge.

Tests For User Story 1

  • T012 [P] [US1] Add homepage smoke assertions for first-viewport positioning and core capability terms in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/public-routes.spec.ts
  • T013 [P] [US1] Add homepage mobile overflow and heading visibility assertions in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/interaction.spec.ts

Implementation For User Story 1

  • T014 [US1] Refine homepage hero copy and primary CTA labels in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/index.astro
  • T015 [US1] Refine homepage capability section copy for backup, restore, drift detection, findings, evidence, auditability, exceptions, and reviews in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/index.astro
  • T016 [P] [US1] Refine homepage FAQ copy to remove implementation-first wording in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/data_files/faqs.json
  • T017 [US1] Verify homepage metadata title and description are Tenantial-specific in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/index.astro
  • T018 [US1] Run fresh-build US1 validation from /Users/ahmeddarrazi/Documents/projects/wt-website with corepack pnpm build:website before WEBSITE_PORT=4321 corepack pnpm --filter @tenantatlas/website test:smoke

Checkpoint: User Story 1 is independently shippable as the MVP.


Phase 4: User Story 2 - Evaluate The Public Product Route (Priority: P1)

Goal: A buyer can open /platform and understand Tenantial's public product model without confusing it with the internal Laravel/Filament app.

Independent Test: Open /platform and verify that the page explains backup, restore, drift detection, findings, evidence, audit trail, exceptions, and reviews, and that previews are static/demo content.

Tests For User Story 2

  • T019 [P] [US2] Add /platform product model smoke assertions in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/public-routes.spec.ts
  • T020 [US2] Add static/demo preview framing assertions for /platform in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/public-routes.spec.ts

Implementation For User Story 2

  • T021 [US2] Refine /platform product model copy for backup, restore, drift detection, findings, evidence, audit trail, exceptions, and reviews in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/platform.astro
  • T022 [US2] Add or tighten static/demo preview framing text in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/platform.astro
  • T023 [US2] Remove internal Laravel, Filament, Livewire, provider, Graph runtime, or admin implementation wording from /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/platform.astro
  • T024 [P] [US2] Review static product preview component copy for color-independent meaning in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/components/ui/blocks/ReviewComponent.astro
  • T025 [US2] Verify /platform metadata title and description are public-product focused in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/platform.astro
  • T026 [US2] Run fresh-build US2 validation from /Users/ahmeddarrazi/Documents/projects/wt-website with corepack pnpm build:website before WEBSITE_PORT=4321 corepack pnpm --filter @tenantatlas/website test:smoke

Checkpoint: User Story 2 is independently shippable once /platform communicates the public product model safely.


Phase 5: User Story 3 - Follow A Safe CTA Path (Priority: P2)

Goal: A visitor can follow clear demo/contact paths without fake forms, dead links, fake account access, unsupported billing, or unsupported self-serve purchase claims.

Independent Test: Click primary and secondary CTAs from homepage, /platform, /pricing, /trust, docs, and footer; each CTA resolves to an intentional route or anchor.

Tests For User Story 3

  • T027 [P] [US3] Add public CTA crawl assertions for rendered routes in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/public-routes.spec.ts
  • T028 [US3] Add emitted href="#" placeholder assertions for rendered HTML in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/public-routes.spec.ts
  • T029 [P] [US3] Add keyboard reachability smoke assertions for primary navigation, CTAs, footer links, and visible form controls in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/interaction.spec.ts

Implementation For User Story 3

  • T030 [US3] Remove or replace placeholder social link values in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/utils/navigation.ts
  • T031 [US3] Reframe footer email and Subscribe CTA so it does not imply a newsletter workflow in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/components/sections/navbar&footer/FooterSection.astro
  • T032 [US3] Reframe static contact form copy and controls so they do not imply backend submission or guaranteed provisioning in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/contact.astro
  • T033 [P] [US3] Verify homepage CTA targets route only to /contact or /platform in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/index.astro
  • T034 [P] [US3] Verify platform CTA targets route only to intentional public routes or anchors in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/platform.astro
  • T035 [P] [US3] Verify pricing CTAs remain contact/demo-oriented in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/pricing.astro and /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/data_files/pricing.json
  • T036 [P] [US3] Verify trust and docs CTA targets are intentional in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/trust.astro and /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/content/docs
  • T037 [US3] Run fresh-build US3 validation from /Users/ahmeddarrazi/Documents/projects/wt-website with corepack pnpm build:website before WEBSITE_PORT=4321 corepack pnpm --filter @tenantatlas/website test:smoke

Checkpoint: User Story 3 is independently shippable once CTAs are honest and resolvable.


Phase 6: User Story 4 - Trust The Claims (Priority: P2)

Goal: A security-conscious buyer sees conservative, proof-safe wording across trust, legal, pricing, product, and docs pages.

Independent Test: Review visible copy and metadata on /, /platform, /pricing, /trust, /legal, /privacy, /terms, /imprint, and docs routes; no unsupported proof claims or fake social proof appear.

Tests For User Story 4

  • T038 [P] [US4] Expand forbidden public claim assertions for visible copy and metadata in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/smoke-helpers.ts
  • T039 [P] [US4] Add trust, pricing, legal, and docs claim-safety smoke assertions in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/public-routes.spec.ts

Implementation For User Story 4

  • T040 [US4] Rewrite trust page copy to avoid unsupported certification, endorsement, uptime, recovery, compliance, and customer adoption claims in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/trust.astro
  • T041 [P] [US4] Rewrite pricing page and pricing data copy to avoid self-serve subscription, billing, checkout, and entitlement claims in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/pricing.astro and /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/data_files/pricing.json
  • T042 [P] [US4] Replace production placeholder wording on /imprint with conservative placeholder-safe public language in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/imprint.astro
  • T043 [P] [US4] Review legal, privacy, and terms pages for unsupported claims in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/legal.astro, /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/privacy.astro, and /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/terms.astro
  • T044 [P] [US4] Review docs copy for unsupported runtime, compliance, recovery, or live-tenant claims in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/content/docs
  • T045 [P] [US4] Remove or neutralize any fake testimonial, customer logo, or social proof imports in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/components/sections/testimonials and /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/components/sections/landing/ClientsSection.astro
  • T046 [US4] Run fresh-build US4 validation from /Users/ahmeddarrazi/Documents/projects/wt-website with corepack pnpm build:website before WEBSITE_PORT=4321 corepack pnpm --filter @tenantatlas/website test:smoke

Checkpoint: User Story 4 is independently shippable once public claims are conservative or backed by supplied proof.


Phase 7: User Story 5 - Review Launch Metadata And Route Exposure (Priority: P3)

Goal: A site owner can confirm route exposure, metadata, sitemap, robots, and redirects are intentional after build.

Independent Test: Run static route and metadata checks against the built website output.

Tests For User Story 5

  • T047 [US5] Add route-specific title, description, canonical, Open Graph, and Twitter metadata assertions in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/public-routes.spec.ts
  • T048 [US5] Add sitemap allowlist assertions for all intentional canonical routes and exclusion assertions for redirect-only aliases in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/public-routes.spec.ts
  • T049 [US5] Add exact /sitemap-index.xml robots assertion in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/public-routes.spec.ts
  • T050 [US5] Add redirect status and noindex-if-rendered smoke assertions for /product, /products, /services, /blog, and /insights in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/public-routes.spec.ts

Implementation For User Story 5

  • T051 [US5] Fix route-specific social URL metadata in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/components/Meta.astro
  • T052 [US5] Fix social image URL and MIME/type metadata consistency in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/components/Meta.astro and /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/components/ui/starlight/Head.astro
  • T053 [P] [US5] Confirm sitemap redirect filtering still covers all redirect aliases in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/astro.config.mjs
  • T054 [P] [US5] Confirm robots.txt points to /sitemap-index.xml for https://tenantial.com in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/robots.txt.ts
  • T055 [P] [US5] Confirm redirect-only pages use documented redirect status/target behavior or noindex metadata if they render HTML in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/product.astro, /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/products/index.astro, /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/services.astro, /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/blog/index.astro, and /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/insights/index.astro
  • T056 [US5] Run build validation from /Users/ahmeddarrazi/Documents/projects/wt-website with corepack pnpm build:website
  • T057 [US5] Run public smoke validation from /Users/ahmeddarrazi/Documents/projects/wt-website with WEBSITE_PORT=4321 corepack pnpm --filter @tenantatlas/website test:smoke

Checkpoint: User Story 5 is independently shippable once route exposure and metadata output are intentional.


Final Phase: Polish And Cross-Cutting Concerns

Purpose: Complete launch handoff, final browser review, and scope validation.

  • T058 [P] Create launch-readiness note documenting route exposure, CTA assumptions, trust/pricing claim posture, sitemap behavior, deployment expectations, and apps/platform untouched confirmation in /Users/ahmeddarrazi/Documents/projects/wt-website/specs/403-public-website-launch-readiness/launch-readiness.md
  • T059 [P] Perform manual desktop browser review for light and dark modes on public routes from /Users/ahmeddarrazi/Documents/projects/wt-website/specs/403-public-website-launch-readiness/quickstart.md
  • T060 [P] Perform manual mobile browser review for light and dark modes on public routes from /Users/ahmeddarrazi/Documents/projects/wt-website/specs/403-public-website-launch-readiness/quickstart.md
  • T061 [P] Verify keyboard focus reachability and visible focus states across primary navigation, CTAs, footer links, and visible controls using /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/interaction.spec.ts
  • T062 [P] Verify reduced-motion readability and color-independent preview meaning on rendered pages in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages
  • T063 Run final build validation from /Users/ahmeddarrazi/Documents/projects/wt-website with corepack pnpm build:website
  • T064 Run final public smoke validation from /Users/ahmeddarrazi/Documents/projects/wt-website with WEBSITE_PORT=4321 corepack pnpm --filter @tenantatlas/website test:smoke
  • T065 Run final whitespace validation from /Users/ahmeddarrazi/Documents/projects/wt-website with git diff --check
  • T066 Run final scope validation from /Users/ahmeddarrazi/Documents/projects/wt-website with git status --short -- apps/platform
  • T067 Run source-wide placeholder validation from /Users/ahmeddarrazi/Documents/projects/wt-website with ! rg "href=\"#\"|href=\\{\"#\"\\}|href=\\{'#'\\}" apps/website/src
  • T068 Add no-JavaScript primary content and link usability smoke coverage in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/interaction.spec.ts
  • T069 Review homepage and platform copy for trust/pricing/preview claim safety in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/index.astro and /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/platform.astro
  • T070 Add German-default and English-prefixed localization helpers, copy, pages, docs, redirects, and route metadata in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src
  • T071 Add localized language picker behavior to primary navigation and verify Docs remains visible in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/components/sections/navbar&footer/Navbar.astro
  • T072 Expand Playwright smoke coverage for German default routes, English /en/... routes, localized redirects, metadata, sitemap, and language switching in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke
  • T073 Update Spec 403 artifacts to document German as the default locale and English as the additional /en/... locale in /Users/ahmeddarrazi/Documents/projects/wt-website/specs/403-public-website-launch-readiness

Dependencies

Phase Dependencies

Setup before Foundational. Foundational before any user story. User Stories 1 and 2 are both P1 and can proceed after Foundational. User Stories 3 and 4 can proceed after the relevant P1 page and CTA surfaces exist. User Story 5 should run after route, copy, CTA, and trust/pricing decisions settle.

User Story Dependencies

  • US1: Depends on Phase 2 only.
  • US2: Depends on Phase 2 only.
  • US3: Depends on Phase 2 and benefits from US1/US2 CTA copy decisions.
  • US4: Depends on Phase 2 and can run parallel with US3 after P1 copy direction is stable.
  • US5: Depends on Phase 2 and final route/metadata decisions from US1-US4.

MVP Scope

Complete Phase 1, Phase 2, and Phase 3 (US1) for the smallest independently reviewable increment.


Parallel Execution Examples

After Phase 2

US1 independent files:
- T016 in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/data_files/faqs.json
- T013 in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/interaction.spec.ts

US2 independent file:
- T024 in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/components/ui/blocks/ReviewComponent.astro

CTA And Claim Safety

US3 CTA work:
- T031 in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/components/sections/navbar&footer/FooterSection.astro
- T032 in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/contact.astro
- T035 in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/pricing.astro and /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/data_files/pricing.json

US4 claim work:
- T040 in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/trust.astro
- T042 in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/imprint.astro
- T044 in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/content/docs

Metadata And Route Exposure

US5 output work:
- T053 in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/astro.config.mjs
- T054 in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/robots.txt.ts
- T055 in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/product.astro and related redirect page files

Implementation Strategy

  1. Finish the setup and foundational smoke-helper tasks first.
  2. Ship the MVP with US1 homepage positioning and smoke assertions.
  3. Add US2 /platform product clarity before broad CTA review so link labels and product terms are stable.
  4. Add US3 CTA integrity and US4 claim safety in parallel where files do not overlap.
  5. Finish with US5 metadata, route exposure, sitemap, robots, and final build/smoke validation.
  6. Complete the launch-readiness note and final apps/platform untouched proof before review.

Test Governance Notes

The declared test purpose is Browser/static website. The affected validation lanes are website build, Playwright public smoke, manual browser review, whitespace validation, and apps/platform scope validation. No Pest, Laravel, Filament, Livewire, database, provider, workspace, membership, session, queue, Sail, or heavy-governance setup is introduced.