Skip to content
Playground llms.txt
Docs in progress TKO docs are in progress. Examples, API details, and migration notes are still being revised.

Browser Support

TKO targets modern browsers — any browser that supports ES2020 and <script type="module">.

EngineBrowsersTested in CI
ChromiumChrome, Edge, Opera, Brave, ArcYes
WebKitSafari (macOS, iOS)Yes
GeckoFirefoxYes

These three engines cover effectively all modern browsers.

Every pull request runs the full test suite (2700+ tests) across all three engines using Vitest browser mode with Playwright. The three engines run as parallel CI jobs.

CI tests against the latest stable version of each engine. We do not currently test against specific older browser versions, so minimum version support is not precisely known. If you discover a compatibility issue with a particular browser version, please open an issue.

The original Knockout supported browsers back to IE6. TKO’s modernized codebase uses ES2020+ features (optional chaining, nullish coalescing, etc.), so IE is no longer supported. Exact minimum versions for Chrome, Safari, and Firefox have not been established.

The recommended way to load TKO is as an ES module:

<script type="module">
import ko from 'https://esm.run/@tko/build.reference'
</script>

An IIFE build is also available for classic <script> tag loading:

<script src="https://cdn.jsdelivr.net/npm/@tko/build.reference/dist/browser.min.js"></script>
<script>
const ko = globalThis.tko
</script>

TKO’s observable and computed primitives have no DOM dependencies and can run in Node.js, Bun, or Deno. Binding and template features require a DOM environment.