# knockout/knockout

Knockout makes it easier to create rich, responsive UIs with JavaScript

Repository: https://github.com/knockout/knockout
Canonical: https://ross.abutalabs.com/products/knockout
Homepage: http://knockoutjs.com/
Language: JavaScript
License: NOASSERTION
License Family: other
Topics: knockout, javascript, mvvm, data-binding
Last push: 2026-03-25T05:16:23+00:00

## Health v2 (maintenance only)
Score: 80/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 74, release rhythm 76, longevity 100
- inputs: {"age_days": 5903, "days_push": 161, "days_rel": 161, "gap_med": 16, "n_releases_24m": 2}
- flags: no_license
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 10555, forks 1486 (observed 2026-08-28T04:10:42.331514+00:00)

## What it is
Knockout is a JavaScript MVVM library that keeps your UI automatically in sync with an underlying data model using observables and declarative bindings. It is small, dependency-free, works with any server or framework, and includes templating and component support.

## Use cases
- keep dom in sync with javascript data model automatically
- build rich responsive single-page application uis with mvvm
- bind form fields to viewmodel with two-way data binding
- render nested lists and templates from observable arrays
- create custom declarative bindings and custom elements
- maintain legacy javascript app with old browser support

## When to choose
- you want lightweight, dependency-free data binding without a full framework
- you need to support very old browsers like IE6+
- you're maintaining or extending an existing Knockout codebase
- you prefer explicit MVVM viewmodels over component-based frameworks

## When to avoid
- you're starting a new modern SPA - React, Vue, or Svelte have larger ecosystems
- you need server-side rendering or a virtual DOM
- you want a batteries-included framework with routing, state, and build tooling
- you need strong TypeScript-first tooling

## Facets
- artifact type: library
- maturity: maintenance
- function: frontend-framework, state-management, templating, ui-components
- domain: web-development, frontend
- platform: browser, cross-platform
- tags: mvvm, data-binding, observables, javascript, declarative-bindings, spa, nodejs

## Member repositories
- knockout/knockout (main) score 80

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:10:42.331514+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T17:18:32.503953+00:00, confidence not recorded.
  - readme: https://github.com/knockout/knockout (fetched 2026-08-28T04:10:42.331514+00:00, sha 276e5f5b0c67)
  - homepage: http://knockoutjs.com/ (fetched 2026-08-29T08:18:06.388119+00:00, sha 7c52b4abbd6b)
  - site_page: https://knockoutjs.com/documentation/introduction.html (fetched 2026-08-29T08:18:06.399386+00:00, sha e36dd9a56c87)
  - site_page: https://knockoutjs.com/documentation/observables.html (fetched 2026-08-29T08:18:06.401226+00:00, sha 65233a65b9de)
  - site_page: https://knockoutjs.com/documentation/links.html (fetched 2026-08-29T08:18:06.403086+00:00, sha 17485ccd9734)
  - registry_npm: https://registry.npmjs.org/knockout (fetched 2026-08-29T08:18:06.405170+00:00, sha 436726b03c3f)
  - site_page: https://knockoutjs.com/downloads/index.html (fetched 2026-08-29T08:18:06.397354+00:00, sha 08f3f88251e7)
- Data as of 2026-08-30T08:39:29.467469+00:00.
