← Về thư mục
Project Status — Vietnam Wedding Guide v2
- Active Sprint: Master Templates Architecture Refactor & System Hardening
- Completed Phases:
- ✅ Phase 0: Content Archival & Backup (16 pages extracted to
docs/content-backup/)
- ✅ Phase 1: Project Scaffolding & Brand Tokens (Next.js 16 + Tailwind v4
@theme + Google Fonts)
- ✅ Phase 2: Sanity Content Schemas & Studio Build (
post, service, settings, navigation, callout, gallery, partnershipInquiry)
- ✅ Phase 3: Luxury Components (
Header, Footer, WhatsAppButton, PostCard, ServiceCard, TOC, CalloutBox)
- ✅ Phase 4: Page Templates & Route Implementation (
/, /services, /services/[slug], /blog, /blog/[slug], /about, /contact, /partnership, 404)
- ✅ Phase 5: Sanity Cloud Connection (
gdvj8e5j), Cloud Lake Seeding with LexoRank & Studio CORS authorization
- ✅ Phase 6:
- Dual Domain Setup:
weddinginvietnam.com (Primary on Cloudflare) & vietnamweddingguide.com (Cloudflare 301 dynamic redirect with SSL).
- Email Infrastructure: Cloudflare Email Routing for inbound mail (
info@weddinginvietnam.com -> vietnamweddingguide@gmail.com; nhivo@vietnamweddingguide.com -> nhivo2504@gmail.com).
- Contact Mail Harmonization: 100% UI, Footer, Forms, and APIs switched to unified address
info@weddinginvietnam.com.
- ✅ Phase 7: Strategic Partnership Opportunity & Brand Experience Refinement
- Strategic Partnership Landing Page:
/partnership with 8 core sections, pricing tiers, and interactive proposal form.
- Sanity CMS & Backend:
partnershipInquiry schema with lifecycle states (new, contacted, negotiating, archived) and /api/partnership write + Resend email dispatcher.
- Luminous Gold Sticky Announcement Bar: Synchronized with Header on scroll.
- Homepage Enhancements: Section 6.5 Luminous Gold Showcase (Zero-Price rule enforced) and Section 5 streamlined advisory pathways.
- Unified Brand Touchpoints: Header CTA "Become a Partner", footer email
info@weddinginvietnam.com, and floating CTA "Let's Connect".
- ✅ Phase 8: Editorial Hero Cartography & Visual Refinement
- Interactive Vietnam Wedding Map: Custom SVG cartography (
VietnamWeddingMap) in clean, high-luxury minimalist flat style on natural ivory canvas. Covers 8 destinations (Sapa, Ha Long Bay, Da Nang, Ninh Van Bay, Nha Trang, Dalat, Saigon, and Phu Quoc) with 4.5s auto-cycling spotlight and calm static gold halo (eliminated expanding radar pulse).
- Hero Section Proportions: 2-column split (7:5) harmonizing editorial copy and live map; removed redundant "Inquire" button and instructional preview text to let typography breathe.
- Typography & Styling: Gold gradient brand wordmark in navbar; strict removal of all decorative icons preceding subtitles across all sections.
- ✅ Phase 9: Founder Credentials, Mobile Image Reliability & Strategic Partnership Revamp
- Founder Experience: Đồng bộ chuẩn hóa kinh nghiệm của Nhi Võ từ 8+ lên 9+ năm hospitality cao cấp trên mọi trang và component (
homepage-view, about-view, partnership-view, blog-article-view, service-detail-view).
- Khắc phục triệt để hiển thị ảnh trên mobile: Sửa lỗi Safari WebKit flex-child height collapse bằng Next.js
fill trên container relative aspect-[4/5] w-full; re-encode file nhi-vo-portrait.webp sang chuẩn WebP đích thực; bổ sung unoptimized và style={{ width: "auto" }} cho logo marquee và brand mark navbar để loại bỏ độ trễ và sự cố load trên mạng di động; đảm bảo chữ thương hiệu không bị ẩn trên mobile.
- Đại tu Section 6.5 ("Develop Vietnam Wedding Guide With Us"): Tinh gọn triệt để độ dài văn bản (giảm 50% số chữ), thiết kế capsule nổi bật làm điểm nhấn thị giác cho 2 domain .COM (
weddinginvietnam.com • vietnamweddingguide.com); cấu trúc 3 thẻ giá trị đánh số 01, 02, 03 súc tích, mạch lạc (Global Domain Authority .COM, AI & Search Intent Driven, Foreign & Multicultural Couples); duy trì quy tắc Zero-Price và tuyệt đối không dùng icon trước subtitle.
- ✅ Phase 10 (Templates Architecture Refactor — Phase 1):
- Trích xuất toàn bộ hằng số chung (Domain, Founder, Contact) vào
frontend/lib/constants/site.ts.
- Tạo các shared components chuẩn luxury:
FounderBioSection và LuxuryCTABanner, loại bỏ ~450 dòng code trùng lặp ở 4 templates view.
- Dọn dẹp dead imports (
ServiceCard, PostCard), chuẩn hóa types bằng sanity schema extract && sanity typegen generate, loại bỏ toàn bộ any kiểu trả về ở frontend/sanity/lib/fetch.ts.
- Kiểm thử sản phẩm vượt qua 36/36 static pages của Next.js (0 lỗi, 100% type-safe).
- ✅ Phase 11 (Templates Architecture Refactor — Phase 2: Schema Enrichment & Dynamic Mapping):
- Mở rộng các document schemas:
author (thêm role, bio, socialLinks), category (thêm slug), service (thêm packages, processSteps, faqs).
- Cập nhật GROQ queries trong
post.ts và service.ts để resolve toàn bộ categories, tác giả, gói dịch vụ và FAQs.
- Sinh types Sanity tự động (10 queries, 65 schema types) cho toàn bộ Next.js.
- Nối kết dữ liệu động vào
blog/[slug]/page.tsx, blog-index-view.tsx, và service-detail-view.tsx (wire coverImage, features, ctaText, ctaUrl, packages, processSteps, faqs) với graceful fallbacks.
- Production build thành công 100% (36/36 static pages).
- ✅ Phase 12 (Templates Architecture Refactor — Phase 3: Template to True Dynamic View & Modularization):
- Thêm
ALL_FAQS_QUERY và fetchSanityFaqs query động danh sách FAQs từ Sanity Content Lake.
- Nối data động
settings và faqs từ server component contact/page.tsx vào ContactView với hỗ trợ PortableText và fallback an toàn.
- Nối data động
settings từ server component about/page.tsx vào AboutView.
- Kết nối
services trong homepage-view.tsx Section 5 cho cả 2 nhánh Private Couple Advisory và B2B Advisory, động hóa title, description, slug link và CTA button.
- Module hóa toàn diện
partnership-view.tsx từ 1,204 dòng thành 7 subcomponents độc lập trong frontend/components/partnership/, biến view thành orchestrator ~60 dòng code sạch sẽ, duy trì 100% UI, state và interactions.
- Production build thành công 100% (36/36 static pages).
- ✅ Phase 13 (Templates Architecture Refactor — Audit Remediation for Phase 2 & 3):
- [E1] Thay thế bỏ qua
services prop trong services-view.tsx bằng mapping động trực tiếp từ Sanity, giữ fallback 2 thẻ tĩnh dự phòng.
- [E2] Kích hoạt
settings?.tagline và whatsappNumber động trong about-view.tsx & LuxuryCTABanner.
- [E3] Dynamic
<option> cho dropdown serviceTrack trong contact-view.tsx từ services prop; truyền whatsappNumber vào Concierge card và xác nhận hoàn tất; loại bỏ triệt để mọi đề cập "giờ làm việc / business hours".
- [E4] Xây dựng document schema
venue.ts trong Sanity Studio có orderRankField, tạo VENUES_QUERY và nối marquee động tại Section 2 homepage-view.tsx.
- [E5] Chạy Sanity typegen chuẩn hóa kiểu dữ liệu cho
ALL_FAQS_QUERY_RESULT và VENUES_QUERY_RESULT.
- [E6] Tập trung hóa giá Partnership Tiers ($222, $444, $111/hr) và deliverables vào
frontend/lib/constants/partnership.ts.
- [E7] Chuẩn hóa docstring
testimonial.ts làm rõ tích hợp với block carousel-2, tạo TESTIMONIALS_QUERY và helper fetchSanityTestimonials.
- Production build thành công 100% (36/36 static pages).
- ✅ Phase 14 (Templates Architecture Refactor — Phase 4: Architecture Unification & Comprehensive Documentation):
- Chính thức chuẩn hóa mô hình Hybrid Dual-Rendering Pattern: Custom Template Views (
components/templates/*) là giao diện luxury mặc định nhận typed CMS data, Page Builder Blocks (components/blocks/*) là override linh hoạt khi page.blocks tồn tại.
- Tạo barrel export
frontend/components/templates/index.ts chuẩn hóa xuất khẩu cho 8 views và props interfaces.
- Soạn thảo tài liệu kiến trúc toàn diện
ARCHITECTURE.md (topology, dual-rendering pattern, schema hierarchy, shared components, editorial guardrails, Content Editor SOP).
- Cập nhật
APP_CONTEXT.md, CHANGELOG.md và task-list-templates-refactor.md.
- Production build thành công 100% (36/36 static pages).
- ✅ Phase 15 (Tech Lead Audit Fixes — Comprehensive Codebase Hardening):
- [TL-1] Áp dụng barrel export
frontend/components/templates/index.ts cho toàn bộ 8 routes trong frontend/app/(main)/.
- [TL-2] Bổ sung đầy đủ export props interfaces trong
components/templates/index.ts (HomepageViewProps, ServicesViewProps, ServiceDetailViewProps, BlogIndexViewProps, ArticleData, BlogArticleViewProps).
- [TL-3] Giải quyết triệt để rủi ro xung đột route tĩnh tại
app/(main)/[...slug]/page.tsx: lọc RESERVED_STATIC_SLUGS và thay fallback bằng ["_cms-preview"].
- [TL-4] Xóa sạch các kiểu
any lỏng lẻo trong ServiceDetailData, ArticleData, ContactFaqItem, thay bằng kiểu PortableText của @portabletext/react và Sanity typegen.
- [TL-5] Đồng bộ hằng số giá
PARTNERSHIP_TIERS vào options của partnership-inquiry-form.tsx và default state của partnership-view.tsx.
- [TL-6] Xóa tàn dư "business hours" trong
vwg-leasing.html và chuẩn hóa email info@weddinginvietnam.com, loại bỏ "giờ làm việc" trong CONTEXT.md.
- [TL-7] Sửa comment JSDoc lỗi thời trong
services-view.tsx.
- Production build thành công 100% (37/37 static pages).
Session Log
- 2026-09-22 [AG]: Hoàn thành toàn bộ Phase 0, 1, 2, 3 và khắc phục triệt để 11 điểm lưu ý của Tech Lead Review. TypeScript
tsc --noEmit đạt 0 lỗi ở cả frontend và studio.
- 2026-09-25 [AG]: Thiết lập kiến trúc Domain kép và Cloudflare Email Routing. Đồng bộ hóa toàn bộ email hiển thị trên UI, form cài đặt Sanity Studio và Resend API sang
info@weddinginvietnam.com. Frontend & Studio biên dịch thành công 100%.
- 2026-09-25 [AG]: Hoàn thành toàn bộ Phase 7 — Triển khai trang Strategic Partnership (/partnership), schema Sanity partnershipInquiry, API dispatcher Resend, thanh Sticky Gold Announcement Bar, Section 6.5 ánh kim (Zero-Price rule), và chuẩn hóa toàn bộ CTAs/Footer. Production build đạt 36/36 static pages (0 lỗi).
- 2026-09-25 [AG]: Hoàn thành Phase 8 — Xây dựng bản đồ SVG tương tác Vietnam Wedding Map tại Hero Section dạng phẳng tối giản sang trọng (8 địa điểm: Sapa, Hạ Long, Đà Nẵng, Ninh Vân, Nha Trang, Đà Lạt, Sài Gòn, Phú Quốc), loại bỏ hoàn toàn hiệu ứng chấm tròn radar ping lan tỏa, loại bỏ button Inquire & dòng hint chữ thừa, chuẩn hóa tỷ lệ 7:5, đổi tên thương hiệu trên navbar thành hiệu ứng ánh kim (gold gradient), và loại bỏ triệt để icon trước các subtitle trên toàn trang. Production build đạt 36/36 static pages (0 lỗi).
- 2026-09-26 [AG]: Hoàn thành Phase 9 — Cập nhật 9+ năm hospitality cho Founder Nhi Võ trên toàn bộ hệ thống; xử lý dứt điểm các nguyên nhân gây mất ảnh trên mobile (WebKit flex height collapse, convert PNG sang chuẩn WebP cho
nhi-vo-portrait.webp, bypass proxy Next.js với unoptimized cho static logos); nâng cấp Section 6.5 hiển thị rõ 2 domain .COM chiến lược và 3 trụ cột giá trị rõ ràng, trực quan. Production build đạt 36/36 static pages (0 lỗi).
- 2026-09-27 [AG]: Hoàn thành Phase 1 của Templates Architecture Refactor — Tách shared components (
FounderBioSection, LuxuryCTABanner), dọn dead code & imports, centralize config site.ts, extract & generate đầy đủ type Sanity cho service document. Production build biên dịch 36/36 static pages thành công 100%.
- 2026-09-27 [AG]: Hoàn thành Phase 2 của Templates Architecture Refactor — Bổ sung schema
author, category, service với packages, processSteps, faqs; cập nhật GROQ queries; sinh typegen Sanity hoàn chỉnh; nạp dữ liệu động cho templates với fallback an toàn. Production build đạt 36/36 static pages (0 lỗi).
- 2026-09-27 [AG]: Hoàn thành Phase 3 của Templates Architecture Refactor — Dynamic views cho Contact, About, Homepage Service Pathways; module hóa trang Partnership thành 7 component độc lập; build pass 36/36 static pages với 0 lỗi.
- 2026-09-28 [AG]: Hoàn thành Audit Remediation cho Phase 2 & 3 (E1-E7) — Dynamic services mapping, dynamic tagline & whatsapp, dynamic service track dropdown trong contact, schema venue và marquee động, strict query typegen, tập trung constants partnership, loại bỏ hoàn toàn dấu vết giờ làm việc trên toàn website. Production build 36/36 static pages (0 lỗi).
- 2026-09-28 [AG]: Hoàn thành Phase 4 của Templates Architecture Refactor — Tạo barrel export
frontend/components/templates/index.ts, xây dựng tài liệu kiến trúc toàn diện ARCHITECTURE.md (topology, dual-rendering, schemas hierarchy, shared components, guardrails, SOP), cập nhật APP_CONTEXT.md, CHANGELOG.md, task-list-templates-refactor.md. Production build thành công 100% (36/36 static pages).
- 2026-09-28 [AG]: Hoàn thành Tech Lead Audit Fixes (Phase 15) — Áp dụng barrel export cho 8 routes, bổ sung export props, giải quyết xung đột route tĩnh
[...slug], xóa sạch loose any trong templates, đồng bộ hằng số partnership vào form, xóa tàn dư business hours trong vwg-leasing.html và CONTEXT.md. Production build thành công 100% (37/37 static pages).