2.9 KiB
Implementation Plan: Website Migration to Astro (v2)
Branch: 001-users-pukpuk-dev | Date: 2025-09-19 | Spec: spec.md
Input: Feature specification from /Users/pukpuk/Dev/website-enchuntw-migr/specs/001-users-pukpuk-dev/spec.md and PRD.md.
Summary
This plan outlines the migration of enchun.tw to a modern stack using Astro (SSR mode) for the frontend and Payload CMS for the backend, deployed on Cloudflare. The project will create a fast, static website with a secure, role-based admin area for content management using Auth.js, styled with Tailwind CSS. E-commerce functionality is explicitly out of scope.
Technical Context
Language/Version: Astro (JavaScript/TypeScript)
Primary Dependencies: Astro, Payload CMS, Auth.js (astro-auth), Tailwind CSS
Storage: N/A (handled by Payload CMS)
Testing: Vitest (unit), Playwright (e2e)
Target Platform: Cloudflare Pages (SSR) & Cloudflare Workers
Project Type: Monorepo (pnpm workspaces)
Performance Goals: Google Lighthouse score of 95+
Constraints: Adherence to WCAG 2.1 AA standards.
Scale/Scope: Migration of existing content (~50 blog posts, ~20 portfolio items).
Constitution Check
No specific constitutional requirements found as the constitution file is a template.
Project Structure
Structure Decision: Monorepo with frontend/, backend/, and packages/shared/ as per PRD.md.
Source Code (repository root)
/
├── backend/ # Payload CMS on Cloudflare Workers
├── frontend/ # Astro (SSR) on Cloudflare Pages
├── packages/
│ └── shared/ # Shared TypeScript utilities, Tailwind config
└── pnpm-workspace.yaml
Phase 0: Outline & Research
Completed. Decisions are reflected in the Technical Context.
Phase 1: Design & Contracts
Completed. Artifacts data-model.md, contracts/, and quickstart.md are still valid.
Phase 2: Task Planning Approach
Task Generation Strategy:
- Workspace Setup: Initialize pnpm monorepo.
- Backend Setup: Configure Payload CMS collections (
Users,BlogPosts, etc.) for Cloudflare. - Frontend Setup: Configure Astro (SSR) with Tailwind CSS.
- Authentication: Integrate Auth.js (
astro-auth) for/admin/*routes. - Component & Page Creation: Build all pages and components as per the
PRD.mdand correctedroute-structure.md. - Content Migration: Script the import of existing content into Payload.
- SEO & Redirects: Implement the 301 redirect map.
- Testing: Write contract, integration, and unit tests for the new structure.
- Deployment: Configure Cloudflare Pages & Workers deployment.
Estimated Output: 30-40 numbered, ordered tasks in tasks.md.
Progress Tracking
- Phase 0: Research complete
- Phase 1: Design complete
- Phase 2: Task planning complete (approach described)
- Phase 3: Tasks generated
- Phase 4: Implementation complete
- Phase 5: Validation passed