# answerdotai/nbdev

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/answerdotai-nbdev).**

5,300 stars · 516 forks · Jupyter Notebook · Apache-2.0

## Links

- GitHub: https://github.com/AnswerDotAI/nbdev
- Homepage: https://nbdev.fast.ai/
- awesome-repositories: https://awesome-repositories.com/repository/answerdotai-nbdev.md

## Topics

`conda` `developer-tools` `documentation-generator` `documentation-tool` `fastai` `jupyter` `jupyter-notebooks` `literate-programming` `nbdev` `pypi` `python` `python-modules`

## Description

This project is a comprehensive framework for literate programming that enables developers to build production-ready Python libraries entirely within Jupyter Notebooks. By treating notebooks as the primary source of truth, it integrates code, documentation, and testing into a unified development pipeline that exports directly to standard Python modules.

The framework distinguishes itself through specialized tooling designed to overcome the inherent challenges of using notebooks in professional software engineering. It includes custom Git hooks and merge drivers that sanitize volatile notebook metadata, effectively eliminating noisy diffs and resolving merge conflicts. Furthermore, it utilizes cell-based directives to control code visibility, testing, and documentation generation, allowing developers to maintain clean, modular source code while working in an interactive environment.

Beyond its core development workflow, the project provides a robust suite of automation tools for the entire software lifecycle. This includes a static site engine for rendering publication-grade documentation with support for mathematical equations and symbol cross-referencing, as well as utilities for managing project dependencies, versioning, and automated testing. It also supports continuous integration workflows for deploying documentation and publishing packages to standard registries.

The project provides a standardized bootstrapping process to initialize new repositories with pre-configured pipelines for testing, documentation, and version control.

## Tags

### Development Tools & Productivity

