{"adoption": {"forks": 566, "observed_at": "2026-08-28T04:07:32.171296+00:00", "stars": 2955}, "canonical_url": "https://ross.abutalabs.com/products/node-typescript-boilerplate", "card": {"archived": false, "artifact_type": "learning-resource", "description": "Production-ready Node.js TypeScript boilerplate: ESM, Vitest, ESLint, Prettier, GitHub Actions, Mise, and AGENTS.md included.", "domain": ["developer-tools", "backend", "web-development", "apis"], "enriched": true, "function": ["boilerplate", "developer-tools", "testing", "linter", "formatter", "ci-cd", "configuration-management"], "health_score": 74, "homepage": null, "language": "TypeScript", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["jsynowiec/node-typescript-boilerplate"], "name": "jsynowiec/node-typescript-boilerplate", "platform": ["cross-platform", "cli"], "pushed_at": "2026-06-30T11:11:08+00:00", "repo": "jsynowiec/node-typescript-boilerplate", "stars": 2955, "tags": ["starter-template", "esm", "vitest", "prettier", "eslint", "github-actions", "mise", "agents-md", "project-template", "ai-coding-agents", "strict-typescript", "no-framework-lock-in", "boilerplate", "command-line", "nodejs", "typescript"], "topics": ["typescript", "nodejs", "boilerplate", "project-template", "starter-template", "back-end", "serverless", "backend", "service", "javascript", "express", "prettier", "eslint", "microservices", "node-typescript-boilerplate", "node-js", "nodejs-server", "typescript-boilerplate", "es-modules", "vitest"], "urls": [], "use_cases": ["start a new Node.js TypeScript backend project", "create a framework-free TypeScript service or API", "bootstrap a CLI tool or background worker in TypeScript", "set up a TypeScript library with testing and CI from day one", "use Vitest and native ESM instead of Jest and CommonJS", "give AI coding agents like Copilot or Claude Code clear project instructions", "avoid over-opinionated starters that force Express or NestJS"], "what_it_is": "A production-ready Node.js TypeScript boilerplate providing a strict, modern toolchain with ESM, Vitest, ESLint, Prettier, GitHub Actions CI, and Mise for reproducible toolchains. It is intentionally minimal and framework-agnostic, including an AGENTS.md file with guidance for AI coding agents.", "when_to_avoid": ["you need batteries-included web frameworks like Express, NestJS, or Fastify out of the box", "you require built-in database, ORM, authentication, or Docker configuration", "you want serverless deployment tooling or cloud-specific setup included", "you prefer CommonJS modules or Jest as your test runner", "you are not starting a new project and just need individual libraries rather than a template"], "when_to_choose": ["you want a clean, boring, production-ready TypeScript foundation without framework lock-in", "you prefer native ESM and Vitest over CommonJS and Jest", "you need linting, formatting, testing, and CI wired up immediately", "you want reproducible local toolchains via Mise", "you plan to use AI coding agents and want project conventions documented upfront"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/node-typescript-boilerplate", "repo": "jsynowiec/node-typescript-boilerplate", "role": "main", "score": 73}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.171296+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T08:31:34.790397+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c59b55bf6672bbdfb61331c69b680d8ae7ad39a2ebdddc2412dfb718f6d969b1", "fetched_at": "2026-08-28T04:07:32.171296+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jsynowiec/node-typescript-boilerplate"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.171296+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T08:31:34.790397+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c59b55bf6672bbdfb61331c69b680d8ae7ad39a2ebdddc2412dfb718f6d969b1", "fetched_at": "2026-08-28T04:07:32.171296+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jsynowiec/node-typescript-boilerplate"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T08:31:34.790397+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c59b55bf6672bbdfb61331c69b680d8ae7ad39a2ebdddc2412dfb718f6d969b1", "fetched_at": "2026-08-28T04:07:32.171296+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jsynowiec/node-typescript-boilerplate"}], "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:07:32.171296+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.171296+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.171296+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T08:31:34.790397+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c59b55bf6672bbdfb61331c69b680d8ae7ad39a2ebdddc2412dfb718f6d969b1", "fetched_at": "2026-08-28T04:07:32.171296+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jsynowiec/node-typescript-boilerplate"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.171296+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.171296+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T08:31:34.790397+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c59b55bf6672bbdfb61331c69b680d8ae7ad39a2ebdddc2412dfb718f6d969b1", "fetched_at": "2026-08-28T04:07:32.171296+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jsynowiec/node-typescript-boilerplate"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.171296+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.171296+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.171296+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T08:31:34.790397+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c59b55bf6672bbdfb61331c69b680d8ae7ad39a2ebdddc2412dfb718f6d969b1", "fetched_at": "2026-08-28T04:07:32.171296+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jsynowiec/node-typescript-boilerplate"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.171296+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.171296+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T08:31:34.790397+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c59b55bf6672bbdfb61331c69b680d8ae7ad39a2ebdddc2412dfb718f6d969b1", "fetched_at": "2026-08-28T04:07:32.171296+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jsynowiec/node-typescript-boilerplate"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T08:31:34.790397+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c59b55bf6672bbdfb61331c69b680d8ae7ad39a2ebdddc2412dfb718f6d969b1", "fetched_at": "2026-08-28T04:07:32.171296+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jsynowiec/node-typescript-boilerplate"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T08:31:34.790397+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c59b55bf6672bbdfb61331c69b680d8ae7ad39a2ebdddc2412dfb718f6d969b1", "fetched_at": "2026-08-28T04:07:32.171296+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jsynowiec/node-typescript-boilerplate"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T08:31:34.790397+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c59b55bf6672bbdfb61331c69b680d8ae7ad39a2ebdddc2412dfb718f6d969b1", "fetched_at": "2026-08-28T04:07:32.171296+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jsynowiec/node-typescript-boilerplate"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 90, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3665, "days_push": 64, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 73, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}