Limits
The SDK is deliberately small. This page is the honest list of what it doesn't do, so you can design around it rather than discover it late.
Everything you change is runtime only
The SDK drives the page a visitor is looking at. It never edits, authors, or saves your experience.
visibility.show()/hide()override the visibility you published, for this page view only.states.activate()/deactivate()/toggle()switch between states for this page view only.setAttribute(),setData(), andtext.setText()change the live element for this page view only.
Reload the page and every SDK change is gone. What visitors see on a fresh load is exactly what you published. Nothing you do from a script can damage your experience, and nothing needs undoing.
If you want something to survive a reload, keep it in your own state and reapply
it — the store with a localStorage adapter is built for
exactly that. It saves your data to the visitor's browser; it still never
writes to your experience.
Published experiences only
The SDK needs a live, published experience to attach to. Inside the Flex editor
there's nothing there, so connect() never resolves — it waits indefinitely, or
rejects when the timeout you passed elapses.
Test on a published URL or a preview link.
Lookups don't wait, and don't stay live
findByLocator / findByTag / findById return what's on the page at the moment
you call them. Nothing is retried, and a set you captured earlier is never
retro-filled with components that appear later.
For content that comes and goes, either run the lookup again when you need it, or subscribe on a container that stays put and let events bubble — see Events.
There is no global
The SDK is never attached to window. There's no window.flexSdk to poll for and
no load event to wait on: each module script imports it and gets its own handle.
It can't add or remove components
You can find, read, and drive the components you designed in Flex. You can't
create new ones, clone them, or delete them from a script. Design the elements you
need — including any you'll only reveal conditionally — and use visibility and
states to control them at runtime.
Not available yet
These aren't part of the SDK today. Don't write code against them:
| Surface | Where it stands |
|---|---|
| Adding/removing components | Not available — see above. |
| More capabilities | media, text, states, visibility, and pages exist today; more may follow. |
| Rich text (HTML) | text.setText sets plain text. There is no setHtml. |
| Animation events | Clicks, hovers, state changes, and video events are available; animation events are not. |
If one of these is blocking something you're building, tell your Ceros contact — what customers are actually trying to do is what drives the list.
Browser support
The SDK ships as a standard ES module. On a Ceros-hosted page it's resolved
through an
import map,
which needs a browser from 2023 or later — Chrome/Edge 89+, Safari 16.4+,
Firefox 108+. On older browsers the import itself fails; there's no fallback.
The experience still renders normally on those browsers. Only your script doesn't run, so treat SDK behaviour as an enhancement over a page that already works.