{"adoption": {"forks": 160, "observed_at": "2026-08-28T04:04:25.864175+00:00", "stars": 1339}, "canonical_url": "https://ross.abutalabs.com/products/donejs", "card": {"archived": false, "artifact_type": "framework", "description": "Your app. Done.", "domain": ["web-development", "frontend", "developer-tools", "cross-platform"], "enriched": true, "function": ["frontend-framework", "ssr", "build-tool", "testing", "documentation", "state-management", "cli"], "health_score": 20, "homepage": "https://donejs.com", "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["donejs/donejs"], "name": "donejs/donejs", "platform": ["cross-platform"], "pushed_at": "2020-05-25T15:37:23+00:00", "repo": "donejs/donejs", "stars": 1339, "tags": ["mvvm", "all-in-one-stack", "isomorphic", "stealjs", "canjs", "real-time", "mobile-builds", "desktop-builds", "nodejs", "javascript", "web-server"], "topics": [], "urls": [], "use_cases": ["build a high-performance real-time web application", "set up a complete modern JavaScript stack without choosing tools", "server-side render a CanJS application", "build a web app that also ships to iOS, Android, and desktop", "scaffold a new JavaScript app with testing and CI included", "get progressive loading and minimal DOM updates out of the box"], "what_it_is": "DoneJS is an all-in-one JavaScript framework that bundles StealJS, CanJS, jQuery, testing tools, documentation generators, and server-side rendering utilities into a single npm package for building high-performance web and mobile apps. It provides generators, hot module swapping, and cross-platform builds (iOS, Android, desktop) out of the box.", "when_to_avoid": ["you prefer composing your own stack with React, Vue, or modern bundlers like Vite or webpack", "you need a framework with active community momentum and recent releases (last release 2020)", "you want a lightweight library rather than an opinionated all-in-one solution", "you need broad ecosystem support or extensive third-party integrations"], "when_to_choose": ["you want a pre-integrated full stack (loader, MVVM, SSR, testing, docs) with no assembly required", "you are invested in the CanJS/Bitovi ecosystem", "you need isomorphic rendering and real-time features configured by default", "you want one toolchain targeting web, mobile, and desktop"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/donejs", "repo": "donejs/donejs", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.864175+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:43:54.171134+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92c55dbe2237436151d75e7f6e46e7fd8054eeb3f1ccab2534ac2a0201e41ec6", "fetched_at": "2026-08-28T04:04:25.864175+00:00", "kind": "readme", "missing": false, "url": "https://github.com/donejs/donejs"}, {"content_hash": "920fec5d6ea09f48cf77723b2b1314b024f4c23ef3755f53ae11edb8c8f477ac", "fetched_at": "2026-08-29T12:03:12.067508+00:00", "kind": "homepage", "missing": false, "url": "https://donejs.com"}, {"content_hash": "5efb39a061c2450fab31680bb6db0781b9af9a9918610d89809f71e60f445375", "fetched_at": "2026-08-29T12:03:12.076503+00:00", "kind": "site_page", "missing": false, "url": "https://donejs.com/Features.html"}, {"content_hash": "ae21b57bcaceb27146d64e4d3ad326950dbfaaa1d2ace952acd23e2894d7a663", "fetched_at": "2026-08-29T12:03:12.080087+00:00", "kind": "site_page", "missing": false, "url": "https://donejs.com/About.html"}, {"content_hash": "568309428ba64bf75f67b193680ec5d7b4b953bcd1651e82f83117cc31d9bed1", "fetched_at": "2026-08-29T12:03:12.081921+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/donejs"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.864175+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:43:54.171134+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92c55dbe2237436151d75e7f6e46e7fd8054eeb3f1ccab2534ac2a0201e41ec6", "fetched_at": "2026-08-28T04:04:25.864175+00:00", "kind": "readme", "missing": false, "url": "https://github.com/donejs/donejs"}, {"content_hash": "920fec5d6ea09f48cf77723b2b1314b024f4c23ef3755f53ae11edb8c8f477ac", "fetched_at": "2026-08-29T12:03:12.067508+00:00", "kind": "homepage", "missing": false, "url": "https://donejs.com"}, {"content_hash": "5efb39a061c2450fab31680bb6db0781b9af9a9918610d89809f71e60f445375", "fetched_at": "2026-08-29T12:03:12.076503+00:00", "kind": "site_page", "missing": false, "url": "https://donejs.com/Features.html"}, {"content_hash": "ae21b57bcaceb27146d64e4d3ad326950dbfaaa1d2ace952acd23e2894d7a663", "fetched_at": "2026-08-29T12:03:12.080087+00:00", "kind": "site_page", "missing": false, "url": "https://donejs.com/About.html"}, {"content_hash": "568309428ba64bf75f67b193680ec5d7b4b953bcd1651e82f83117cc31d9bed1", "fetched_at": "2026-08-29T12:03:12.081921+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/donejs"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:43:54.171134+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92c55dbe2237436151d75e7f6e46e7fd8054eeb3f1ccab2534ac2a0201e41ec6", "fetched_at": "2026-08-28T04:04:25.864175+00:00", "kind": "readme", "missing": false, "url": "https://github.com/donejs/donejs"}, {"content_hash": "920fec5d6ea09f48cf77723b2b1314b024f4c23ef3755f53ae11edb8c8f477ac", "fetched_at": "2026-08-29T12:03:12.067508+00:00", "kind": "homepage", "missing": false, "url": "https://donejs.com"}, {"content_hash": "5efb39a061c2450fab31680bb6db0781b9af9a9918610d89809f71e60f445375", "fetched_at": "2026-08-29T12:03:12.076503+00:00", "kind": "site_page", "missing": false, "url": "https://donejs.com/Features.html"}, {"content_hash": "ae21b57bcaceb27146d64e4d3ad326950dbfaaa1d2ace952acd23e2894d7a663", "fetched_at": "2026-08-29T12:03:12.080087+00:00", "kind": "site_page", "missing": false, "url": "https://donejs.com/About.html"}, {"content_hash": "568309428ba64bf75f67b193680ec5d7b4b953bcd1651e82f83117cc31d9bed1", "fetched_at": "2026-08-29T12:03:12.081921+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/donejs"}], "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:04:25.864175+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.864175+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.864175+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:43:54.171134+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92c55dbe2237436151d75e7f6e46e7fd8054eeb3f1ccab2534ac2a0201e41ec6", "fetched_at": "2026-08-28T04:04:25.864175+00:00", "kind": "readme", "missing": false, "url": "https://github.com/donejs/donejs"}, {"content_hash": "920fec5d6ea09f48cf77723b2b1314b024f4c23ef3755f53ae11edb8c8f477ac", "fetched_at": "2026-08-29T12:03:12.067508+00:00", "kind": "homepage", "missing": false, "url": "https://donejs.com"}, {"content_hash": "5efb39a061c2450fab31680bb6db0781b9af9a9918610d89809f71e60f445375", "fetched_at": "2026-08-29T12:03:12.076503+00:00", "kind": "site_page", "missing": false, "url": "https://donejs.com/Features.html"}, {"content_hash": "ae21b57bcaceb27146d64e4d3ad326950dbfaaa1d2ace952acd23e2894d7a663", "fetched_at": "2026-08-29T12:03:12.080087+00:00", "kind": "site_page", "missing": false, "url": "https://donejs.com/About.html"}, {"content_hash": "568309428ba64bf75f67b193680ec5d7b4b953bcd1651e82f83117cc31d9bed1", "fetched_at": "2026-08-29T12:03:12.081921+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/donejs"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.864175+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.864175+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:43:54.171134+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92c55dbe2237436151d75e7f6e46e7fd8054eeb3f1ccab2534ac2a0201e41ec6", "fetched_at": "2026-08-28T04:04:25.864175+00:00", "kind": "readme", "missing": false, "url": "https://github.com/donejs/donejs"}, {"content_hash": "920fec5d6ea09f48cf77723b2b1314b024f4c23ef3755f53ae11edb8c8f477ac", "fetched_at": "2026-08-29T12:03:12.067508+00:00", "kind": "homepage", "missing": false, "url": "https://donejs.com"}, {"content_hash": "5efb39a061c2450fab31680bb6db0781b9af9a9918610d89809f71e60f445375", "fetched_at": "2026-08-29T12:03:12.076503+00:00", "kind": "site_page", "missing": false, "url": "https://donejs.com/Features.html"}, {"content_hash": "ae21b57bcaceb27146d64e4d3ad326950dbfaaa1d2ace952acd23e2894d7a663", "fetched_at": "2026-08-29T12:03:12.080087+00:00", "kind": "site_page", "missing": false, "url": "https://donejs.com/About.html"}, {"content_hash": "568309428ba64bf75f67b193680ec5d7b4b953bcd1651e82f83117cc31d9bed1", "fetched_at": "2026-08-29T12:03:12.081921+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/donejs"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.864175+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.864175+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.864175+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:43:54.171134+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92c55dbe2237436151d75e7f6e46e7fd8054eeb3f1ccab2534ac2a0201e41ec6", "fetched_at": "2026-08-28T04:04:25.864175+00:00", "kind": "readme", "missing": false, "url": "https://github.com/donejs/donejs"}, {"content_hash": "920fec5d6ea09f48cf77723b2b1314b024f4c23ef3755f53ae11edb8c8f477ac", "fetched_at": "2026-08-29T12:03:12.067508+00:00", "kind": "homepage", "missing": false, "url": "https://donejs.com"}, {"content_hash": "5efb39a061c2450fab31680bb6db0781b9af9a9918610d89809f71e60f445375", "fetched_at": "2026-08-29T12:03:12.076503+00:00", "kind": "site_page", "missing": false, "url": "https://donejs.com/Features.html"}, {"content_hash": "ae21b57bcaceb27146d64e4d3ad326950dbfaaa1d2ace952acd23e2894d7a663", "fetched_at": "2026-08-29T12:03:12.080087+00:00", "kind": "site_page", "missing": false, "url": "https://donejs.com/About.html"}, {"content_hash": "568309428ba64bf75f67b193680ec5d7b4b953bcd1651e82f83117cc31d9bed1", "fetched_at": "2026-08-29T12:03:12.081921+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/donejs"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.864175+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.864175+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:43:54.171134+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92c55dbe2237436151d75e7f6e46e7fd8054eeb3f1ccab2534ac2a0201e41ec6", "fetched_at": "2026-08-28T04:04:25.864175+00:00", "kind": "readme", "missing": false, "url": "https://github.com/donejs/donejs"}, {"content_hash": "920fec5d6ea09f48cf77723b2b1314b024f4c23ef3755f53ae11edb8c8f477ac", "fetched_at": "2026-08-29T12:03:12.067508+00:00", "kind": "homepage", "missing": false, "url": "https://donejs.com"}, {"content_hash": "5efb39a061c2450fab31680bb6db0781b9af9a9918610d89809f71e60f445375", "fetched_at": "2026-08-29T12:03:12.076503+00:00", "kind": "site_page", "missing": false, "url": "https://donejs.com/Features.html"}, {"content_hash": "ae21b57bcaceb27146d64e4d3ad326950dbfaaa1d2ace952acd23e2894d7a663", "fetched_at": "2026-08-29T12:03:12.080087+00:00", "kind": "site_page", "missing": false, "url": "https://donejs.com/About.html"}, {"content_hash": "568309428ba64bf75f67b193680ec5d7b4b953bcd1651e82f83117cc31d9bed1", "fetched_at": "2026-08-29T12:03:12.081921+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/donejs"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:43:54.171134+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92c55dbe2237436151d75e7f6e46e7fd8054eeb3f1ccab2534ac2a0201e41ec6", "fetched_at": "2026-08-28T04:04:25.864175+00:00", "kind": "readme", "missing": false, "url": "https://github.com/donejs/donejs"}, {"content_hash": "920fec5d6ea09f48cf77723b2b1314b024f4c23ef3755f53ae11edb8c8f477ac", "fetched_at": "2026-08-29T12:03:12.067508+00:00", "kind": "homepage", "missing": false, "url": "https://donejs.com"}, {"content_hash": "5efb39a061c2450fab31680bb6db0781b9af9a9918610d89809f71e60f445375", "fetched_at": "2026-08-29T12:03:12.076503+00:00", "kind": "site_page", "missing": false, "url": "https://donejs.com/Features.html"}, {"content_hash": "ae21b57bcaceb27146d64e4d3ad326950dbfaaa1d2ace952acd23e2894d7a663", "fetched_at": "2026-08-29T12:03:12.080087+00:00", "kind": "site_page", "missing": false, "url": "https://donejs.com/About.html"}, {"content_hash": "568309428ba64bf75f67b193680ec5d7b4b953bcd1651e82f83117cc31d9bed1", "fetched_at": "2026-08-29T12:03:12.081921+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/donejs"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:43:54.171134+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92c55dbe2237436151d75e7f6e46e7fd8054eeb3f1ccab2534ac2a0201e41ec6", "fetched_at": "2026-08-28T04:04:25.864175+00:00", "kind": "readme", "missing": false, "url": "https://github.com/donejs/donejs"}, {"content_hash": "920fec5d6ea09f48cf77723b2b1314b024f4c23ef3755f53ae11edb8c8f477ac", "fetched_at": "2026-08-29T12:03:12.067508+00:00", "kind": "homepage", "missing": false, "url": "https://donejs.com"}, {"content_hash": "5efb39a061c2450fab31680bb6db0781b9af9a9918610d89809f71e60f445375", "fetched_at": "2026-08-29T12:03:12.076503+00:00", "kind": "site_page", "missing": false, "url": "https://donejs.com/Features.html"}, {"content_hash": "ae21b57bcaceb27146d64e4d3ad326950dbfaaa1d2ace952acd23e2894d7a663", "fetched_at": "2026-08-29T12:03:12.080087+00:00", "kind": "site_page", "missing": false, "url": "https://donejs.com/About.html"}, {"content_hash": "568309428ba64bf75f67b193680ec5d7b4b953bcd1651e82f83117cc31d9bed1", "fetched_at": "2026-08-29T12:03:12.081921+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/donejs"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:43:54.171134+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92c55dbe2237436151d75e7f6e46e7fd8054eeb3f1ccab2534ac2a0201e41ec6", "fetched_at": "2026-08-28T04:04:25.864175+00:00", "kind": "readme", "missing": false, "url": "https://github.com/donejs/donejs"}, {"content_hash": "920fec5d6ea09f48cf77723b2b1314b024f4c23ef3755f53ae11edb8c8f477ac", "fetched_at": "2026-08-29T12:03:12.067508+00:00", "kind": "homepage", "missing": false, "url": "https://donejs.com"}, {"content_hash": "5efb39a061c2450fab31680bb6db0781b9af9a9918610d89809f71e60f445375", "fetched_at": "2026-08-29T12:03:12.076503+00:00", "kind": "site_page", "missing": false, "url": "https://donejs.com/Features.html"}, {"content_hash": "ae21b57bcaceb27146d64e4d3ad326950dbfaaa1d2ace952acd23e2894d7a663", "fetched_at": "2026-08-29T12:03:12.080087+00:00", "kind": "site_page", "missing": false, "url": "https://donejs.com/About.html"}, {"content_hash": "568309428ba64bf75f67b193680ec5d7b4b953bcd1651e82f83117cc31d9bed1", "fetched_at": "2026-08-29T12:03:12.081921+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/donejs"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "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": 6048, "days_push": 2291, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}