// the find
RusticiSoftware/TinCanJS
JavaScript library for the Experience API (Tin Can API)
JavaScript client library for xAPI (formerly Tin Can API), the e-learning standard for tracking learning experiences to an LRS (Learning Record Store). Maintained by Rustici Software, who literally wrote the xAPI spec, so the implementation fidelity is as good as it gets. If you're building LMS integrations, SCORM replacements, or any learning analytics tooling that needs to talk to an LRS, this is the reference implementation.
Covers the full xAPI data model — Statement, Agent, Activity, Verb, Result, Context, Attachment — with separate classes for each, not one big blob object. CORS handling works across two strategies (native XHR CORS and a postMessage-based workaround), which matters when your LRS is on a different domain. Binary attachment support via multipart/mixed works end-to-end in both Node and browser, which is rare to get right. Test suite has per-class unit test files for every model object, not just integration tests.
Last meaningful activity was 2023 and the build tooling is Grunt with vendored CryptoJS — this is frozen in 2015. No TypeScript types, so you get zero autocomplete help navigating the xAPI statement structure, which is complex enough that you really want types. The Node environment shim uses xhr2 to fake browser XHR instead of using native fetch/http, which is a layering smell and adds an unnecessary dependency. Travis CI badge is broken (Travis killed the free tier), so CI status is unknown.