- [Notebook Development Frameworks](https://awesome-repositories.com/f/development-tools-productivity/notebook-development-frameworks.md) — Provides a comprehensive framework for building production-ready Python libraries within Jupyter Notebooks.
- [API Documentation Generators](https://awesome-repositories.com/f/development-tools-productivity/api-documentation-generators.md) — Renders technical documentation and entity links directly from source code without requiring distributable packages. ([source](https://nbdev.fast.ai/tutorials/docs_only.html.md))
- [Notebook Environments](https://awesome-repositories.com/f/development-tools-productivity/code-execution-environments/notebook-execution-environments/notebook-environments.md) — Provides an environment where source code and documentation coexist in executable notebooks.
- [Notebook Merge Drivers](https://awesome-repositories.com/f/development-tools-productivity/git-merge-strategy-configurations/notebook-merge-drivers.md) — Installs hooks that clean metadata and resolve merge conflicts to maintain notebook integrity. ([source](https://nbdev.fast.ai/tutorials/tutorial.html.md))
- [Python Package Automation](https://awesome-repositories.com/f/development-tools-productivity/python-package-automation.md) — Automates the entire lifecycle of releasing Python libraries to public and private repositories. ([source](https://nbdev.fast.ai/tutorials/modular_nbdev.html.md))
- [Python Package Lifecycle Management](https://awesome-repositories.com/f/development-tools-productivity/python-package-lifecycle-management.md) — Automates the entire Python library lifecycle, including project bootstrapping, testing, versioning, and publishing to package registries.
- [Notebook Versioning](https://awesome-repositories.com/f/development-tools-productivity/version-control-configurations/notebook-versioning.md) — Cleans metadata and resolves merge conflicts automatically to ensure compatibility with version control systems. ([source](https://nbdev.fast.ai/tutorials/tutorial.html))
- [Git Integration](https://awesome-repositories.com/f/development-tools-productivity/version-control-configurations/notebook-versioning/git-integration.md) — Integrates notebooks with Git using specialized hooks and drivers for version control. ([source](https://nbdev.fast.ai/tutorials/modular_nbdev.html.md))
- [Automated Merge Conflict Resolvers](https://awesome-repositories.com/f/development-tools-productivity/version-control-repository-tools/version-control-managers/repository-utilities/automated-merge-conflict-resolvers.md) — Installs specialized hooks to resolve merge conflicts and maintain a clean state for notebook files. ([source](https://nbdev.fast.ai/tutorials/modular_nbdev.html.md))
- [API Documentation Rendering](https://awesome-repositories.com/f/development-tools-productivity/api-documentation-rendering.md) — Generates visual representations of function and class signatures using standard formatting. ([source](https://nbdev.fast.ai/tutorials/modular_nbdev.html.md))
- [Automated Documentation Generators](https://awesome-repositories.com/f/development-tools-productivity/code-quality-analysis/static-analysis-engines/static-analysis-tools/code-quality-tools/automated-documentation-generators.md) — Automatically generates technical documentation and API references from notebook content.
- [Package Publishing](https://awesome-repositories.com/f/development-tools-productivity/dependency-managers/artifact-distribution-systems/package-publishing.md) — Automates the distribution of code projects to public repositories using project configuration files. ([source](https://nbdev.fast.ai/tutorials/tutorial.html.md))
- [Dependency Installers](https://awesome-repositories.com/f/development-tools-productivity/dependency-managers/installation-resolution-utilities/dependency-installers.md) — Configures required and optional software dependencies to ensure consistent environments for installation. ([source](https://nbdev.fast.ai/tutorials/tutorial.html))
- [Python Package Managers](https://awesome-repositories.com/f/development-tools-productivity/dependency-managers/python-package-managers.md) — Uploads generated libraries to package managers to make projects installable by users. ([source](https://nbdev.fast.ai/tutorials/tutorial.html))
- [Visibility Directives](https://awesome-repositories.com/f/development-tools-productivity/documentation-generators/visibility-directives.md) — Hides specific cells, code lines, or output streams based on defined keywords or directives. ([source](https://nbdev.fast.ai/api/processors.html.md))
- [Documentation Previewers](https://awesome-repositories.com/f/development-tools-productivity/documentation-previewers.md) — Renders technical documentation locally in real-time to visualize changes while editing notebooks. ([source](https://nbdev.fast.ai/tutorials/tutorial.html.md))
- [Notebook Metadata Extraction](https://awesome-repositories.com/f/development-tools-productivity/language-servers/notebook-language-support/notebook-metadata-extraction.md) — Parses structured content from notebook cells to generate metadata for documentation and publishing. ([source](https://nbdev.fast.ai/api/frontmatter.html.md))
- [Notebook Cell Processors](https://awesome-repositories.com/f/development-tools-productivity/notebook-cell-processors.md) — Automates documentation by inserting warnings, API links, and function signatures into generated content. ([source](https://nbdev.fast.ai/api/processors.html.md))
- [Notebook Content Transformations](https://awesome-repositories.com/f/development-tools-productivity/notebook-content-transformations.md) — Programmatically modifies notebook cells to prepare them for rendering or documentation generation. ([source](https://nbdev.fast.ai/api/cli.html.md))
- [Notebook Tooling](https://awesome-repositories.com/f/development-tools-productivity/notebook-tooling.md) — Parses notebook files and applies filtering rules to generate structured documentation from interactive documents. ([source](https://nbdev.fast.ai/api/serve.html.md))
- [Structured Documentation Generation](https://awesome-repositories.com/f/development-tools-productivity/openapi-configurations/documentation-generators/openapi-specification-generators/structured-documentation-generation.md) — Converts notebook content into structured, human-readable project documentation and readme files. ([source](https://nbdev.fast.ai/api/quarto.html.md))
- [Package Versioning Utilities](https://awesome-repositories.com/f/development-tools-productivity/package-versioning-utilities.md) — Automates the incrementing of semantic version numbers for software releases. ([source](https://nbdev.fast.ai/api/config.html.md))
- [Project Bootstrapping Templates](https://awesome-repositories.com/f/development-tools-productivity/project-bootstrapping-templates.md) — Initializes empty git repositories with pre-configured pipelines for packaging, documentation, and automation. ([source](https://nbdev.fast.ai/tutorials/tutorial.html.md))
- [Project Documentation](https://awesome-repositories.com/f/development-tools-productivity/project-documentation.md) — Processes notebooks to create static websites, documentation guides, and configuration settings for project sites. ([source](https://nbdev.fast.ai/api/quarto.html.md))
- [Automated Deployment Pipelines](https://awesome-repositories.com/f/development-tools-productivity/project-documentation/automated-deployment-pipelines.md) — Automates the building and publishing of documentation to hosting services via continuous integration pipelines. ([source](https://nbdev.fast.ai/tutorials/docs_only.html.md))
- [Dependency File Generators](https://awesome-repositories.com/f/development-tools-productivity/project-file-generators/build-configuration-file-generators/dependency-file-generators.md) — Generates dependency requirements files automatically from project configuration. ([source](https://nbdev.fast.ai/api/release.html.md))
- [Project Initializers](https://awesome-repositories.com/f/development-tools-productivity/project-initializers.md) — Generates new project structures from templates by configuring metadata based on user input. ([source](https://nbdev.fast.ai/api/cli.html.md))
- [Project Metadata Configurations](https://awesome-repositories.com/f/development-tools-productivity/project-metadata-configurations.md) — Generates and updates project configuration files including package metadata and versioning settings. ([source](https://nbdev.fast.ai/api/config.html.md))
- [Documentation Cell Injection](https://awesome-repositories.com/f/development-tools-productivity/project-scaffolding-config-code-generation/code-generation/automated-documentation-generation/documentation-cell-injection.md) — Automatically inserts and executes documentation cells after exported code to display docstrings. ([source](https://nbdev.fast.ai/api/processors.html.md))
- [Project Initializers](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/cli-tooling-frameworks/cli-tooling/project-lifecycle-orchestrators/project-initializers.md) — Generates standardized repository structures with pre-configured build, test, and documentation pipelines. ([source](https://nbdev.fast.ai/tutorials/tutorial.html.md))
- [Automated Cleaning](https://awesome-repositories.com/f/development-tools-productivity/version-control-configurations/notebook-versioning/automated-cleaning.md) — Automatically strips transient data from notebooks during the version control lifecycle. ([source](https://nbdev.fast.ai/api/clean.html.md))
- [Automated Trust Management](https://awesome-repositories.com/f/development-tools-productivity/version-control-configurations/notebook-versioning/automated-trust-management.md) — Automates the trust status of notebooks to enable interactive widget functionality after merges. ([source](https://nbdev.fast.ai/tutorials/git_friendly_jupyter.html.md))

### Artificial Intelligence & ML

- [Notebook-to-Module Exporters](https://awesome-repositories.com/f/artificial-intelligence-ml/codebase-summaries-for-llms/codebase-to-llm-text-converters/codebase-to-text-converters/notebook-to-text-converters/notebook-to-module-exporters.md) — Extracts code from notebook cells to generate distributable Python modules. ([source](https://nbdev.fast.ai/api/cli.html.md))
- [Notebook-to-Script Converters](https://awesome-repositories.com/f/artificial-intelligence-ml/codebase-summaries-for-llms/codebase-to-llm-text-converters/codebase-to-text-converters/notebook-to-script-converters.md) — Transforms notebook cells into standalone executable scripts or modules. ([source](https://nbdev.fast.ai/api/cli.html.md))

### Part of an Awesome List

- [Documentation and Literate Programming](https://awesome-repositories.com/f/awesome-lists/devtools/documentation-and-literate-programming.md) — Integrates code, documentation, and testing into a unified pipeline for literate programming.
- [Project Guide Generation](https://awesome-repositories.com/f/awesome-lists/devtools/project-scaffolding-and-metadata/metadata-generation/project-guide-generation.md) — Automates the creation of essential project-level files like READMEs and contributing guides directly from source notebooks. ([source](https://nbdev.fast.ai/api/quarto.html.md))

### Content Management & Publishing

- [Code-to-Documentation Extractors](https://awesome-repositories.com/f/content-management-publishing/code-to-documentation-extractors.md) — Extracts docstrings and code cells to create technical documentation including hyperlinks and details. ([source](https://nbdev.fast.ai/tutorials/tutorial.html.md))
- [Cell Metadata](https://awesome-repositories.com/f/content-management-publishing/metadata-tagging/cell-metadata.md) — Extracts metadata from special comment tags in notebook cells to control processing and export behavior. ([source](https://nbdev.fast.ai/api/process.html.md))
- [Technical Document Parsing](https://awesome-repositories.com/f/content-management-publishing/multi-format-document-rendering/technical-document-parsing.md) — Renders notebooks into publication-grade documentation with support for mathematical equations, diagrams, and cross-references. ([source](https://nbdev.fast.ai/tutorials/tutorial.html))
- [Document Processing](https://awesome-repositories.com/f/content-management-publishing/content-processing-transformation/document-processing-conversion/document-processing.md) — Renders notebooks into documentation format by applying filters to include or skip content. ([source](https://nbdev.fast.ai/api/serve.html.md))
- [Parameter Tables](https://awesome-repositories.com/f/content-management-publishing/content-processing-transformation/document-processing-conversion/document-processing-tools/document-automation-interfaces/document-parsing-services/docstring-metadata-extractors/documentation-generators/parameter-tables.md) — Generates structured parameter tables for functions by parsing type annotations and docstrings. ([source](https://nbdev.fast.ai/tutorials/best_practices.html.md))
- [Documentation Hosting](https://awesome-repositories.com/f/content-management-publishing/documentation-knowledge-management/documentation-hosting.md) — Publishes documentation sites to hosting platforms as part of the automated deployment workflow. ([source](https://nbdev.fast.ai/tutorials/docs_only.html.md))
- [Technical Documentation](https://awesome-repositories.com/f/content-management-publishing/documentation-knowledge-management/technical-documentation.md) — Generates technical documentation from notebook content with support for equations, cross-references, and media. ([source](https://nbdev.fast.ai/tutorials/tutorial.html))
- [Documentation UI Components](https://awesome-repositories.com/f/content-management-publishing/documentation-ui-components.md) — Creates formatted markdown elements like buttons and styled containers for website rendering. ([source](https://nbdev.fast.ai/api/qmd.html.md))
- [Symbol Link Conversions](https://awesome-repositories.com/f/content-management-publishing/markdown-to-document-conversion/symbol-link-conversions.md) — Automatically converts code symbols within markdown text into clickable cross-references between documentation pages. ([source](https://nbdev.fast.ai/tutorials/best_practices.html.md))
- [Directive-Based Processors](https://awesome-repositories.com/f/content-management-publishing/metadata-tagging/cell-metadata/directive-based-processors.md) — Uses cell-based directives to control code visibility, testing, and documentation generation.
- [Tag-Based Cell Filters](https://awesome-repositories.com/f/content-management-publishing/metadata-tagging/cell-metadata/tag-based-cell-filters.md) — Uses cell-level tags to control code visibility and documentation generation during the export process.
- [Notebook-to-Static-Site Generators](https://awesome-repositories.com/f/content-management-publishing/static-site-generators/notebook-to-static-site-generators.md) — Renders notebook content into publication-grade static websites with support for equations and cross-referencing.

### Data & Databases

- [Module Extraction](https://awesome-repositories.com/f/data-databases/horizontal-database-scaling/multi-region-scaling/cell-based-scaling/notebook-cell-execution/module-extraction.md) — Transforms notebook cells into standard Python modules by parsing source code and markdown docstrings.
- [Version Control Sanitization](https://awesome-repositories.com/f/data-databases/notebook-automation-tools/version-control-sanitization.md) — Provides automated git hooks to strip volatile notebook metadata, ensuring clean diffs and reducing merge conflicts.
- [Notebook Automation Tools](https://awesome-repositories.com/f/data-databases/notebook-automation-tools.md) — Automates the exporting, testing, and cleaning of notebook files for publication or deployment. ([source](https://nbdev.fast.ai/api/quarto.html.md))
- [Metadata Cleaning](https://awesome-repositories.com/f/data-databases/notebook-automation-tools/metadata-cleaning.md) — Removes unnecessary metadata and cell outputs to maintain clean formatting and reduce version control noise. ([source](https://nbdev.fast.ai/api/clean.html.md))
- [Bidirectional Module Sync](https://awesome-repositories.com/f/data-databases/notebook-formatters/notebook-content-synchronization/bidirectional-module-sync.md) — Propagates bug fixes and code changes from exported modules back into the original notebook source cells. ([source](https://nbdev.fast.ai/api/sync.html.md))

### DevOps & Infrastructure

- [Python Distribution Packaging](https://awesome-repositories.com/f/devops-infrastructure/python-distribution-packaging.md) — Converts notebook files into structured Python packages ready for distribution and installation. ([source](https://nbdev.fast.ai/tutorials/tutorial.html))
- [Package Distribution](https://awesome-repositories.com/f/devops-infrastructure/package-distribution.md) — Automates the distribution of built software packages to public repositories for installation. ([source](https://nbdev.fast.ai/tutorials/tutorial.html))
- [PyPI Uploaders](https://awesome-repositories.com/f/devops-infrastructure/python-distribution-packaging/pypi-uploaders.md) — Builds and uploads Python packages to the Python Package Index for public distribution. ([source](https://nbdev.fast.ai/api/release.html.md))

### Programming Languages & Runtimes

- [Notebook-to-Module Converters](https://awesome-repositories.com/f/programming-languages-runtimes/notebook-to-module-converters.md) — Converts notebook files into executable modules by extracting code and managing package structure. ([source](https://nbdev.fast.ai/tutorials/tutorial.html.md))
- [Notebook-to-Module Exporters](https://awesome-repositories.com/f/programming-languages-runtimes/notebook-to-module-exporters.md) — Converts notebook cells into modules while generating docstrings and managing exports. ([source](https://nbdev.fast.ai/tutorials/tutorial.html.md))
- [Notebook-to-Module Exporters](https://awesome-repositories.com/f/programming-languages-runtimes/notebook-to-module-exporters/notebook-to-module-exporters.md) — Converts notebook cells into standard Python modules for distribution and import.
- [Notebook-to-Module Extractors](https://awesome-repositories.com/f/programming-languages-runtimes/notebook-to-module-extractors.md) — Extracts source code cells from notebooks to create standard, distributable Python modules. ([source](https://nbdev.fast.ai/api/maker.html.md))
- [Absolute to Relative Import Converters](https://awesome-repositories.com/f/programming-languages-runtimes/module-path-resolution/import-path-resolution/relative-import-resolvers/absolute-to-relative-import-converters.md) — Converts absolute module paths into relative import statements based on the file system location. ([source](https://nbdev.fast.ai/api/maker.html.md))
- [Python Module Initializers](https://awesome-repositories.com/f/programming-languages-runtimes/python-module-initializers.md) — Adds initialization files to project directories to ensure proper module discovery and package structure. ([source](https://nbdev.fast.ai/api/config.html.md))

### Software Engineering & Architecture

- [API Documentation Generators](https://awesome-repositories.com/f/software-engineering-architecture/api-documentation-generators.md) — Renders comprehensive technical documentation by extracting function and class signatures alongside docstrings. ([source](https://nbdev.fast.ai/tutorials/modular_nbdev.html.md))
- [Class Method Documenters](https://awesome-repositories.com/f/software-engineering-architecture/compile-time-code-generation/dynamic-method-generation/class-method-documenters.md) — Generates documentation for class methods by invoking rendering tools and decorators during the build process. ([source](https://nbdev.fast.ai/tutorials/best_practices.html.md))
- [Expected Error Handling](https://awesome-repositories.com/f/software-engineering-architecture/error-handling-strategies/monadic-error-handling/expected-error-handling.md) — Verifies that specific code paths raise expected exceptions by executing them in a controlled environment. ([source](https://nbdev.fast.ai/tutorials/best_practices.html.md))

### Testing & Quality Assurance

- [Notebook Execution Testing](https://awesome-repositories.com/f/testing-quality-assurance/notebook-execution-testing.md) — Executes notebook code cells as automated tests to verify correctness while allowing selective cell skipping. ([source](https://nbdev.fast.ai/tutorials/modular_nbdev.html.md))
- [Test Suite Execution](https://awesome-repositories.com/f/testing-quality-assurance/test-suite-execution.md) — Executes code cells as independent test suites to verify software behavior. ([source](https://nbdev.fast.ai/tutorials/best_practices.html.md))
- [Error Handling](https://awesome-repositories.com/f/testing-quality-assurance/debugging-diagnostics/error-handling.md) — Verifies that code blocks raise expected exceptions during automated test execution. ([source](https://nbdev.fast.ai/tutorials/best_practices.html.md))
- [Documentation Integrity Testing](https://awesome-repositories.com/f/testing-quality-assurance/documentation-integrity-testing.md) — Validates the accuracy and consistency of documentation content through automated checks. ([source](https://nbdev.fast.ai/tutorials/docs_only.html.md))
- [Notebook-Based Test Runners](https://awesome-repositories.com/f/testing-quality-assurance/notebook-based-test-runners.md) — Runs individual code cells as tests to verify logic and ensure reliable output. ([source](https://nbdev.fast.ai/tutorials/tutorial.html.md))
- [Notebook State Validation](https://awesome-repositories.com/f/testing-quality-assurance/notebook-execution-testing/notebook-state-validation.md) — Ensures repository consistency by cleaning and exporting notebooks automatically during the commit process. ([source](https://nbdev.fast.ai/tutorials/pre_commit.html.md))
- [Parallel Test Execution](https://awesome-repositories.com/f/testing-quality-assurance/notebook-execution-testing/parallel-test-execution.md) — Optimizes validation time by executing multiple notebook test suites concurrently using file pattern matching.
- [Execution Assertions](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/assertions-and-validation/assertion-validation-utilities/assertion-libraries/execution-assertions.md) — Uses specialized assertion utilities to verify expected behavior within notebook code cells during test execution. ([source](https://nbdev.fast.ai/tutorials/best_practices.html.md))

### Education & Learning Resources

- [Documentation Test Runners](https://awesome-repositories.com/f/education-learning-resources/educational-resources/reference-and-media/books-docs-reference/code-examples/documentation-test-runners.md) — Executes code blocks embedded within documentation to verify that examples and tutorials remain accurate. ([source](https://nbdev.fast.ai/tutorials/docs_only.html.md))

### Networking & Communication

- [Source Code Synchronizers](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/distributed-computing/data-synchronization-consistency/distributed-file-synchronization/bidirectional-folder-synchronization/notebook-file-synchronizations/source-code-synchronizers.md) — Synchronizes manual edits made in exported source code files back to the original notebook source. ([source](https://nbdev.fast.ai/api/sync.html.md))

### Scientific & Mathematical Computing

- [Equation Renderers](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/mathematical-typesetting-engines/mathematical-typesetting/equation-renderers.md) — Displays LaTeX-style math equations inline or as blocks within generated documentation. ([source](https://nbdev.fast.ai/tutorials/tutorial.html.md))

### System Administration & Monitoring

- [Filesystem Change Monitors](https://awesome-repositories.com/f/system-administration-monitoring/filesystem-change-monitors.md) — Watches directories for file modifications and triggers automated exports whenever changes are detected. ([source](https://nbdev.fast.ai/api/cli.html.md))
