## 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
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/platformis untouched withgit status --short -- apps/platformfrom/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.astroand/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.tsto 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.tsfor/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/platformby runninggit status --short -- apps/platformfrom/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-websitewithcorepack pnpm build:websitebeforeWEBSITE_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
/platformproduct 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
/platformin/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/public-routes.spec.ts
Implementation For User Story 2
- T021 [US2] Refine
/platformproduct 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
/platformmetadata 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-websitewithcorepack pnpm build:websitebeforeWEBSITE_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
SubscribeCTA 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
/contactor/platformin/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.astroand/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.astroand/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/content/docs - T037 [US3] Run fresh-build US3 validation from
/Users/ahmeddarrazi/Documents/projects/wt-websitewithcorepack pnpm build:websitebeforeWEBSITE_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.astroand/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/data_files/pricing.json - T042 [P] [US4] Replace production placeholder wording on
/imprintwith 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/testimonialsand/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-websitewithcorepack pnpm build:websitebeforeWEBSITE_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.xmlrobots 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/insightsin/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.astroand/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.txtpoints to/sitemap-index.xmlforhttps://tenantial.comin/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-websitewithcorepack pnpm build:website - T057 [US5] Run public smoke validation from
/Users/ahmeddarrazi/Documents/projects/wt-websitewithWEBSITE_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/platformuntouched 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-websitewithcorepack pnpm build:website - T064 Run final public smoke validation from
/Users/ahmeddarrazi/Documents/projects/wt-websitewithWEBSITE_PORT=4321 corepack pnpm --filter @tenantatlas/website test:smoke - T065 Run final whitespace validation from
/Users/ahmeddarrazi/Documents/projects/wt-websitewithgit diff --check - T066 Run final scope validation from
/Users/ahmeddarrazi/Documents/projects/wt-websitewithgit status --short -- apps/platform - T067 Run source-wide placeholder validation from
/Users/ahmeddarrazi/Documents/projects/wt-websitewith! 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.astroand/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
Docsremains 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
- Finish the setup and foundational smoke-helper tasks first.
- Ship the MVP with US1 homepage positioning and smoke assertions.
- Add US2
/platformproduct clarity before broad CTA review so link labels and product terms are stable. - Add US3 CTA integrity and US4 claim safety in parallel where files do not overlap.
- Finish with US5 metadata, route exposure, sitemap, robots, and final build/smoke validation.
- Complete the launch-readiness note and final
apps/platformuntouched 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.