GeezerVison is showing nbdev.fast.ai — nbdev – Create delightful software with Jupyter Notebooks
Skip to main content
Create delightful software
with Jupyter Notebooks
Write, test, document, and distribute software packages and technical articles — all in one place, your notebook.
Get started

Interactive programming
without compromise
Traditional programming environments throw away the result of your exploration in REPLs or notebooks. nbdev makes exploration an integral part of your workflow, all while promoting software engineering best practices.

Beautiful technical documentation and scientific articles with Quarto

Out-of-the-box continuous integration with GitHub Actions

Publish code to PyPI and conda, and prose to GitHub Pages

Two-way sync with your favourite IDEs

Write prose, code, and tests in notebooks — no context-switching

Git-friendly notebooks: human-readable merge conflicts; no unwanted metadata
Here’s what experts are saying

Chris Lattner
Inventor of Swift and LLVM
I really do think [nbdev] is a huge step forward for programming environments.

Fernando Pérez
Creator of Jupyter
[nbdev] should be celebrated and used a lot more — I have kept a tab with your original nbdev blog post open for months in Chrome because of how often I refer to it and point others to this work.

David Berg
Software Engineer, Netflix
Prior to using nbdev, documentation was the most cumbersome aspect of our software development process… Using nbdev allows us to spend more time creating rich prose around the many code snippets guaranteeing the whole experience is robust.
nbdev has turned what was once a chore into a natural extension of the notebook-based testing we were already doing.

Erik Gaasedelen
Software Engineer, Lyft
I use this in production at my company. It’s an awesome tool… nbdev streamlines everything so I can write docs, tests, and code all in one place… The packaging is also really well thought out.
From my point of view it is close to a Pareto improvement over traditional Python library development.

Roxanna Pourzand
Product Manager, Transform
We’re so excited about using nbdev. Our product is technical so our resulting documentation includes a lot of code-based examples. Before nbdev, we had no way of maintaining our code examples and ensuring that it was up-to-date for both command inputs and outputs. It was all manual. With nbdev, we now have this under control in a sustainable way. Since we’ve deployed these docs, we also had a situation where we were able to identify a bug in one of our interfaces, which we found by seeing the error that was output in the documentation.

Hugo Bowne-Anderson
Head of Developer Relations, Outerbounds
Nbdev has transformed the way we write documentation. Gone are the days of worrying about broken code examples when our API changes or due to human errors associated with copying & pasting code into markdown files. The authoring experience of nbdev is also powerful, allowing us to write prose and live code in a unified interface, which allows more experimentation with technical content. On top of this, nbdev allows us to include unit tests in our documentation which mitigates the burden of maintaining the docs over time.