## Summary - finalize Spec 223 planning artifact set for AstroDeck website rebuild - align `spec.md`, `plan.md`, `tasks.md`, `research.md`, `data-model.md`, `quickstart.md`, and contract schema - add/complete inventory, mapping, exception, drift-follow-up, and supersession artifacts - mark legacy website-spec task references as superseded and wire follow-up ownership ## Key Outcomes - no remaining cross-artifact consistency findings in the Spec 223 bundle - explicit Spec 213 handling path added - material-drift follow-up rules normalized - exception register and documented exception model made explicit and schema-backed ## Validation - Integrated browser smoke check passed for main website routes (`/`, `/product`, `/trust`, `/changelog`, `/contact`, `/privacy`, `/imprint`, `/legal`, `/security-trust`) - no console errors/warnings observed during route smoke navigation - YAML contract parses successfully Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #262
13 KiB
Tasks: Initial Website Foundation & v0 Product Site
Input: Design documents from /specs/213-website-foundation-v0/
Prerequisites: plan.md, spec.md, research.md, data-model.md, quickstart.md, contracts/public-site.openapi.yaml
Tests: Browser smoke coverage is required for this runtime-changing website feature, together with the root website build proof.
Historical Status
This implementation record is retained for traceability and is superseded by AstroDeck rebuild.
Forward planning now lives in ../223-astrodeck-website-rebuild/mappings/spec-213-website-foundation-v0.md. Do not reset or reopen the checkbox state below; new work belongs to the Spec 223 mapping and follow-up slices.
Test Governance Checklist
- Lane assignment is named and is the narrowest sufficient proof for the changed behavior.
- New or changed tests stay in the smallest honest family, and the browser addition remains explicit.
- Shared helpers and context defaults stay cheap by default; no backend, auth, or fixture-heavy setup is introduced.
- Planned validation commands cover the website change without pulling in unrelated platform lane cost.
- Any runtime-cost or escalation note stays documented in this feature rather than being deferred implicitly.
Phase 1: Setup (Shared Infrastructure)
Purpose: Establish the minimal website tooling and config baseline required before reusable UI work begins.
- T001 Add explicit website TypeScript configuration in
apps/website/tsconfig.json - T002 [P] Add Tailwind CSS v4 and Playwright dev dependencies plus website test scripts in
apps/website/package.json - T003 [P] Update Astro aliases and website-safe build configuration in
apps/website/astro.config.mjs
Phase 2: Foundational (Blocking Prerequisites)
Purpose: Create the shared shell, primitives, tokens, metadata, and smoke-test harness that every page depends on.
⚠️ CRITICAL: No user story work should begin until this phase is complete.
- T004 Configure Tailwind v4 theme tokens and base website styles in
apps/website/src/styles/global.cssandapps/website/src/styles/tokens.css - T005 [P] Create shared site metadata, navigation, and footer configuration in
apps/website/src/lib/site.tsandapps/website/src/types/site.ts - T006 [P] Add the browser smoke-test harness in
apps/website/playwright.config.tsandapps/website/tests/smoke/smoke-helpers.ts - T007 Build the base document and page shell wrappers in
apps/website/src/layouts/BaseLayout.astroandapps/website/src/components/layout/PageShell.astro - T008 [P] Build global navigation and footer components in
apps/website/src/components/layout/Navbar.astroandapps/website/src/components/layout/Footer.astro - T009 [P] Implement layout primitives in
apps/website/src/components/primitives/Container.astro,apps/website/src/components/primitives/Section.astro,apps/website/src/components/primitives/SectionHeader.astro,apps/website/src/components/primitives/Stack.astro,apps/website/src/components/primitives/Cluster.astro, andapps/website/src/components/primitives/Grid.astro - T010 [P] Implement shared UI primitives in
apps/website/src/components/primitives/Button.astro,apps/website/src/components/primitives/Badge.astro,apps/website/src/components/primitives/Card.astro,apps/website/src/components/primitives/Input.astro, andapps/website/src/components/primitives/Textarea.astro - T011 Build reusable section scaffolds in
apps/website/src/components/sections/PageHero.astro,apps/website/src/components/sections/CTASection.astro,apps/website/src/components/sections/FeatureGrid.astro,apps/website/src/components/sections/TrustGrid.astro, andapps/website/src/components/sections/LogoStrip.astro
Checkpoint: Foundation ready. User-story page work can now begin.
Phase 3: User Story 1 - Understand the Product Quickly (Priority: P1) 🎯 MVP
Goal: Deliver the first credible public explanation of TenantAtlas through Home and Product.
Independent Test: Visit Home and Product, verify both routes render from the shared shell, and confirm the smoke suite proves product-category clarity and next-step CTA reachability without platform coupling.
Tests for User Story 1
Note
: Write this test first and confirm it fails before implementing the story.
- T012 [P] [US1] Write failing smoke coverage for Home and Product in
apps/website/tests/smoke/home-product.spec.ts
Implementation for User Story 1
- T013 [P] [US1] Create Home and Product content modules in
apps/website/src/content/pages/home.tsandapps/website/src/content/pages/product.ts - T014 [P] [US1] Create product-explanation content primitives in
apps/website/src/components/content/Eyebrow.astro,apps/website/src/components/content/Headline.astro,apps/website/src/components/content/Lead.astro, andapps/website/src/components/content/FeatureItem.astro - T015 [P] [US1] Create supporting proof blocks in
apps/website/src/components/content/Callout.astroandapps/website/src/components/content/Metric.astro - T016 [US1] Implement the Home and Product routes in
apps/website/src/pages/index.astroandapps/website/src/pages/product.astro
Checkpoint: Home and Product are independently functional and demonstrable as the MVP slice.
Phase 4: User Story 2 - Evaluate Fit by Audience (Priority: P2)
Goal: Add audience-fit, trust framing, and ecosystem-fit pages that help visitors judge whether TenantAtlas fits their environment.
Independent Test: Visit Solutions, Security & Trust, and Integrations from the shared navigation and verify the smoke suite proves audience-specific framing, substantiated trust messaging, and non-speculative integrations.
Tests for User Story 2
Note
: Write this test first and confirm it fails before implementing the story.
- T017 [P] [US2] Write failing smoke coverage for Solutions, Security & Trust, and Integrations in
apps/website/tests/smoke/solutions-trust-integrations.spec.ts
Implementation for User Story 2
- T018 [P] [US2] Create Solutions, Security & Trust, and Integrations content modules in
apps/website/src/content/pages/solutions.ts,apps/website/src/content/pages/security-trust.ts, andapps/website/src/content/pages/integrations.ts - T019 [P] [US2] Create audience and trust content primitives in
apps/website/src/components/content/AudienceRow.astro,apps/website/src/components/content/TrustPrincipleCard.astro, andapps/website/src/components/content/IntegrationBadge.astro - T020 [P] [US2] Implement the Solutions route in
apps/website/src/pages/solutions.astro - T021 [P] [US2] Implement the Security & Trust route in
apps/website/src/pages/security-trust.astro - T022 [P] [US2] Implement the Integrations route in
apps/website/src/pages/integrations.astro
Checkpoint: Audience fit, trust framing, and integration fit are independently functional and testable.
Phase 5: User Story 3 - Reach a Qualified Next Step (Priority: P3)
Goal: Deliver the contact/demo path, legal surfaces, and cross-page CTA/legal reachability needed for a trustworthy conversion flow.
Independent Test: Visit Contact, Legal, Privacy, and Terms and confirm the smoke suite proves CTA reachability and footer/legal access from every published core page.
Tests for User Story 3
Note
: Write this test first and confirm it fails before implementing the story.
- T023 [P] [US3] Write failing smoke coverage for Contact, Legal, Privacy, Terms, footer links, CTA reachability, and legal-surface availability in
apps/website/tests/smoke/contact-legal.spec.ts
Implementation for User Story 3
- T024 [P] [US3] Create Contact and legal content modules, including any required jurisdiction-specific public legal notice content, in
apps/website/src/content/pages/contact.ts,apps/website/src/content/pages/legal.ts,apps/website/src/content/pages/privacy.ts, andapps/website/src/content/pages/terms.ts - T025 [P] [US3] Create conversion and legal content primitives in
apps/website/src/components/content/PrimaryCTA.astro,apps/website/src/components/content/SecondaryCTA.astro,apps/website/src/components/content/ContactPanel.astro,apps/website/src/components/content/DemoPrompt.astro, andapps/website/src/components/content/RichText.astro - T026 [P] [US3] Implement the Contact route in
apps/website/src/pages/contact.astro - T027 [P] [US3] Implement the Legal hub route, including any required jurisdiction-specific public legal notice path, in
apps/website/src/pages/legal.astro - T028 [P] [US3] Implement the Privacy and Terms routes in
apps/website/src/pages/privacy.astroandapps/website/src/pages/terms.astro - T029 [US3] Add SEO and future-ready content scaffolding, including explicit sitemap output, in
apps/website/src/lib/seo.ts,apps/website/src/content.config.ts,apps/website/public/robots.txt,apps/website/src/pages/sitemap.xml.ts, andapps/website/astro.config.mjs - T030 [US3] Wire final CTA and footer/legal reachability across
apps/website/src/pages/index.astro,apps/website/src/pages/product.astro,apps/website/src/pages/solutions.astro,apps/website/src/pages/security-trust.astro,apps/website/src/pages/integrations.astro, andapps/website/src/pages/contact.astro
Checkpoint: The qualified contact path and legal reachability are functional across the full published site.
Phase 6: Polish & Cross-Cutting Concerns
Purpose: Final validation, wording review, and workspace-contract verification across all stories.
- T031 [P] Validate both required fast-feedback proof commands against
apps/website/package.json,apps/website/playwright.config.ts, andspecs/213-website-foundation-v0/quickstart.md - T032 [P] Review and tighten public wording against substantiated-claim and banned-wording rules in
apps/website/src/content/pages/home.ts,apps/website/src/content/pages/product.ts,apps/website/src/content/pages/solutions.ts,apps/website/src/content/pages/security-trust.ts,apps/website/src/content/pages/integrations.ts,apps/website/src/content/pages/contact.ts,apps/website/src/content/pages/legal.ts,apps/website/src/content/pages/privacy.ts, andapps/website/src/content/pages/terms.ts - T033 Verify the workspace script and package contracts remain intact in
package.jsonandapps/website/package.json
Dependencies & Execution Order
Phase Dependencies
- Setup (Phase 1): Starts immediately.
- Foundational (Phase 2): Depends on Setup and blocks all story work.
- User Story 1 (Phase 3): Depends on Foundational only.
- User Story 2 (Phase 4): Depends on Foundational only.
- User Story 3 (Phase 5): Depends on Foundational and needs the core routes from US1 and US2 in place to satisfy “from any core page” CTA/legal reachability.
- Polish (Phase 6): Depends on all targeted stories being complete.
User Story Dependencies
- US1: No dependency on other user stories; this is the MVP slice.
- US2: No dependency on US1 for implementation, but it reuses the same shared shell and primitives from Foundational.
- US3: Depends on the published route set from US1 and US2 to complete the full cross-page CTA/legal contract.
Within Each User Story
- Write the browser smoke test first and verify it fails.
- Create content modules and story-specific primitives before assembling the route files.
- Finish route implementation before cross-page or SEO wiring tasks.
Parallel Opportunities
T002andT003can run in parallel onceT001is scoped.T005,T006,T008,T009, andT010can run in parallel afterT004begins.- In US1,
T013,T014, andT015can run in parallel beforeT016. - In US2,
T018,T019,T020,T021, andT022can be split across contributors once shared story inputs are clear. - In US3,
T024,T025,T026,T027, andT028can run in parallel beforeT029andT030. T031andT032can run in parallel during final polish.
Parallel Example: User Story 2
# Launch the audience/trust/integration building blocks together:
Task: "T018 [US2] Create Solutions, Security & Trust, and Integrations content modules"
Task: "T019 [US2] Create audience and trust content primitives"
# Then split the route assembly work:
Task: "T020 [US2] Implement the Solutions route"
Task: "T021 [US2] Implement the Security & Trust route"
Task: "T022 [US2] Implement the Integrations route"
Implementation Strategy
MVP First
- Complete Phase 1: Setup.
- Complete Phase 2: Foundational.
- Complete Phase 3: User Story 1.
- Run the website build and the US1 smoke test.
- Demo the MVP with Home + Product.
Incremental Delivery
- Setup + Foundational establish the reusable website system.
- US1 ships the first clear product explanation.
- US2 expands into audience fit, trust, and integration context.
- US3 completes the conversion/legal path and SEO/discovery scaffolding.
- Polish validates wording, scripts, and proof commands before merge.
Suggested MVP Scope
- Deliver through User Story 1 if a smaller first release is needed.
- Add User Story 2 next for evaluation depth.
- Finish with User Story 3 for full contact/legal/SEO readiness.