Block Renderer Demo
Batch 3 demo
Structured sections now render on public routes
This page is seeded from Strapi dynamic-zone content to verify the new BlockRenderer foundation on a real public route.
What this validates
Public rendering stays ISR-first
Each section below comes from Strapi block payloads while the route remains on the static/ISR path locked in CHG 16.
Hero block
Section mapping from blocks.hero into the public route shell.
Feature grid
Declarative list rendering from repeatable feature items.
CTA and FAQ
Multiple block types can be composed without switching the route to dynamic.
Next step
Batch 4 can now focus on editor UX instead of renderer plumbing
Once content exists in Strapi, the storefront already knows how to render it on public surfaces.
Quick checks
Does business data come from Strapi now?
No. Pricing, purchase state, wallet, entitlement, and org/runtime authority remain in dlm-core.
Does this replace legacy rich text immediately?
No. The renderer is block-first but still falls back to legacy content when older entries have not migrated yet.