# js-data/js-data

Give your data the treatment it deserves with a framework-agnostic, datastore-agnostic JavaScript ORM built for ease of use and peace of mind. Works in Node.js and in the Browser. Main Site: http://js-data.io, API Reference Docs: http://api.js-data.io/js-data

Repository: https://github.com/js-data/js-data
Canonical: https://ross.abutalabs.com/products/js-data
Language: JavaScript
License: MIT
License Family: permissive
Topics: javascript, nodejs, orm, datastore, data-mapper, odm
Last push: 2023-01-05T14:03:56+00:00

## Health v2 (maintenance only)
Score: 23/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 0, release rhythm 8, longevity 100
- inputs: {"age_days": 4375, "days_push": 1336, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1613, forks 136 (observed 2026-08-28T04:05:11.180717+00:00)

## What it is
JSData is a framework-agnostic, datastore-agnostic ORM/ODM for JavaScript that provides a unified data modeling API for Node.js and the browser. It connects to various data sources (REST APIs, MySQL, MongoDB, Redis, localStorage, etc.) through pluggable adapters, letting you reuse data models across environments.

## Use cases
- manage application data models in javascript
- reuse the same data layer on node.js server and browser client
- swap between rest api, localstorage, and database backends without changing model code
- query and filter records with a unified api regardless of datastore
- keep data layer intact when migrating between frontend frameworks
- model relational data with relations like hasMany and belongsTo

## When to choose
- you need one data modeling layer shared between node.js and the browser
- you want datastore flexibility via adapters (rest, mysql, mongodb, localstorage, redis)
- you are framework-agnostic or anticipate switching frontend frameworks
- you prefer convention-over-configuration orm with room for customization

## When to avoid
- you need a battle-tested, actively developed orm for a new project (development activity has slowed)
- you want a typescript-first orm with modern tooling
- you need deep integration with a specific framework's reactivity (e.g., react or vue state)
- you require advanced sql features like migrations or complex joins

## Facets
- artifact type: library
- maturity: maintenance
- function: orm, database, http-client, caching
- domain: web-development, databases, developer-tools
- platform: browser, cross-platform
- tags: data-mapper, odm, datastore-agnostic, framework-agnostic, in-memory-store, adapters, nodejs, javascript

## Member repositories
- js-data/js-data (main) score 23

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:11.180717+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-30T03:51:06.471583+00:00, confidence not recorded.
  - readme: https://github.com/js-data/js-data (fetched 2026-08-28T04:05:11.180717+00:00, sha a90c543501de)
  - registry_npm: https://registry.npmjs.org/js-data (fetched 2026-08-29T11:23:12.063547+00:00, sha 9c48aec18554)
- Data as of 2026-08-30T08:39:29.467469+00:00.
