jashkenas/backbone
47.0
Weak · 25 September 2026
2.6k
lines of production code
JavaScript
primary language
4
measurements over time
What this system is
Features
Added Backbone.localStorage adapter example
Added the Backbone.localStorage adapter example, providing a client-side persistence solution that stores models in the browser's localStorage. This allows applications to maintain state locally without requiring a server, with the adapter handling create, read, update, and delete operations via the local storage API.
examples · high confidence
Added the Todos example application
The todos example application has been added to the examples directory, providing a complete demo of a Backbone.js app with local storage persistence. The example includes the HTML structure, CSS styling, and JavaScript logic for managing a list of todos, including features like marking items as complete, editing, deleting, and filtering by status.
examples/todos · high confidence
Behavioural changes
Extract debug-info module with environment introspection
The debug information logic has been moved into a dedicated \modules/debug-info.js\ module, which now provides structured details about the runtime environment, including the versions of Backbone, Underscore/Lodash, and the JavaScript runtime (Deno, Node.js, or browser). An ESLint configuration file has also been added to the modules directory to support the new module's linting rules.
modules · high confidence
Improved performance and reliability of the event system
The internal implementation of the event system has been refactored to use arrays instead of linked-lists, resulting in a significant performance improvement (up to 20x faster in some cases). Additionally, the \Events\#off\ method now uses reverse iteration to avoid altering indices during event removal, and the \trigger\ method has been optimized to handle multiple events more efficiently.
(repo-wide) · high confidence
Test coverage
Add test environment setup for QUnit; Added comprehensive test suite for Backbone components; Updated test vendor libraries: QUnit, jQuery, Underscore, and RequireJS.
Dependencies
Backbone.js 1.6.1 release and dependency updates
The release includes a version bump to 1.6.1 and updates to the dependency tree. The Underscore.js dependency is set to version 1.8.3 or higher. Development dependencies have been updated to include CoffeeScript 2.7.0, Cpy-cli 5.0.0, Docco 0.9.1, ESLint 8.7.0, Karma 6.3.11, QUnit 2.17.2, and Rollup 3.28.1. The package configuration now explicitly lists the files to be published, including the main entry point, minified files, and debug info modules.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 36 → 47 (+10.7)
- Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 38 → 45 (+6.6)
- Architecture 100 (new)
- Maturity 37 → 37 (+0.4)
- Readiness 31 → 56 (+24.7)
- Security 60 → 68 (+7.8)
- Accessibility 68 (new)
Resolved (106)
- (anonymous) (cognitive 17) (backbone.js)
- Change coupling: backbone-min.js ↔ backbone.js (backbone-min.js)
- Dimension evaluation failed
- FileTooLong: ./backbone.js (backbone.js)
- FileTooLong: test/collection.js (test/collection.js)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- …and 86 more
New (301)
- (anonymous)::navigate (cognitive 21) (backbone.js)
- (anonymous)::navigate (cyclomatic 17) (backbone.js)
- (anonymous)::offApi (cognitive 25) (backbone.js)
- (anonymous)::offApi (cyclomatic 17) (backbone.js)
- (anonymous)::set (cognitive 26) (backbone.js)
- (anonymous)::set (cognitive 69) (backbone.js)
- (anonymous)::set (cyclomatic 18) (backbone.js)
- (anonymous)::set (cyclomatic 45) (backbone.js)
- (anonymous)::start (cognitive 23) (backbone.js)
- (anonymous)::start (cyclomatic 23) (backbone.js)
- (anonymous)::sync (cognitive 17) (backbone.js)
- (anonymous)::sync (cyclomatic 19) (backbone.js)
- Documentation: contradicts the code (docs/backbone.html)
- Documentation: no installation or build instructions (README.md)
- FileTooLong: backbone.js (backbone.js)
- Floating npm dependency: underscore
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- …and 281 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
jashkenas/backbone was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 25 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit f229c75b194a63a8e07a3313ce43e8d2dc105327 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-dd72cc24c749.