Skip to main content

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(), and text.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:

SurfaceWhere it stands
Adding/removing componentsNot available — see above.
More capabilitiesmedia, text, states, visibility, and pages exist today; more may follow.
Rich text (HTML)text.setText sets plain text. There is no setHtml.
Animation eventsClicks, 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.