Today Canvas Kit
SDK packages

SDK packages

Today Canvas Kit publishes nine packages across four runtime categories. Index page — pick the page that matches what you're building.

Today Canvas Kit ships nine published packages under @todayai-labs/*, split into four runtime categories. The category tells you what stage you're at: building a widget, hosting widgets, building a .tckb, or reading a .tckb. The wrong category is the wrong dependency.

CategoryPackagesConsumed at
Widget-author SDKtckWidget source, compiled into the bundle
Host runtimetck-host, tck-shared-deps, tck-host-nativeBrowser at host boot (or native WebView resources)
Build & dev toolingtck-bundler, tck-bundle-server, tck-preview, create-widgetBuild time / dev only — never in production runtime
Wire-format primitivestck-bundle-formatBoth Node and browser — runtime-agnostic

Release coupling

Seven of the nine packagestck, tck-host, tck-bundler, tck-bundle-server, tck-bundle-format, tck-preview, create-widget — are in a changesets fixed group and always release at the same version. Two exceptions:

  • tck-shared-deps — build-time only; consumers depend on its built bundle artifacts (served over the host's import map), not its source as a JS dependency. Walks its own version line.
  • tck-host-native — its cadence tracks native-shell releases; consumers (native apps) need to pin against a specific dist snapshot rather than tracking the SDK's fixed-group bumps.

Don't write code that assumes all nine move in lockstep; they don't. See VERSIONING.md for the operational policy.

Stable contract surface

A small number of exports across these packages are load-bearing: downstream consumers (today-cloud, today-platform-web, native shells) take a hard dependency on them. The full list is on the Platform ABI page; if you're maintaining a downstream and want to know what you can grep against, start there.

On this page