## 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
Phase 0 Research: apps/website Public Website Launch Readiness
Decision: Keep the Spec 402 Astro/ScrewFast-derived foundation
Rationale: The active website is a standalone Astro app at /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website with Starlight docs, sitemap generation, Tailwind v4, Preline, Lenis, and Playwright smoke tests already in place. Spec 403 is a launch-readiness pass, not another rebuild.
Alternatives considered:
- Rebuild the website foundation again: rejected by scope.
- Introduce a new design system or app shell: rejected because Spec 402 already selected the substrate.
- Move launch checks into the Laravel platform: rejected because
apps/platformis out of scope.
Decision: Treat route, CTA, metadata, and sitemap behavior as the public contract
Rationale: This feature has no API endpoints or product runtime entities. Public launch behavior is expressed through static pages, redirect aliases, generated metadata, navigation/footer links, docs exposure, robots.txt, and sitemap output.
Alternatives considered:
- Generate OpenAPI or GraphQL contracts: rejected because the public website exposes no API for this feature.
- Model route readiness as product runtime state: rejected because it would create unnecessary taxonomy/persistence.
Decision: Use conservative public copy and proof-safe claim checks
Rationale: The spec assumes no verified customer logos, testimonials, certifications, Microsoft endorsements, uptime guarantees, compliance guarantees, recovery guarantees, self-serve billing, or account provisioning workflow. Copy and metadata must therefore stay contact/demo-oriented and avoid unsupported proof claims.
Alternatives considered:
- Use aspirational enterprise proof language: rejected because it creates public trust risk.
- Keep placeholder social proof from the substrate: rejected unless hidden, removed, or rewritten as neutral content.
Decision: Keep static product previews illustrative
Rationale: Product-like preview content can help visitors understand Tenantial, but it must not imply live Microsoft tenant data, a running Graph integration on the website, or shared product status taxonomy.
Alternatives considered:
- Present previews as live tenant output: rejected because the public website has no authenticated tenant runtime.
- Remove all previews: rejected because static/demo previews are useful and allowed when clearly framed.
Decision: Validate with website build, Playwright smoke, manual browser review, and scope checks
Rationale: The current package scripts support corepack pnpm build:website and WEBSITE_PORT=4321 corepack pnpm --filter @tenantatlas/website test:smoke. Playwright is already configured for desktop and mobile projects and starts the Astro preview server. These lanes prove the public static website without pulling in Laravel runtime cost.
Alternatives considered:
- Run Laravel/Pest/Filament tests: rejected because this feature does not touch
apps/platform. - Rely only on static text review: rejected because launch readiness requires browser/mobile/light/dark/overflow/CTA validation.
Decision: Use a website-local launch-readiness note as the implementation handoff artifact
Rationale: FR-034 requires a launch-readiness note documenting route exposure, CTA assumptions, trust/pricing claim posture, sitemap behavior, and deployment expectations. This is a website release artifact, not product persistence.
Alternatives considered:
- Store launch readiness in database tables: rejected as out of scope and unnecessary.
- Skip the note and rely on PR comments: rejected because reviewers need a durable handoff artifact.
Current Source Observations
- Rendered smoke routes currently include
/,/platform,/pricing,/contact,/trust,/legal,/privacy,/terms,/imprint, and/welcome-to-docs/. - Public Starlight docs routes also include
/guides/intro/,/guides/getting-started/,/guides/first-project-checklist/, and/platform/evidence-review/; current smoke coverage only lists the docs root. - Redirect smoke routes currently include
/product,/products,/services,/blog, and/insights, all resolving to/platform. /product,/products, and/servicescurrently use 301 redirects;/blogand/insightscurrently use 302 redirects. The launch note should confirm this split is intentional.astro.config.mjsfilters redirect-only paths out of the generated sitemap.robots.txtpoints to the generated sitemap index throughimport.meta.env.SITE.apps/website/src/utils/navigation.tsstill containssocialLinkswith#placeholder targets; implementation should remove, hide, or replace public placeholders if they are emitted.- Existing smoke helpers already check forbidden public terms and horizontal overflow; Spec 403 may need broader CTA, metadata, docs, sitemap, and keyboard coverage.
- Main-layout canonical URLs are page-specific, but current social metadata uses the site root for
og:urlandtwitter:urlon non-doc pages; launch implementation should make route metadata consistent. - Current social image metadata has launch-review risk: main-layout image type is hardcoded as PNG while generated social output may be WebP, and Starlight docs metadata references
https://tenantial.com/social.webpwithout an obvious matching public file. /imprintcontains placeholder production details that must be replaced or made explicitly conservative before launch.- The contact page includes a static form and
Prepare Emailsubmit button without a backend workflow; copy/behavior must not imply a guaranteed submission workflow. - The footer includes an email field and
Subscribelink to/contact; this should be reframed or removed to avoid implying a newsletter workflow.