nbdev
by
AnswerDotAI

Description: Create delightful software with Jupyter Notebooks

View on GitHub ↗

Summary Information

Updated 2 hours ago
Added to GitGenius on March 16th, 2025
Created on November 18th, 2019
Open Issues & Pull Requests: 182 (+0)
Number of forks: 514
Total Stargazers: 5,298 (+0)
Total Subscribers: 46 (+0)

Issue Activity (beta)

Open issues: 96
New in 7 days: 4
Closed in 7 days: 4
Avg open age: 768 days
Stale 30+ days: 96
Stale 90+ days: 93

Recent activity

Opened in 7 days: 1
Closed in 7 days: 1
Comments in 7 days: 0
Events in 7 days: 2

Top labels

  • bug (115)
  • enhancement (71)
  • waiting for response (9)
  • documentation (6)
  • breaking (4)
  • question (4)
  • in-progress (2)
  • priority (2)

Repository Insights (GitGenius)

Median issue/PR response: 0.0 hours
Mean response time: 169.3 days
90th percentile: 765.0 days
Tracked items: 157

Most active contributors

Detailed Description

nbdev is a notebook-driven development platform that enables developers to write software using Jupyter Notebooks while automatically generating documentation, tests, continuous integration, and package distribution. The core philosophy is that notebooks with lightweight markup can serve as the primary development environment, eliminating the need to manually create separate documentation, test suites, and packaging infrastructure. The project is written primarily in Jupyter Notebook format and is maintained by the fast.ai team.

The platform generates high-quality documentation automatically using Quarto and hosts it on GitHub Pages. The documentation supports LaTeX, includes search functionality, and features automatic hyperlinking with out-of-the-box support for many packages through nbdev-index. nbdev handles publishing to both PyPI and conda, automatically following Python best practices such as including only exported objects in __all__. A distinctive feature is two-way synchronization between notebooks and plaintext source code, allowing developers to use traditional IDEs for code navigation or quick edits while maintaining robust synchronization through unique notebook cell IDs that ensure nbdev-update always modifies the correct cell.

Testing in nbdev is integrated directly into the notebook workflow, with tests written as ordinary notebook cells and executed in parallel through a single command. Continuous integration is configured out-of-the-box using GitHub Actions to run tests and rebuild documentation automatically. The platform includes git-friendly notebook handling through Jupyter and Git hooks that clean unwanted metadata and render merge conflicts in human-readable format, addressing a common pain point in notebook-based development.

A major update arrived in January 2026 with nbdev3, which represents a breaking change by migrating configuration from settings.ini to pyproject.toml following modern Python packaging standards and PEP 621. The migration is automated through the nbdev-migrate-config command, and existing notebooks and code require no changes. The platform provides an extensive command-line interface with over thirty commands covering export, testing, documentation generation, version management, changelog creation, and package release workflows.

According to GitGenius activity tracking, the repository shows median issue and pull request response latency of 0.0 hours with a mean of 4062.1 hours across 157 tracked items, indicating variable response times. Bug reports represent the most active issue category with 77 tracked items, followed by enhancement requests with 44 items and breaking changes with 4 items. The primary contributor jph00 has generated 143 tracked events, with secondary contributors 2catycm and drscotthawley contributing 18 and 11 events respectively. The repository shares overlapping contributors with conda/conda, pandas-dev/pandas, and huggingface/datasets, indicating integration with major Python ecosystem projects.

nbdev works on macOS, Linux, and Unix-style operating systems, with Windows support available through WSL. The platform is designed to make debugging and refactoring easier than traditional programming environments by keeping live objects accessible throughout development. The project emphasizes that tests and documentation are first-class citizens in the development process, promoting software engineering best practices while maintaining the interactive and exploratory nature of notebook-based development.

nbdev
by
AnswerDotAIAnswerDotAI/nbdev

Repository Details

Fetching additional details & charts...