AnswerDotAI/nbdev

Create delightful software with Jupyter Notebooks

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 52 minutes ago
Added to GitGenius on March 16th, 2025
Created on November 18th, 2019
Open Issues & Pull Requests: 184 (+0)
Number of forks: 516
Total Stargazers: 5,308 (+0)
Total Subscribers: 46 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 0.0 hours
Mean response time: 91.3 days
90th percentile: 494.2 days
Tracked items: 150

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 100% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Only 21% of issues opened in the past year have been closed. Three people close 90% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 96
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 770 days
Stale 30+ days: 96
Stale 90+ days: 95

Recent activity

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

Top labels

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

Most active issues this week

No issue events were indexed in the last 7 days.

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.

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.