How CEOs are rethinking growth in a slower market
Senior leaders are resetting expectations and reallocating capital toward resilience.
Components expose slots for composition. Sections are the deliberate inverse — opinionated page sections with flat, serializable data props that spread straight from a CMS query. Every decision the section makes is one the handoff can’t misconfigure.
ReactNode slots, rich APIs, full composability. Build anything.
<SectionTitle
title="Plans for every team"
primaryAction={<Button>Get started</Button>}
/>Flat data props, enums, and name-references. Spread and ship.
<TextAndMediaBlock
variant="titleAndText"
title="Plans for every team"
media={{ src: cms.image }}
/>@/components/textAndTextBlock
Two text tiles side by side, each its own surface — a titled section beside a single bold statement. The brand's call-and-response device.
<TextAndTextBlock
contentLeft={{
variant: "titleAndText",
bgColor: "primary",
tagline: "Our approach",
title: "Results. Fast. Together.",
description: "Senior-led teams combine vision with action.",
}}
contentRight={{
variant: "largeText",
bgColor: "greyGradient",
text: "Do we have the experience to help you? Yes.",
}}
/>Senior-led teams combine strategic vision and real-world experience with an explicit propensity to action.
@/components/textAndMediaBlock
A text tile beside a framed image or video. Media is a URL string, so a consumer's own image pipeline feeds it directly — the block stays CMS-agnostic.
<TextAndMediaBlock
variant="titleAndText"
tagline="Text + media"
title="One template, any CMS field."
description="Flat props spread straight from a query."
media={{ type: "image", src: "/hero.jpg", alt: "" }}
ratio="16/9"
/>Flat props spread straight from a query — title, description, and a media URL. No SDK, no field mapping.
@/components/postRowBlock
A responsive grid of content cards for an insights or news feed — pass an array of card data and a column count straight from the CMS.
<PostRowBlock
columns={3}
contentCards={posts.map((p) => ({
variant: "news",
media: { type: "image", src: p.cover, alt: "" },
tagline: p.category,
title: p.title,
excerpt: p.summary,
href: `/insights/${p.slug}`,
}))}
/>Senior leaders are resetting expectations and reallocating capital toward resilience.
Operational improvement, not financial engineering, is where returns now come from.
Boards are treating resilience as a strategic capability, not a cost centre.
Need behaviour a CMS can’t express — a click handler, a framework link, element-level image optimisation? Drop down to the slot components and compose directly. The block is the locked shell; the components are the engine.
Explore the components