{"adoption": {"forks": 126, "observed_at": "2026-08-28T04:03:38.073190+00:00", "stars": 1113}, "canonical_url": "https://ross.abutalabs.com/products/thinky", "card": {"archived": false, "artifact_type": "library", "description": "JavaScript ORM for RethinkDB", "domain": ["databases", "backend", "web-development", "developer-tools"], "enriched": true, "function": ["orm", "database", "database-driver", "form-handling"], "health_score": 20, "homepage": "http://justonepixel.com/thinky/", "language": "JavaScript", "license": "NOASSERTION", "license_family": "other", "maturity": "maintenance", "member_repos": ["neumino/thinky"], "name": "neumino/thinky", "platform": [], "pushed_at": "2021-11-21T19:39:17+00:00", "repo": "neumino/thinky", "stars": 1113, "tags": ["rethinkdb", "schemas", "relations", "nosql", "promise-based", "nodejs", "javascript"], "topics": [], "urls": [], "use_cases": ["define models with schemas for RethinkDB in Node.js", "manage relations between RethinkDB documents like belongsTo and hasMany", "automatically create RethinkDB tables and indexes from models", "save and retrieve documents with joined related data", "validate and enforce document schemas on save", "handle cascading deletes of related documents"], "what_it_is": "Thinky is a light Node.js ORM for RethinkDB that provides schema enforcement, standard relations (hasOne, belongsTo, hasMany, hasAndBelongsToMany), and automatic creation of tables and indexes. It offers a promise-based API for saving, joining, and deleting documents with their relations.", "when_to_avoid": ["you are not using RethinkDB as your database", "you need a actively maintained library with recent updates and long-term support", "you need TypeScript support or a non-JavaScript ORM"], "when_to_choose": ["you are building a Node.js application backed by RethinkDB and want an ORM with schemas and relations", "you want automatic table and index creation from model definitions", "you prefer a lightweight, promise-based ORM over raw ReQL queries"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/thinky", "repo": "neumino/thinky", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:38.073190+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:42:37.243653+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c709be128f6f32667c889db0427cdef94d65e491e73306bbd1a443b7f9d3f79f", "fetched_at": "2026-08-28T04:03:38.073190+00:00", "kind": "readme", "missing": false, "url": "https://github.com/neumino/thinky"}, {"content_hash": "4adbbba613033502cc49c1f19a1a11ac2be88bc558def0b92040d3efbce16094", "fetched_at": "2026-08-29T12:46:21.542252+00:00", "kind": "homepage", "missing": false, "url": "http://justonepixel.com/thinky/"}, {"content_hash": "e0a823ab87865ec78c1426556e5d7f70c42d26e0ad355eb1c2a26b45bcc79b8d", "fetched_at": "2026-08-29T12:46:21.551126+00:00", "kind": "site_page", "missing": false, "url": "http://justonepixel.com/thinky/documentation"}, {"content_hash": "43c0f8c3d9847519b3304b210085c0d010db6381401ef69308c1b9939fcefc74", "fetched_at": "2026-08-29T12:46:21.553081+00:00", "kind": "site_page", "missing": false, "url": "http://justonepixel.com/thinky/about.html"}, {"content_hash": "613f0f6f015c94c7aceeeabb5c61c6a7425334de407764a4a69fd86c04b31223", "fetched_at": "2026-08-29T12:46:21.554603+00:00", "kind": "site_page", "missing": false, "url": "http://justonepixel.com/thinky/documentation/api/thinky"}, {"content_hash": "7a9e263a75acedd5d472c27fd44f5e40249f2795558f2c8b331293c94cc0901f", "fetched_at": "2026-08-29T12:46:21.556358+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/thinky"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:38.073190+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:42:37.243653+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c709be128f6f32667c889db0427cdef94d65e491e73306bbd1a443b7f9d3f79f", "fetched_at": "2026-08-28T04:03:38.073190+00:00", "kind": "readme", "missing": false, "url": "https://github.com/neumino/thinky"}, {"content_hash": "4adbbba613033502cc49c1f19a1a11ac2be88bc558def0b92040d3efbce16094", "fetched_at": "2026-08-29T12:46:21.542252+00:00", "kind": "homepage", "missing": false, "url": "http://justonepixel.com/thinky/"}, {"content_hash": "e0a823ab87865ec78c1426556e5d7f70c42d26e0ad355eb1c2a26b45bcc79b8d", "fetched_at": "2026-08-29T12:46:21.551126+00:00", "kind": "site_page", "missing": false, "url": "http://justonepixel.com/thinky/documentation"}, {"content_hash": "43c0f8c3d9847519b3304b210085c0d010db6381401ef69308c1b9939fcefc74", "fetched_at": "2026-08-29T12:46:21.553081+00:00", "kind": "site_page", "missing": false, "url": "http://justonepixel.com/thinky/about.html"}, {"content_hash": "613f0f6f015c94c7aceeeabb5c61c6a7425334de407764a4a69fd86c04b31223", "fetched_at": "2026-08-29T12:46:21.554603+00:00", "kind": "site_page", "missing": false, "url": "http://justonepixel.com/thinky/documentation/api/thinky"}, {"content_hash": "7a9e263a75acedd5d472c27fd44f5e40249f2795558f2c8b331293c94cc0901f", "fetched_at": "2026-08-29T12:46:21.556358+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/thinky"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:42:37.243653+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c709be128f6f32667c889db0427cdef94d65e491e73306bbd1a443b7f9d3f79f", "fetched_at": "2026-08-28T04:03:38.073190+00:00", "kind": "readme", "missing": false, "url": "https://github.com/neumino/thinky"}, {"content_hash": "4adbbba613033502cc49c1f19a1a11ac2be88bc558def0b92040d3efbce16094", "fetched_at": "2026-08-29T12:46:21.542252+00:00", "kind": "homepage", "missing": false, "url": "http://justonepixel.com/thinky/"}, {"content_hash": "e0a823ab87865ec78c1426556e5d7f70c42d26e0ad355eb1c2a26b45bcc79b8d", "fetched_at": "2026-08-29T12:46:21.551126+00:00", "kind": "site_page", "missing": false, "url": "http://justonepixel.com/thinky/documentation"}, {"content_hash": "43c0f8c3d9847519b3304b210085c0d010db6381401ef69308c1b9939fcefc74", "fetched_at": "2026-08-29T12:46:21.553081+00:00", "kind": "site_page", "missing": false, "url": "http://justonepixel.com/thinky/about.html"}, {"content_hash": "613f0f6f015c94c7aceeeabb5c61c6a7425334de407764a4a69fd86c04b31223", "fetched_at": "2026-08-29T12:46:21.554603+00:00", "kind": "site_page", "missing": false, "url": "http://justonepixel.com/thinky/documentation/api/thinky"}, {"content_hash": "7a9e263a75acedd5d472c27fd44f5e40249f2795558f2c8b331293c94cc0901f", "fetched_at": "2026-08-29T12:46:21.556358+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/thinky"}], "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:03:38.073190+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:38.073190+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:38.073190+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:42:37.243653+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c709be128f6f32667c889db0427cdef94d65e491e73306bbd1a443b7f9d3f79f", "fetched_at": "2026-08-28T04:03:38.073190+00:00", "kind": "readme", "missing": false, "url": "https://github.com/neumino/thinky"}, {"content_hash": "4adbbba613033502cc49c1f19a1a11ac2be88bc558def0b92040d3efbce16094", "fetched_at": "2026-08-29T12:46:21.542252+00:00", "kind": "homepage", "missing": false, "url": "http://justonepixel.com/thinky/"}, {"content_hash": "e0a823ab87865ec78c1426556e5d7f70c42d26e0ad355eb1c2a26b45bcc79b8d", "fetched_at": "2026-08-29T12:46:21.551126+00:00", "kind": "site_page", "missing": false, "url": "http://justonepixel.com/thinky/documentation"}, {"content_hash": "43c0f8c3d9847519b3304b210085c0d010db6381401ef69308c1b9939fcefc74", "fetched_at": "2026-08-29T12:46:21.553081+00:00", "kind": "site_page", "missing": false, "url": "http://justonepixel.com/thinky/about.html"}, {"content_hash": "613f0f6f015c94c7aceeeabb5c61c6a7425334de407764a4a69fd86c04b31223", "fetched_at": "2026-08-29T12:46:21.554603+00:00", "kind": "site_page", "missing": false, "url": "http://justonepixel.com/thinky/documentation/api/thinky"}, {"content_hash": "7a9e263a75acedd5d472c27fd44f5e40249f2795558f2c8b331293c94cc0901f", "fetched_at": "2026-08-29T12:46:21.556358+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/thinky"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:38.073190+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:38.073190+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:42:37.243653+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c709be128f6f32667c889db0427cdef94d65e491e73306bbd1a443b7f9d3f79f", "fetched_at": "2026-08-28T04:03:38.073190+00:00", "kind": "readme", "missing": false, "url": "https://github.com/neumino/thinky"}, {"content_hash": "4adbbba613033502cc49c1f19a1a11ac2be88bc558def0b92040d3efbce16094", "fetched_at": "2026-08-29T12:46:21.542252+00:00", "kind": "homepage", "missing": false, "url": "http://justonepixel.com/thinky/"}, {"content_hash": "e0a823ab87865ec78c1426556e5d7f70c42d26e0ad355eb1c2a26b45bcc79b8d", "fetched_at": "2026-08-29T12:46:21.551126+00:00", "kind": "site_page", "missing": false, "url": "http://justonepixel.com/thinky/documentation"}, {"content_hash": "43c0f8c3d9847519b3304b210085c0d010db6381401ef69308c1b9939fcefc74", "fetched_at": "2026-08-29T12:46:21.553081+00:00", "kind": "site_page", "missing": false, "url": "http://justonepixel.com/thinky/about.html"}, {"content_hash": "613f0f6f015c94c7aceeeabb5c61c6a7425334de407764a4a69fd86c04b31223", "fetched_at": "2026-08-29T12:46:21.554603+00:00", "kind": "site_page", "missing": false, "url": "http://justonepixel.com/thinky/documentation/api/thinky"}, {"content_hash": "7a9e263a75acedd5d472c27fd44f5e40249f2795558f2c8b331293c94cc0901f", "fetched_at": "2026-08-29T12:46:21.556358+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/thinky"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:38.073190+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:38.073190+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:38.073190+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:42:37.243653+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c709be128f6f32667c889db0427cdef94d65e491e73306bbd1a443b7f9d3f79f", "fetched_at": "2026-08-28T04:03:38.073190+00:00", "kind": "readme", "missing": false, "url": "https://github.com/neumino/thinky"}, {"content_hash": "4adbbba613033502cc49c1f19a1a11ac2be88bc558def0b92040d3efbce16094", "fetched_at": "2026-08-29T12:46:21.542252+00:00", "kind": "homepage", "missing": false, "url": "http://justonepixel.com/thinky/"}, {"content_hash": "e0a823ab87865ec78c1426556e5d7f70c42d26e0ad355eb1c2a26b45bcc79b8d", "fetched_at": "2026-08-29T12:46:21.551126+00:00", "kind": "site_page", "missing": false, "url": "http://justonepixel.com/thinky/documentation"}, {"content_hash": "43c0f8c3d9847519b3304b210085c0d010db6381401ef69308c1b9939fcefc74", "fetched_at": "2026-08-29T12:46:21.553081+00:00", "kind": "site_page", "missing": false, "url": "http://justonepixel.com/thinky/about.html"}, {"content_hash": "613f0f6f015c94c7aceeeabb5c61c6a7425334de407764a4a69fd86c04b31223", "fetched_at": "2026-08-29T12:46:21.554603+00:00", "kind": "site_page", "missing": false, "url": "http://justonepixel.com/thinky/documentation/api/thinky"}, {"content_hash": "7a9e263a75acedd5d472c27fd44f5e40249f2795558f2c8b331293c94cc0901f", "fetched_at": "2026-08-29T12:46:21.556358+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/thinky"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:38.073190+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:38.073190+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:42:37.243653+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c709be128f6f32667c889db0427cdef94d65e491e73306bbd1a443b7f9d3f79f", "fetched_at": "2026-08-28T04:03:38.073190+00:00", "kind": "readme", "missing": false, "url": "https://github.com/neumino/thinky"}, {"content_hash": "4adbbba613033502cc49c1f19a1a11ac2be88bc558def0b92040d3efbce16094", "fetched_at": "2026-08-29T12:46:21.542252+00:00", "kind": "homepage", "missing": false, "url": "http://justonepixel.com/thinky/"}, {"content_hash": "e0a823ab87865ec78c1426556e5d7f70c42d26e0ad355eb1c2a26b45bcc79b8d", "fetched_at": "2026-08-29T12:46:21.551126+00:00", "kind": "site_page", "missing": false, "url": "http://justonepixel.com/thinky/documentation"}, {"content_hash": "43c0f8c3d9847519b3304b210085c0d010db6381401ef69308c1b9939fcefc74", "fetched_at": "2026-08-29T12:46:21.553081+00:00", "kind": "site_page", "missing": false, "url": "http://justonepixel.com/thinky/about.html"}, {"content_hash": "613f0f6f015c94c7aceeeabb5c61c6a7425334de407764a4a69fd86c04b31223", "fetched_at": "2026-08-29T12:46:21.554603+00:00", "kind": "site_page", "missing": false, "url": "http://justonepixel.com/thinky/documentation/api/thinky"}, {"content_hash": "7a9e263a75acedd5d472c27fd44f5e40249f2795558f2c8b331293c94cc0901f", "fetched_at": "2026-08-29T12:46:21.556358+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/thinky"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:42:37.243653+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c709be128f6f32667c889db0427cdef94d65e491e73306bbd1a443b7f9d3f79f", "fetched_at": "2026-08-28T04:03:38.073190+00:00", "kind": "readme", "missing": false, "url": "https://github.com/neumino/thinky"}, {"content_hash": "4adbbba613033502cc49c1f19a1a11ac2be88bc558def0b92040d3efbce16094", "fetched_at": "2026-08-29T12:46:21.542252+00:00", "kind": "homepage", "missing": false, "url": "http://justonepixel.com/thinky/"}, {"content_hash": "e0a823ab87865ec78c1426556e5d7f70c42d26e0ad355eb1c2a26b45bcc79b8d", "fetched_at": "2026-08-29T12:46:21.551126+00:00", "kind": "site_page", "missing": false, "url": "http://justonepixel.com/thinky/documentation"}, {"content_hash": "43c0f8c3d9847519b3304b210085c0d010db6381401ef69308c1b9939fcefc74", "fetched_at": "2026-08-29T12:46:21.553081+00:00", "kind": "site_page", "missing": false, "url": "http://justonepixel.com/thinky/about.html"}, {"content_hash": "613f0f6f015c94c7aceeeabb5c61c6a7425334de407764a4a69fd86c04b31223", "fetched_at": "2026-08-29T12:46:21.554603+00:00", "kind": "site_page", "missing": false, "url": "http://justonepixel.com/thinky/documentation/api/thinky"}, {"content_hash": "7a9e263a75acedd5d472c27fd44f5e40249f2795558f2c8b331293c94cc0901f", "fetched_at": "2026-08-29T12:46:21.556358+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/thinky"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:42:37.243653+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c709be128f6f32667c889db0427cdef94d65e491e73306bbd1a443b7f9d3f79f", "fetched_at": "2026-08-28T04:03:38.073190+00:00", "kind": "readme", "missing": false, "url": "https://github.com/neumino/thinky"}, {"content_hash": "4adbbba613033502cc49c1f19a1a11ac2be88bc558def0b92040d3efbce16094", "fetched_at": "2026-08-29T12:46:21.542252+00:00", "kind": "homepage", "missing": false, "url": "http://justonepixel.com/thinky/"}, {"content_hash": "e0a823ab87865ec78c1426556e5d7f70c42d26e0ad355eb1c2a26b45bcc79b8d", "fetched_at": "2026-08-29T12:46:21.551126+00:00", "kind": "site_page", "missing": false, "url": "http://justonepixel.com/thinky/documentation"}, {"content_hash": "43c0f8c3d9847519b3304b210085c0d010db6381401ef69308c1b9939fcefc74", "fetched_at": "2026-08-29T12:46:21.553081+00:00", "kind": "site_page", "missing": false, "url": "http://justonepixel.com/thinky/about.html"}, {"content_hash": "613f0f6f015c94c7aceeeabb5c61c6a7425334de407764a4a69fd86c04b31223", "fetched_at": "2026-08-29T12:46:21.554603+00:00", "kind": "site_page", "missing": false, "url": "http://justonepixel.com/thinky/documentation/api/thinky"}, {"content_hash": "7a9e263a75acedd5d472c27fd44f5e40249f2795558f2c8b331293c94cc0901f", "fetched_at": "2026-08-29T12:46:21.556358+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/thinky"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:42:37.243653+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c709be128f6f32667c889db0427cdef94d65e491e73306bbd1a443b7f9d3f79f", "fetched_at": "2026-08-28T04:03:38.073190+00:00", "kind": "readme", "missing": false, "url": "https://github.com/neumino/thinky"}, {"content_hash": "4adbbba613033502cc49c1f19a1a11ac2be88bc558def0b92040d3efbce16094", "fetched_at": "2026-08-29T12:46:21.542252+00:00", "kind": "homepage", "missing": false, "url": "http://justonepixel.com/thinky/"}, {"content_hash": "e0a823ab87865ec78c1426556e5d7f70c42d26e0ad355eb1c2a26b45bcc79b8d", "fetched_at": "2026-08-29T12:46:21.551126+00:00", "kind": "site_page", "missing": false, "url": "http://justonepixel.com/thinky/documentation"}, {"content_hash": "43c0f8c3d9847519b3304b210085c0d010db6381401ef69308c1b9939fcefc74", "fetched_at": "2026-08-29T12:46:21.553081+00:00", "kind": "site_page", "missing": false, "url": "http://justonepixel.com/thinky/about.html"}, {"content_hash": "613f0f6f015c94c7aceeeabb5c61c6a7425334de407764a4a69fd86c04b31223", "fetched_at": "2026-08-29T12:46:21.554603+00:00", "kind": "site_page", "missing": false, "url": "http://justonepixel.com/thinky/documentation/api/thinky"}, {"content_hash": "7a9e263a75acedd5d472c27fd44f5e40249f2795558f2c8b331293c94cc0901f", "fetched_at": "2026-08-29T12:46:21.556358+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/thinky"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4820, "days_push": 1746, "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}}