{"adoption": {"forks": 156, "observed_at": "2026-08-28T04:09:02.670001+00:00", "stars": 4934}, "canonical_url": "https://ross.abutalabs.com/products/slonik", "card": {"archived": false, "artifact_type": "library", "description": "A Node.js PostgreSQL client with runtime and build time type safety, and composable SQL.", "domain": ["databases", "backend", "web-development", "developer-tools"], "enriched": true, "function": ["database-driver", "database", "orm", "middleware", "logging"], "health_score": 97, "homepage": null, "language": "TypeScript", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["gajus/slonik"], "name": "gajus/slonik", "platform": [], "pushed_at": "2026-07-26T16:12:12+00:00", "repo": "gajus/slonik", "stars": 4934, "tags": ["postgresql", "sql", "type-safety", "connection-pool", "transactions", "query-builder-alternative", "nodejs", "typescript", "javascript"], "topics": ["postgresql", "postgres", "nodejs", "javascript", "typescript"], "urls": [], "use_cases": ["query postgres from nodejs with type safety", "write raw sql queries safely in typescript", "manage postgres connection pools and transactions", "prevent sql injection with safe value interpolation", "add logging and interceptors to database queries", "retry failed queries and transactions automatically"], "what_it_is": "Slonik is a Node.js PostgreSQL client library written in TypeScript that emphasizes writing raw SQL with strict runtime validation and build-time type safety. It provides safe connection and transaction handling, query retrying, interceptors, and detailed logging.", "when_to_avoid": ["you want an ORM with automatic schema-to-object mapping", "you need dynamic SQL generation like Knex.js", "you are not using Node.js or PostgreSQL"], "when_to_choose": ["you prefer writing raw SQL over query builders or ORMs", "you want runtime validation of query results in TypeScript", "you need robust transaction and connection pool handling", "you want detailed query logging and debugging"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/slonik", "repo": "gajus/slonik", "role": "main", "score": 91}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:02.670001+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:17:58.045529+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "368bdb8bf27b937b818f9281927254076a7946407fab39ec0385e09f3a23f469", "fetched_at": "2026-08-28T04:09:02.670001+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gajus/slonik"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:02.670001+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:17:58.045529+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "368bdb8bf27b937b818f9281927254076a7946407fab39ec0385e09f3a23f469", "fetched_at": "2026-08-28T04:09:02.670001+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gajus/slonik"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:17:58.045529+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "368bdb8bf27b937b818f9281927254076a7946407fab39ec0385e09f3a23f469", "fetched_at": "2026-08-28T04:09:02.670001+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gajus/slonik"}], "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:02.670001+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:02.670001+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:02.670001+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:17:58.045529+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "368bdb8bf27b937b818f9281927254076a7946407fab39ec0385e09f3a23f469", "fetched_at": "2026-08-28T04:09:02.670001+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gajus/slonik"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:02.670001+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:02.670001+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:17:58.045529+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "368bdb8bf27b937b818f9281927254076a7946407fab39ec0385e09f3a23f469", "fetched_at": "2026-08-28T04:09:02.670001+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gajus/slonik"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:02.670001+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:02.670001+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:02.670001+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:17:58.045529+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "368bdb8bf27b937b818f9281927254076a7946407fab39ec0385e09f3a23f469", "fetched_at": "2026-08-28T04:09:02.670001+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gajus/slonik"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:02.670001+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:02.670001+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:17:58.045529+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "368bdb8bf27b937b818f9281927254076a7946407fab39ec0385e09f3a23f469", "fetched_at": "2026-08-28T04:09:02.670001+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gajus/slonik"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:17:58.045529+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "368bdb8bf27b937b818f9281927254076a7946407fab39ec0385e09f3a23f469", "fetched_at": "2026-08-28T04:09:02.670001+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gajus/slonik"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:17:58.045529+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "368bdb8bf27b937b818f9281927254076a7946407fab39ec0385e09f3a23f469", "fetched_at": "2026-08-28T04:09:02.670001+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gajus/slonik"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:17:58.045529+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "368bdb8bf27b937b818f9281927254076a7946407fab39ec0385e09f3a23f469", "fetched_at": "2026-08-28T04:09:02.670001+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gajus/slonik"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 94, "longevity": 100, "rhythm": 83}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3449, "days_push": 38, "days_rel": 38, "gap_med": 0, "n_releases_24m": 1056}, "score": 91, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}