{"adoption": {"forks": 517, "observed_at": "2026-08-28T04:09:15.459516+00:00", "stars": 5312}, "canonical_url": "https://ross.abutalabs.com/products/nbdev", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Create delightful software with Jupyter Notebooks", "domain": ["developer-tools", "documentation", "testing"], "enriched": true, "function": ["documentation", "testing", "ci-cd", "developer-tools", "cli", "build-tool"], "health_score": 100, "homepage": "https://nbdev.fast.ai/", "language": "Jupyter Notebook", "license": "Apache-2.0", "license_family": "permissive", "maturity": "stable", "member_repos": ["AnswerDotAI/nbdev"], "name": "AnswerDotAI/nbdev", "platform": ["python", "cli", "windows", "cross-platform"], "pushed_at": "2026-08-26T23:00:38+00:00", "repo": "AnswerDotAI/nbdev", "stars": 5312, "tags": ["literate-programming", "jupyter", "notebooks", "quarto", "fastai", "pypi-publishing", "conda-packaging", "git-friendly-notebooks", "notebook-driven-development", "github-actions", "command-line", "macos", "linux"], "topics": ["jupyter-notebooks", "python", "literate-programming", "fastai", "documentation-generator", "developer-tools", "documentation-tool", "jupyter", "nbdev", "pypi", "python-modules", "conda"], "urls": [], "use_cases": ["develop python packages in jupyter notebooks", "generate documentation from notebooks", "run tests written as notebook cells", "literate programming in python", "publish a package to pypi and conda from notebooks", "set up continuous integration for a notebook-based project", "sync notebook code with plain source files for IDE editing", "write technical articles with executable code"], "what_it_is": "nbdev is a notebook-driven development platform for Python that lets you write code, tests, and prose documentation in Jupyter Notebooks. It auto-generates searchable documentation with Quarto, runs notebook tests in parallel, provides out-of-the-box GitHub Actions CI, syncs notebooks two-way with source files, and publishes packages to PyPI and conda.", "when_to_avoid": ["You develop on Windows under cmd or PowerShell (only WSL is supported)", "Your team does not use Jupyter notebooks and prefers a traditional IDE-only workflow", "You work primarily in languages other than Python", "You need a minimal toolchain and do not want notebook-based development conventions imposed on your project"], "when_to_choose": ["You build Python libraries and want documentation, tests, and packaging generated from a single notebook workflow", "You do exploratory, REPL-style development but still want software engineering best practices like CI and first-class tests", "You want git-friendly notebooks with cleaned metadata and human-readable merge conflicts", "You want searchable, hyperlinked docs hosted on GitHub Pages without maintaining a separate docs pipeline"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/nbdev", "repo": "AnswerDotAI/nbdev", "role": "main", "score": 99}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.459516+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:58:58.411972+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f4b49e4d9022a6360e5a3d907053384787986a61134fef706a594d8641439a4a", "fetched_at": "2026-08-28T04:09:15.459516+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AnswerDotAI/nbdev"}, {"content_hash": "a220886cad7dfb9ab1edacc8305b7a944d85325c5cdd204a9a18f168c2b80d17", "fetched_at": "2026-08-29T08:53:45.281592+00:00", "kind": "homepage", "missing": false, "url": "https://nbdev.fast.ai/"}, {"content_hash": "2f0a6ac984f50253b3be2eb6855d3efb338aa94f3426e00f63b150188cd5cb05", "fetched_at": "2026-08-29T08:53:45.292488+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/nbdev/json"}, {"content_hash": "49680551810c733fe5142d4a08a824ede8edd87ff48fe62d8427caba8ce96a72", "fetched_at": "2026-08-29T08:53:45.290593+00:00", "kind": "site_page", "missing": false, "url": "https://nbdev.fast.ai/getting_started.html"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.459516+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:58:58.411972+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f4b49e4d9022a6360e5a3d907053384787986a61134fef706a594d8641439a4a", "fetched_at": "2026-08-28T04:09:15.459516+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AnswerDotAI/nbdev"}, {"content_hash": "a220886cad7dfb9ab1edacc8305b7a944d85325c5cdd204a9a18f168c2b80d17", "fetched_at": "2026-08-29T08:53:45.281592+00:00", "kind": "homepage", "missing": false, "url": "https://nbdev.fast.ai/"}, {"content_hash": "2f0a6ac984f50253b3be2eb6855d3efb338aa94f3426e00f63b150188cd5cb05", "fetched_at": "2026-08-29T08:53:45.292488+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/nbdev/json"}, {"content_hash": "49680551810c733fe5142d4a08a824ede8edd87ff48fe62d8427caba8ce96a72", "fetched_at": "2026-08-29T08:53:45.290593+00:00", "kind": "site_page", "missing": false, "url": "https://nbdev.fast.ai/getting_started.html"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:58:58.411972+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f4b49e4d9022a6360e5a3d907053384787986a61134fef706a594d8641439a4a", "fetched_at": "2026-08-28T04:09:15.459516+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AnswerDotAI/nbdev"}, {"content_hash": "a220886cad7dfb9ab1edacc8305b7a944d85325c5cdd204a9a18f168c2b80d17", "fetched_at": "2026-08-29T08:53:45.281592+00:00", "kind": "homepage", "missing": false, "url": "https://nbdev.fast.ai/"}, {"content_hash": "2f0a6ac984f50253b3be2eb6855d3efb338aa94f3426e00f63b150188cd5cb05", "fetched_at": "2026-08-29T08:53:45.292488+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/nbdev/json"}, {"content_hash": "49680551810c733fe5142d4a08a824ede8edd87ff48fe62d8427caba8ce96a72", "fetched_at": "2026-08-29T08:53:45.290593+00:00", "kind": "site_page", "missing": false, "url": "https://nbdev.fast.ai/getting_started.html"}], "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:15.459516+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.459516+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.459516+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:58:58.411972+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f4b49e4d9022a6360e5a3d907053384787986a61134fef706a594d8641439a4a", "fetched_at": "2026-08-28T04:09:15.459516+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AnswerDotAI/nbdev"}, {"content_hash": "a220886cad7dfb9ab1edacc8305b7a944d85325c5cdd204a9a18f168c2b80d17", "fetched_at": "2026-08-29T08:53:45.281592+00:00", "kind": "homepage", "missing": false, "url": "https://nbdev.fast.ai/"}, {"content_hash": "2f0a6ac984f50253b3be2eb6855d3efb338aa94f3426e00f63b150188cd5cb05", "fetched_at": "2026-08-29T08:53:45.292488+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/nbdev/json"}, {"content_hash": "49680551810c733fe5142d4a08a824ede8edd87ff48fe62d8427caba8ce96a72", "fetched_at": "2026-08-29T08:53:45.290593+00:00", "kind": "site_page", "missing": false, "url": "https://nbdev.fast.ai/getting_started.html"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.459516+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.459516+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:58:58.411972+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f4b49e4d9022a6360e5a3d907053384787986a61134fef706a594d8641439a4a", "fetched_at": "2026-08-28T04:09:15.459516+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AnswerDotAI/nbdev"}, {"content_hash": "a220886cad7dfb9ab1edacc8305b7a944d85325c5cdd204a9a18f168c2b80d17", "fetched_at": "2026-08-29T08:53:45.281592+00:00", "kind": "homepage", "missing": false, "url": "https://nbdev.fast.ai/"}, {"content_hash": "2f0a6ac984f50253b3be2eb6855d3efb338aa94f3426e00f63b150188cd5cb05", "fetched_at": "2026-08-29T08:53:45.292488+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/nbdev/json"}, {"content_hash": "49680551810c733fe5142d4a08a824ede8edd87ff48fe62d8427caba8ce96a72", "fetched_at": "2026-08-29T08:53:45.290593+00:00", "kind": "site_page", "missing": false, "url": "https://nbdev.fast.ai/getting_started.html"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.459516+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.459516+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.459516+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:58:58.411972+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f4b49e4d9022a6360e5a3d907053384787986a61134fef706a594d8641439a4a", "fetched_at": "2026-08-28T04:09:15.459516+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AnswerDotAI/nbdev"}, {"content_hash": "a220886cad7dfb9ab1edacc8305b7a944d85325c5cdd204a9a18f168c2b80d17", "fetched_at": "2026-08-29T08:53:45.281592+00:00", "kind": "homepage", "missing": false, "url": "https://nbdev.fast.ai/"}, {"content_hash": "2f0a6ac984f50253b3be2eb6855d3efb338aa94f3426e00f63b150188cd5cb05", "fetched_at": "2026-08-29T08:53:45.292488+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/nbdev/json"}, {"content_hash": "49680551810c733fe5142d4a08a824ede8edd87ff48fe62d8427caba8ce96a72", "fetched_at": "2026-08-29T08:53:45.290593+00:00", "kind": "site_page", "missing": false, "url": "https://nbdev.fast.ai/getting_started.html"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.459516+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.459516+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:58:58.411972+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f4b49e4d9022a6360e5a3d907053384787986a61134fef706a594d8641439a4a", "fetched_at": "2026-08-28T04:09:15.459516+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AnswerDotAI/nbdev"}, {"content_hash": "a220886cad7dfb9ab1edacc8305b7a944d85325c5cdd204a9a18f168c2b80d17", "fetched_at": "2026-08-29T08:53:45.281592+00:00", "kind": "homepage", "missing": false, "url": "https://nbdev.fast.ai/"}, {"content_hash": "2f0a6ac984f50253b3be2eb6855d3efb338aa94f3426e00f63b150188cd5cb05", "fetched_at": "2026-08-29T08:53:45.292488+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/nbdev/json"}, {"content_hash": "49680551810c733fe5142d4a08a824ede8edd87ff48fe62d8427caba8ce96a72", "fetched_at": "2026-08-29T08:53:45.290593+00:00", "kind": "site_page", "missing": false, "url": "https://nbdev.fast.ai/getting_started.html"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:58:58.411972+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f4b49e4d9022a6360e5a3d907053384787986a61134fef706a594d8641439a4a", "fetched_at": "2026-08-28T04:09:15.459516+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AnswerDotAI/nbdev"}, {"content_hash": "a220886cad7dfb9ab1edacc8305b7a944d85325c5cdd204a9a18f168c2b80d17", "fetched_at": "2026-08-29T08:53:45.281592+00:00", "kind": "homepage", "missing": false, "url": "https://nbdev.fast.ai/"}, {"content_hash": "2f0a6ac984f50253b3be2eb6855d3efb338aa94f3426e00f63b150188cd5cb05", "fetched_at": "2026-08-29T08:53:45.292488+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/nbdev/json"}, {"content_hash": "49680551810c733fe5142d4a08a824ede8edd87ff48fe62d8427caba8ce96a72", "fetched_at": "2026-08-29T08:53:45.290593+00:00", "kind": "site_page", "missing": false, "url": "https://nbdev.fast.ai/getting_started.html"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:58:58.411972+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f4b49e4d9022a6360e5a3d907053384787986a61134fef706a594d8641439a4a", "fetched_at": "2026-08-28T04:09:15.459516+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AnswerDotAI/nbdev"}, {"content_hash": "a220886cad7dfb9ab1edacc8305b7a944d85325c5cdd204a9a18f168c2b80d17", "fetched_at": "2026-08-29T08:53:45.281592+00:00", "kind": "homepage", "missing": false, "url": "https://nbdev.fast.ai/"}, {"content_hash": "2f0a6ac984f50253b3be2eb6855d3efb338aa94f3426e00f63b150188cd5cb05", "fetched_at": "2026-08-29T08:53:45.292488+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/nbdev/json"}, {"content_hash": "49680551810c733fe5142d4a08a824ede8edd87ff48fe62d8427caba8ce96a72", "fetched_at": "2026-08-29T08:53:45.290593+00:00", "kind": "site_page", "missing": false, "url": "https://nbdev.fast.ai/getting_started.html"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:58:58.411972+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f4b49e4d9022a6360e5a3d907053384787986a61134fef706a594d8641439a4a", "fetched_at": "2026-08-28T04:09:15.459516+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AnswerDotAI/nbdev"}, {"content_hash": "a220886cad7dfb9ab1edacc8305b7a944d85325c5cdd204a9a18f168c2b80d17", "fetched_at": "2026-08-29T08:53:45.281592+00:00", "kind": "homepage", "missing": false, "url": "https://nbdev.fast.ai/"}, {"content_hash": "2f0a6ac984f50253b3be2eb6855d3efb338aa94f3426e00f63b150188cd5cb05", "fetched_at": "2026-08-29T08:53:45.292488+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/nbdev/json"}, {"content_hash": "49680551810c733fe5142d4a08a824ede8edd87ff48fe62d8427caba8ce96a72", "fetched_at": "2026-08-29T08:53:45.290593+00:00", "kind": "site_page", "missing": false, "url": "https://nbdev.fast.ai/getting_started.html"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 99}, "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": 2480, "days_push": 7, "days_rel": 9, "gap_med": 2, "n_releases_24m": 60}, "score": 99, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}