// the find
remy/bind.js
bind.js - simple two way data binding to HTML and callbacks
A minimal two-way data binding library that maps JavaScript object properties to DOM elements via CSS selectors, with optional transform/parse functions for formatting. Predates React/Vue's dominance and was built when lightweight alternatives to Knockout were worth having. At 694 stars and last touched in 2020, it is effectively unmaintained.
The API is genuinely simple — one constructor call with a data object and a mapping, and you're done. The transform/parse pattern for handling display formatting vs. stored value is well-designed and avoids the common trap of mixing concerns. Cypress E2E test coverage is broader than you'd expect for a project this size. Node.js compatibility is there if you need SSR-adjacent use cases.
Abandoned since 2020 — no issues triaged, no PRs merged, and the GitHub Actions badge in the README links to a workflow that may not even run anymore. The delete-then-reassign primitive bug documented under Restrictions is a fundamental limitation of the Proxy/Object.defineProperty approach and won't be fixed. No TypeScript types, so integrating this into a modern TS project means writing your own declarations. At ~700 stars in 2026, the ecosystem has completely passed this by — Alpine.js, Petite Vue, and even vanilla web components do the same job with active maintenance and better browser support.