TenantAtlas/specs/402-screwfast-website-rebuild/plan.md
ahmido eeb5c98450 feat: rebuild website on ScrewFast foundation (#393)
## Summary
- rebuild `apps/website` on the pinned ScrewFast Astro foundation
- replace the legacy page/content/component structure with the new section and UI architecture
- add Starlight-based docs and the new public route set for platform, pricing, trust, legal, and guides
- refresh website tooling, dependencies, and Playwright smoke coverage for the new site shell

## Scope
- touches `apps/website` and the matching spec artifacts for feature 402
- does not modify `apps/platform`

## Testing
- not run in this step

Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de>
Reviewed-on: #393
2026-05-20 21:36:29 +00:00

78 lines
3.5 KiB
Markdown

# Implementation Plan: Tenantial ScrewFast Website Rebuild
**Branch**: `402-screwfast-website-rebuild`
**Date**: 2026-05-20
**Spec**: `specs/402-screwfast-website-rebuild/spec.md`
## Summary
Delete `apps/website` and vendor the pinned ScrewFast application directly into that path. ScrewFast itself is the Astro app foundation. Adapt it in place only for Tenantial public content and monorepo contracts.
## File-Level Structure
The recreated `apps/website` keeps the ScrewFast app shape:
```text
apps/website/
├── astro.config.mjs
├── package.json
├── process-html.mjs
├── public/
├── src/
│ ├── assets/
│ ├── components/
│ │ ├── sections/
│ │ └── ui/
│ ├── content/
│ │ └── docs/
│ ├── data_files/
│ ├── images/
│ ├── layouts/
│ ├── pages/
│ └── utils/
├── tests/smoke/
└── tsconfig.json
```
## ScrewFast Source Areas Ported
- Full pinned project from `mearashadowfax/ScrewFast@10718e4c68eca7887d8d82e207d9b394d7346ad3`.
- `src/layouts/MainLayout.astro` with metadata, navbar/footer, Preline initialization, dark-mode bootstrap, and Lenis script loading.
- `src/components/sections/navbar&footer/Navbar.astro` and `FooterSection.astro` with Preline collapse behavior and theme toggle placement.
- `src/components/ThemeIcon.astro` with ScrewFast light/dark toggle behavior.
- ScrewFast section/component families for hero, feature tabs, pricing, FAQ, contact, platform sections, Starlight docs, cards, buttons, hover states, focus-visible states, and responsive behavior.
- `src/assets/styles/global.css`, `lenis.css`, `starlight.css`, and `starlight_main.css` with Tailwind v4, Preline, typography/forms plugins, dark handling, and motion behavior.
## Public Routes
- Render: `/`, `/platform`, `/pricing`, `/contact`, `/trust`, `/legal`, `/privacy`, `/terms`, `/imprint`, `/welcome-to-docs/`, `/guides/*`, `/platform/evidence-review/`
- Redirect intentionally: `/product`, `/products`, `/services`, `/blog`, `/insights` to `/platform`
- Static/generated: `/robots.txt`, `/manifest.json`, `/favicon.ico`, `/sitemap-index.xml`
- Hidden/not exposed in navigation: localized routes and unready product/blog/insight detail families
## Dependencies Required
Retained from ScrewFast unless there is a concrete incompatibility:
- `astro`, `@astrojs/check`, `@astrojs/mdx`, `@astrojs/sitemap`, `@astrojs/starlight`: ScrewFast Astro app and docs foundation.
- `@tailwindcss/vite`, `tailwindcss`, `@tailwindcss/forms`, `@tailwindcss/typography`: ScrewFast Tailwind v4 styling stack.
- `preline`: ScrewFast navigation, accordion, modal/collapse behavior.
- `lenis`: ScrewFast smooth scrolling.
- `gsap`: retained because the vendored foundation includes it.
- `astro-vtbot`: retained for Starlight view-transition behavior.
- `clipboard`, `globby`, `html-minifier-terser`, `sharp`, `sharp-ico`, `rimraf`, `prettier`, and Prettier plugins: retained from ScrewFast build/tooling.
- `@playwright/test`: added for required website smoke validation.
## Confirmed Boundary
`apps/platform` will not be touched. The website does not import platform code and does not run Laravel, Filament, Livewire, Blade, migrations, policies, providers, queues, jobs, database, tenant/workspace/RBAC, or Microsoft Graph code.
## Validation
```bash
corepack pnpm install
corepack pnpm build:website
WEBSITE_PORT=4321 corepack pnpm --filter @tenantatlas/website test:smoke
git diff --check
```