CMS-authored layout
Block JSON stays portable across WordPress, static builds, and React runtime installs.
Bethsaida compatibility
Headers, article sections, ValuesOS blocks, calls to action, testimonials, and footer chrome now converge on the shared runtime.
Bethsaida-era page content should not need a pixel-identical Gatsby rebuild to remain useful. Ensemble preserves the practical page semantics, validates modern contracts, and renders compatibility paths for known legacy shapes.
ValuesOS source blocks and Ensemble-native blocks can sit together in one page contract.
Block JSON stays portable across WordPress, static builds, and React runtime installs.
Every public block declares the data shape that editors and adapters must provide.
Design pattern variants and theme JSON change the feel without changing content.
feature_block can render as a themed card even when the source payload is a single feature.
feature_block can render as a themed card even when the source payload is a single feature.
Legacy feature sections now have concrete contracts.
Theme component overrides flow through the shared appearance boundary.
The same wrapper renders in Next, static output, and WordPress runtime.
The wrapper tolerates old item naming without requiring CMS payload churn.
Theme Lab and roadmap tests can prove status instead of relying on docs.
A row layout alias should keep nested blocks portable while using the shared surface wrapper.
Row containers preserve side-by-side narrative blocks for legacy marketing sections.
flex_row now resolves to a row layout unless content explicitly overrides it.
flex_row now resolves to a row layout unless content explicitly overrides it.
Column wrappers remain stacked by default for mobile-safe migrations.
Column containers are treated as semantic surfaces with nested legacy content.
How it works
The wrapper preserves nested page intent.
Surface-level component overrides still flow through.
Grid aliases should receive a grid layout without CMS payload changes.
Grid item one keeps the same nested block shape.
Proof
The grid wrapper can host proof content as a nested child.
WordPress, static build, and React package runtime.
Ensemble, ValuesOS, Bethsaida legacy, and shadcn primitives.
Legacy contracts receive support classifications.
How it works
Known Bethsaida blocks receive explicit runtime and roadmap status.
High-value aliases move from compatibility to dedicated semantic wrappers.
How it works
Proof
We can keep our CMS workflow and still ship a modern app-like surface.
The page contract gives engineering a shared language with content and design.
Proof
The old payload shape still renders as a first-class proof section.
Proof
We can graduate practical compatibility without rewriting every page by hand.
Proof
Theme evidence is now attached to the block family, not hidden in a one-off route.
Use this route to prove that Bethsaida-style marketing content can render from the shared runtime without custom Next-only components.
Runtime-only compatibility wrappers now have concrete contracts and Theme Lab evidence.
Ready-to-style product tile.
Recurring support tile.
Summary
Title-card payloads are now schema-backed and themeable.
Legacy social CTA blocks now render primary and supporting actions through the conversion wrapper.