Files
WooNooW/docs/PAGE_EDITOR_SSR_COVERAGE_AUDIT.md
Dwindi Ramadhana 396ca25be4 feat: Page Editor v1.0 - canonical schema, SSR parity, and migration
Major improvements to WooNooW Page Editor system:

Schema & Architecture:
- Canonical section schema with unified sectionSchema.ts
- Normalized feature-grid to use items (not features)
- Standardized default values across all section types
- Schema versioning with automatic migration on read

Backend (PHP):
- Enhanced PlaceholderRenderer with typed output contracts
- Added fallback behavior for empty/invalid dynamic sources
- Added caching support for post data resolution
- New SchemaMigration class for backward compatibility
- New Features class for feature flags
- Enhanced PageSSR with full style support
- Removed controller-level special-casing for related_posts

Frontend (Admin SPA):
- Updated CanvasRenderer with schema-aware transformation
- Enhanced InspectorPanel with canonical schema metadata
- Added new section renderers

Frontend (Customer SPA):
- New section components: BentoCategoryGrid, MarqueeBanner, ProductCarousel, ShoppableImage
- Updated FeatureGridSection for items prop contract

Testing:
- Add PHP tests: SchemaMigrationTest, PlaceholderRendererTest, PageSSRTest
- Add TypeScript tests: schema-integration, feature-grid-regression
- Add parity tests for React vs SSR content matching
- Add CI script: check-schema-drift.mjs
- Add VERIFICATION_CHECKLIST.md

Documentation:
- RELEASE_NOTES-v1.0.md with full release notes
- docs/PAGE_EDITOR_SECTION_SCHEMA_V1.md
- docs/PAGE_EDITOR_SSR_COVERAGE_AUDIT.md
2026-05-30 13:02:08 +07:00

1.6 KiB

Page Editor SSR Coverage Audit

Scope

This audit compares section types available in the admin canvas and customer DynamicPage renderer against explicit PHP SSR renderers in includes/Frontend/PageSSR.php.

Coverage Matrix

Section type Admin canvas Customer SPA PHP SSR Status
hero yes yes render_hero covered
content yes yes render_content covered
image-text yes yes render_image_text covered
feature-grid yes yes render_feature_grid covered, now reads items with features fallback
cta-banner yes yes render_cta_banner covered
contact-form yes yes render_contact_form covered for SEO structure only
bento-category-grid yes yes render_bento_category_grid covered
product-carousel yes yes render_product_carousel covered for configured/static product data
shoppable-image yes yes render_shoppable_image covered
marquee-banner yes yes render_marquee_banner covered

Immediate Finding

The SSR path now has explicit renderers for all section types exposed by the editor canvas. The next gap is deeper content parity for sections that rely on runtime API data, especially product carousel data loading.

Next Implementation Targets

  1. Add product data resolution for product-carousel when SSR runs without pre-resolved products.
  2. Add parity fixtures covering one scalar-heavy section and one repeater-heavy section.
  3. Add snapshot tests comparing React content output vs SSR content output.