Product 01 / 08Shipped

Dynamic Blocks. Ship content, not releases.

Reusable in-app content blocks controlled from the server.

No releaseRollbackA/B variants
Blocks library
The Dynamic Blocks library in ContentFlow, showing block types, their tags and publish state.
The Dynamic Blocks library, in the demo workspace running in test mode.
How it works

One block, many places.

01 In ContentFlow
Discover products
Published
Carousel block, Home screen
HeadlineSummer flights: 12% cashback
BodyBook before Aug 31 and the miles are yours.
ButtonSee offer
VariantA / B
Where it renders
PlacementHome screen
LocalesEnglish, Arabic
AudienceAll app users
FallbackLast published version
Publish
02 In your app
9:41
Rihlah TravelD
LIVE
Summer flights: 12% cashbackBook before Aug 31 and the miles are yours.See offer
Trips paid in full get 4-month terms
Add a trip noticeTell us your dates so we do not flag the charges.
Offer added to your trip wallet

The app requests its blocks at runtime and renders them with its own components, so a content change reaches users without a new app version. The banner, the card and the toast under the carousel are blocks on the same screen, each published the same way.

What it controls

One screen, four blocks.

9:41
Rihlah TravelD
Good morning, Dana
3Upcoming trips12%Cashback this year
Summer flights: 12% cashbackBook before Aug 31 and the miles are yours.See offer
Trips paid in full get 4-month terms
Offer added to your trip wallet
What ContentFlow controls
9:41
Rihlah TravelD
Good morning, Dana
3Upcoming trips12%Cashback this year
Summer flights: 12% cashbackBook before Aug 31 and the miles are yours.See offer
Trips paid in full get 4-month terms
Offer added to your trip wallet
What your user sees
Illustrative: one app screen, drawn twice. On the right, every region ContentFlow can change without an app release is shaded and named with the block format it is. The shading is an overlay drawn for this page, not something the app renders. The app bar, the greeting, the metric strip and the tab bar are not shaded because the product does not control them, and every figure shown is illustrative, not a real customer's. Drag the divider, or focus it and use the arrow keys.
Capabilities

What a block can hold.

Native app rendering

The host app renders each block.

Multiple block formats

Teams can manage cards, banners, carousels, modals, toasts, and tooltips.

Reusable block definitions

A defined block can be used across suitable screens.

Remote content updates

Content can change without submitting a new mobile app version.

Block variants

Alternative content versions can be prepared.

Setup

Register once, render anywhere.

01Engineering

Connect the REST API

Connect the application through the REST API so it can request content for named interface locations.

02Engineering

Register content slots

Define each slot, its accepted content structure, and the fallback shown when no block is returned.

03Content team

Build content variants

Create the copy, media, links, and contextual variants allowed within each registered slot.

04Content team

Test and publish

Preview each variant against the intended slot before publishing it to the selected audience.

Full developer documentation
Use cases

Where a block earns its place.

Banking

Contextual Financing Prompts

A Saudi bank could show different financing prompts on its home screen based on account context.

Insurance

Claim Status Guidance

An insurer could change the guidance block shown at each stage of a motor claim.

Telco

Roaming Pack Offers

A regional telecom operator could present a roaming pack block when an eligible user opens the travel section.

Good to know

The API ships it, the app renders it.

REST API required

Production integration today uses the REST API. Native SDKs for React Native, iOS, Android and Web are in preview and are not generally available. The @contentflow/cli package is not published yet.

Rendering Stays Client Side

The host application remains responsible for layout, accessibility, interaction handling, and safe fallback behaviour.

App store review

Publishing content through ContentFlow does not require a new build or a new store submission. Any change to your app's own code still goes through Apple and Google review, and remotely delivered content has to stay inside the purpose your app already declares and the store policies that apply to it.

Offline and connectivity

Production integration today uses the REST API, built directly by the integrating team. Offline behaviour for that integration is whatever the team implements; ContentFlow provides none of it.

The fallback described elsewhere on this page is what renders when no block is returned for a slot; connectivity is a separate condition. With no network at all, the app renders the fallback content compiled into its own build. No ContentFlow content change, published or scheduled, can reach a device that has no network.

ContentFlow has also written a JavaScript and React Native package with additional caching behaviour, but that package is not published and is not available to install today. As written, it persists the last successful payload (localStorage on web, async storage on React Native) with no expiry and reuses it on a failed request; falls back to the same build-compiled content if nothing has ever been cached; and treats an HTTP 200 response with no blocks field as a failure rather than an empty catalogue. None of that is available until the package ships.

Questions

What engineers ask first.

Does every block update require engineering?

No. Engineering is needed to define and integrate each supported block location, but content teams can manage later updates within that structure.

How is the app integrated?

Production integration today uses the REST API. Native SDKs for React Native, iOS, Android and Web are in preview and are not generally available. The @contentflow/cli package is not published yet.

How do Dynamic Blocks relate to Campaigns?

Dynamic Blocks define what the app can render, while Campaigns control targeting, scheduling, approvals, and experiments.

Works with

Shows up inside Campaigns.

Related product

Campaigns

Campaigns deploy Dynamic Blocks to selected audiences under controlled schedules and approval flows.

Part of one platform

Dynamic Blocks is one of eight.

Production integration today uses the REST API. Native SDKs for React Native, iOS, Android and Web are in preview and are not generally available. The @contentflow/cli package is not published yet.