{"adoption": {"forks": 174, "observed_at": "2026-08-28T04:09:21.977728+00:00", "stars": 5529}, "canonical_url": "https://ross.abutalabs.com/products/miragejs", "card": {"archived": false, "artifact_type": "library", "description": "A client-side server to build, test and share your JavaScript app", "domain": ["frontend", "web-development", "testing", "developer-tools"], "enriched": true, "function": ["mock-api", "testing", "http-server", "database", "e2e-testing"], "health_score": 49, "homepage": "https://miragejs.com/", "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["miragejs/miragejs"], "name": "miragejs/miragejs", "platform": ["browser"], "pushed_at": "2025-08-11T14:21:25+00:00", "repo": "miragejs/miragejs", "stars": 5529, "tags": ["api-mocking", "fake-server", "frontend-development", "ui-testing", "prototyping", "pretender", "nodejs", "javascript"], "topics": ["testing", "mock", "database", "testing-tools", "hacktoberfest"], "urls": [], "use_cases": ["mock backend APIs for frontend development", "write UI tests without a real server", "prototype frontend features before the API exists", "demo a JavaScript app offline", "seed test scenarios with factories and fixtures", "share a working frontend repo with no backend setup"], "what_it_is": "Mirage JS is a client-side API mocking library that lets frontend developers build, test, and prototype complete JavaScript applications without a real backend. It intercepts XMLHttpRequest and fetch requests in the browser and lets you define mock routes, a seeded database, and factories to simulate dynamic server behavior.", "when_to_avoid": ["you need to mock APIs for backend or integration tests of the actual server", "you only need simple static JSON stubs and don't want a full in-browser database", "your app communicates over protocols other than HTTP (XHR/fetch)"], "when_to_choose": ["you're building or testing a JavaScript frontend and the backend isn't ready or available", "you want high-level application tests that simulate realistic server state", "you need an offline dev environment that new collaborators can run with just npm install"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/miragejs", "repo": "miragejs/miragejs", "role": "main", "score": 39}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:21.977728+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:55:45.661907+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9e9ddf555213a2c2475a8ef6cc3fb8a8627c145ac70c6af098d180154549871e", "fetched_at": "2026-08-28T04:09:21.977728+00:00", "kind": "readme", "missing": false, "url": "https://github.com/miragejs/miragejs"}, {"content_hash": "2e543cb64efb71edd961221c5244c020e01e08703c834d5a5c5e2ca914acc574", "fetched_at": "2026-08-29T08:51:29.582655+00:00", "kind": "homepage", "missing": false, "url": "https://miragejs.com/"}, {"content_hash": "62da40059bf3d34d5d585c63728d86c1107a8690c75a425a322761bbc042bce1", "fetched_at": "2026-08-29T08:51:29.592187+00:00", "kind": "site_page", "missing": false, "url": "https://miragejs.com/docs/getting-started/introduction"}, {"content_hash": "9750e91eff8bcf731c49d64cefa466a82a7c536ec55bd0208b10b24f223f0eed", "fetched_at": "2026-08-29T08:51:29.594027+00:00", "kind": "site_page", "missing": false, "url": "https://miragejs.com/quickstarts/overview"}, {"content_hash": "6ae2fac74ce8e6f6631bde858dffa6bb612d6e32376a57509a2deaa6d08c4c84", "fetched_at": "2026-08-29T08:51:29.595738+00:00", "kind": "site_page", "missing": false, "url": "https://miragejs.com/docs/testing/application-tests"}, {"content_hash": "cd4e36455fb276d762c3364dfcfafffbb4d5071ed921fb6ba39ad4e163ae8370", "fetched_at": "2026-08-29T08:51:29.597797+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/miragejs"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:21.977728+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:55:45.661907+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9e9ddf555213a2c2475a8ef6cc3fb8a8627c145ac70c6af098d180154549871e", "fetched_at": "2026-08-28T04:09:21.977728+00:00", "kind": "readme", "missing": false, "url": "https://github.com/miragejs/miragejs"}, {"content_hash": "2e543cb64efb71edd961221c5244c020e01e08703c834d5a5c5e2ca914acc574", "fetched_at": "2026-08-29T08:51:29.582655+00:00", "kind": "homepage", "missing": false, "url": "https://miragejs.com/"}, {"content_hash": "62da40059bf3d34d5d585c63728d86c1107a8690c75a425a322761bbc042bce1", "fetched_at": "2026-08-29T08:51:29.592187+00:00", "kind": "site_page", "missing": false, "url": "https://miragejs.com/docs/getting-started/introduction"}, {"content_hash": "9750e91eff8bcf731c49d64cefa466a82a7c536ec55bd0208b10b24f223f0eed", "fetched_at": "2026-08-29T08:51:29.594027+00:00", "kind": "site_page", "missing": false, "url": "https://miragejs.com/quickstarts/overview"}, {"content_hash": "6ae2fac74ce8e6f6631bde858dffa6bb612d6e32376a57509a2deaa6d08c4c84", "fetched_at": "2026-08-29T08:51:29.595738+00:00", "kind": "site_page", "missing": false, "url": "https://miragejs.com/docs/testing/application-tests"}, {"content_hash": "cd4e36455fb276d762c3364dfcfafffbb4d5071ed921fb6ba39ad4e163ae8370", "fetched_at": "2026-08-29T08:51:29.597797+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/miragejs"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:55:45.661907+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9e9ddf555213a2c2475a8ef6cc3fb8a8627c145ac70c6af098d180154549871e", "fetched_at": "2026-08-28T04:09:21.977728+00:00", "kind": "readme", "missing": false, "url": "https://github.com/miragejs/miragejs"}, {"content_hash": "2e543cb64efb71edd961221c5244c020e01e08703c834d5a5c5e2ca914acc574", "fetched_at": "2026-08-29T08:51:29.582655+00:00", "kind": "homepage", "missing": false, "url": "https://miragejs.com/"}, {"content_hash": "62da40059bf3d34d5d585c63728d86c1107a8690c75a425a322761bbc042bce1", "fetched_at": "2026-08-29T08:51:29.592187+00:00", "kind": "site_page", "missing": false, "url": "https://miragejs.com/docs/getting-started/introduction"}, {"content_hash": "9750e91eff8bcf731c49d64cefa466a82a7c536ec55bd0208b10b24f223f0eed", "fetched_at": "2026-08-29T08:51:29.594027+00:00", "kind": "site_page", "missing": false, "url": "https://miragejs.com/quickstarts/overview"}, {"content_hash": "6ae2fac74ce8e6f6631bde858dffa6bb612d6e32376a57509a2deaa6d08c4c84", "fetched_at": "2026-08-29T08:51:29.595738+00:00", "kind": "site_page", "missing": false, "url": "https://miragejs.com/docs/testing/application-tests"}, {"content_hash": "cd4e36455fb276d762c3364dfcfafffbb4d5071ed921fb6ba39ad4e163ae8370", "fetched_at": "2026-08-29T08:51:29.597797+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/miragejs"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:09:21.977728+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:21.977728+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:21.977728+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:55:45.661907+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9e9ddf555213a2c2475a8ef6cc3fb8a8627c145ac70c6af098d180154549871e", "fetched_at": "2026-08-28T04:09:21.977728+00:00", "kind": "readme", "missing": false, "url": "https://github.com/miragejs/miragejs"}, {"content_hash": "2e543cb64efb71edd961221c5244c020e01e08703c834d5a5c5e2ca914acc574", "fetched_at": "2026-08-29T08:51:29.582655+00:00", "kind": "homepage", "missing": false, "url": "https://miragejs.com/"}, {"content_hash": "62da40059bf3d34d5d585c63728d86c1107a8690c75a425a322761bbc042bce1", "fetched_at": "2026-08-29T08:51:29.592187+00:00", "kind": "site_page", "missing": false, "url": "https://miragejs.com/docs/getting-started/introduction"}, {"content_hash": "9750e91eff8bcf731c49d64cefa466a82a7c536ec55bd0208b10b24f223f0eed", "fetched_at": "2026-08-29T08:51:29.594027+00:00", "kind": "site_page", "missing": false, "url": "https://miragejs.com/quickstarts/overview"}, {"content_hash": "6ae2fac74ce8e6f6631bde858dffa6bb612d6e32376a57509a2deaa6d08c4c84", "fetched_at": "2026-08-29T08:51:29.595738+00:00", "kind": "site_page", "missing": false, "url": "https://miragejs.com/docs/testing/application-tests"}, {"content_hash": "cd4e36455fb276d762c3364dfcfafffbb4d5071ed921fb6ba39ad4e163ae8370", "fetched_at": "2026-08-29T08:51:29.597797+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/miragejs"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:21.977728+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:21.977728+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:55:45.661907+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9e9ddf555213a2c2475a8ef6cc3fb8a8627c145ac70c6af098d180154549871e", "fetched_at": "2026-08-28T04:09:21.977728+00:00", "kind": "readme", "missing": false, "url": "https://github.com/miragejs/miragejs"}, {"content_hash": "2e543cb64efb71edd961221c5244c020e01e08703c834d5a5c5e2ca914acc574", "fetched_at": "2026-08-29T08:51:29.582655+00:00", "kind": "homepage", "missing": false, "url": "https://miragejs.com/"}, {"content_hash": "62da40059bf3d34d5d585c63728d86c1107a8690c75a425a322761bbc042bce1", "fetched_at": "2026-08-29T08:51:29.592187+00:00", "kind": "site_page", "missing": false, "url": "https://miragejs.com/docs/getting-started/introduction"}, {"content_hash": "9750e91eff8bcf731c49d64cefa466a82a7c536ec55bd0208b10b24f223f0eed", "fetched_at": "2026-08-29T08:51:29.594027+00:00", "kind": "site_page", "missing": false, "url": "https://miragejs.com/quickstarts/overview"}, {"content_hash": "6ae2fac74ce8e6f6631bde858dffa6bb612d6e32376a57509a2deaa6d08c4c84", "fetched_at": "2026-08-29T08:51:29.595738+00:00", "kind": "site_page", "missing": false, "url": "https://miragejs.com/docs/testing/application-tests"}, {"content_hash": "cd4e36455fb276d762c3364dfcfafffbb4d5071ed921fb6ba39ad4e163ae8370", "fetched_at": "2026-08-29T08:51:29.597797+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/miragejs"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:21.977728+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:21.977728+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:21.977728+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:55:45.661907+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9e9ddf555213a2c2475a8ef6cc3fb8a8627c145ac70c6af098d180154549871e", "fetched_at": "2026-08-28T04:09:21.977728+00:00", "kind": "readme", "missing": false, "url": "https://github.com/miragejs/miragejs"}, {"content_hash": "2e543cb64efb71edd961221c5244c020e01e08703c834d5a5c5e2ca914acc574", "fetched_at": "2026-08-29T08:51:29.582655+00:00", "kind": "homepage", "missing": false, "url": "https://miragejs.com/"}, {"content_hash": "62da40059bf3d34d5d585c63728d86c1107a8690c75a425a322761bbc042bce1", "fetched_at": "2026-08-29T08:51:29.592187+00:00", "kind": "site_page", "missing": false, "url": "https://miragejs.com/docs/getting-started/introduction"}, {"content_hash": "9750e91eff8bcf731c49d64cefa466a82a7c536ec55bd0208b10b24f223f0eed", "fetched_at": "2026-08-29T08:51:29.594027+00:00", "kind": "site_page", "missing": false, "url": "https://miragejs.com/quickstarts/overview"}, {"content_hash": "6ae2fac74ce8e6f6631bde858dffa6bb612d6e32376a57509a2deaa6d08c4c84", "fetched_at": "2026-08-29T08:51:29.595738+00:00", "kind": "site_page", "missing": false, "url": "https://miragejs.com/docs/testing/application-tests"}, {"content_hash": "cd4e36455fb276d762c3364dfcfafffbb4d5071ed921fb6ba39ad4e163ae8370", "fetched_at": "2026-08-29T08:51:29.597797+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/miragejs"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:21.977728+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:21.977728+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:55:45.661907+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9e9ddf555213a2c2475a8ef6cc3fb8a8627c145ac70c6af098d180154549871e", "fetched_at": "2026-08-28T04:09:21.977728+00:00", "kind": "readme", "missing": false, "url": "https://github.com/miragejs/miragejs"}, {"content_hash": "2e543cb64efb71edd961221c5244c020e01e08703c834d5a5c5e2ca914acc574", "fetched_at": "2026-08-29T08:51:29.582655+00:00", "kind": "homepage", "missing": false, "url": "https://miragejs.com/"}, {"content_hash": "62da40059bf3d34d5d585c63728d86c1107a8690c75a425a322761bbc042bce1", "fetched_at": "2026-08-29T08:51:29.592187+00:00", "kind": "site_page", "missing": false, "url": "https://miragejs.com/docs/getting-started/introduction"}, {"content_hash": "9750e91eff8bcf731c49d64cefa466a82a7c536ec55bd0208b10b24f223f0eed", "fetched_at": "2026-08-29T08:51:29.594027+00:00", "kind": "site_page", "missing": false, "url": "https://miragejs.com/quickstarts/overview"}, {"content_hash": "6ae2fac74ce8e6f6631bde858dffa6bb612d6e32376a57509a2deaa6d08c4c84", "fetched_at": "2026-08-29T08:51:29.595738+00:00", "kind": "site_page", "missing": false, "url": "https://miragejs.com/docs/testing/application-tests"}, {"content_hash": "cd4e36455fb276d762c3364dfcfafffbb4d5071ed921fb6ba39ad4e163ae8370", "fetched_at": "2026-08-29T08:51:29.597797+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/miragejs"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:55:45.661907+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9e9ddf555213a2c2475a8ef6cc3fb8a8627c145ac70c6af098d180154549871e", "fetched_at": "2026-08-28T04:09:21.977728+00:00", "kind": "readme", "missing": false, "url": "https://github.com/miragejs/miragejs"}, {"content_hash": "2e543cb64efb71edd961221c5244c020e01e08703c834d5a5c5e2ca914acc574", "fetched_at": "2026-08-29T08:51:29.582655+00:00", "kind": "homepage", "missing": false, "url": "https://miragejs.com/"}, {"content_hash": "62da40059bf3d34d5d585c63728d86c1107a8690c75a425a322761bbc042bce1", "fetched_at": "2026-08-29T08:51:29.592187+00:00", "kind": "site_page", "missing": false, "url": "https://miragejs.com/docs/getting-started/introduction"}, {"content_hash": "9750e91eff8bcf731c49d64cefa466a82a7c536ec55bd0208b10b24f223f0eed", "fetched_at": "2026-08-29T08:51:29.594027+00:00", "kind": "site_page", "missing": false, "url": "https://miragejs.com/quickstarts/overview"}, {"content_hash": "6ae2fac74ce8e6f6631bde858dffa6bb612d6e32376a57509a2deaa6d08c4c84", "fetched_at": "2026-08-29T08:51:29.595738+00:00", "kind": "site_page", "missing": false, "url": "https://miragejs.com/docs/testing/application-tests"}, {"content_hash": "cd4e36455fb276d762c3364dfcfafffbb4d5071ed921fb6ba39ad4e163ae8370", "fetched_at": "2026-08-29T08:51:29.597797+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/miragejs"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:55:45.661907+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9e9ddf555213a2c2475a8ef6cc3fb8a8627c145ac70c6af098d180154549871e", "fetched_at": "2026-08-28T04:09:21.977728+00:00", "kind": "readme", "missing": false, "url": "https://github.com/miragejs/miragejs"}, {"content_hash": "2e543cb64efb71edd961221c5244c020e01e08703c834d5a5c5e2ca914acc574", "fetched_at": "2026-08-29T08:51:29.582655+00:00", "kind": "homepage", "missing": false, "url": "https://miragejs.com/"}, {"content_hash": "62da40059bf3d34d5d585c63728d86c1107a8690c75a425a322761bbc042bce1", "fetched_at": "2026-08-29T08:51:29.592187+00:00", "kind": "site_page", "missing": false, "url": "https://miragejs.com/docs/getting-started/introduction"}, {"content_hash": "9750e91eff8bcf731c49d64cefa466a82a7c536ec55bd0208b10b24f223f0eed", "fetched_at": "2026-08-29T08:51:29.594027+00:00", "kind": "site_page", "missing": false, "url": "https://miragejs.com/quickstarts/overview"}, {"content_hash": "6ae2fac74ce8e6f6631bde858dffa6bb612d6e32376a57509a2deaa6d08c4c84", "fetched_at": "2026-08-29T08:51:29.595738+00:00", "kind": "site_page", "missing": false, "url": "https://miragejs.com/docs/testing/application-tests"}, {"content_hash": "cd4e36455fb276d762c3364dfcfafffbb4d5071ed921fb6ba39ad4e163ae8370", "fetched_at": "2026-08-29T08:51:29.597797+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/miragejs"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:55:45.661907+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9e9ddf555213a2c2475a8ef6cc3fb8a8627c145ac70c6af098d180154549871e", "fetched_at": "2026-08-28T04:09:21.977728+00:00", "kind": "readme", "missing": false, "url": "https://github.com/miragejs/miragejs"}, {"content_hash": "2e543cb64efb71edd961221c5244c020e01e08703c834d5a5c5e2ca914acc574", "fetched_at": "2026-08-29T08:51:29.582655+00:00", "kind": "homepage", "missing": false, "url": "https://miragejs.com/"}, {"content_hash": "62da40059bf3d34d5d585c63728d86c1107a8690c75a425a322761bbc042bce1", "fetched_at": "2026-08-29T08:51:29.592187+00:00", "kind": "site_page", "missing": false, "url": "https://miragejs.com/docs/getting-started/introduction"}, {"content_hash": "9750e91eff8bcf731c49d64cefa466a82a7c536ec55bd0208b10b24f223f0eed", "fetched_at": "2026-08-29T08:51:29.594027+00:00", "kind": "site_page", "missing": false, "url": "https://miragejs.com/quickstarts/overview"}, {"content_hash": "6ae2fac74ce8e6f6631bde858dffa6bb612d6e32376a57509a2deaa6d08c4c84", "fetched_at": "2026-08-29T08:51:29.595738+00:00", "kind": "site_page", "missing": false, "url": "https://miragejs.com/docs/testing/application-tests"}, {"content_hash": "cd4e36455fb276d762c3364dfcfafffbb4d5071ed921fb6ba39ad4e163ae8370", "fetched_at": "2026-08-29T08:51:29.597797+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/miragejs"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 36, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2749, "days_push": 387, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 39, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}