Congratulations on completing the NetBox plugin tutorial.
Over the course of this guide, you built a working plugin from scratch and touched all the major pieces of the NetBox plugin framework. Along the way, you learned how to:
- create and configure a new plugin project
- define Django models for plugin data
- build tables, forms, views, and URL patterns
- render object templates in the NetBox UI
- add navigation menu items
- implement filter sets
- expose plugin data through the REST API
- expose plugin data through the GraphQL API
- add your models to NetBox global search
That is a lot of ground to cover, and you now have a solid foundation to build on.
This tutorial is only the beginning. The plugin we created is intentionally small, but the same patterns can be used to build much more capable integrations tailored to your own environment. If you already have an idea for something that would make NetBox more useful for your team, this is a great time to start experimenting with it. Begin small, keep it focused, and improve it step by step. That is how many good plugins start.
If you plan to publish a plugin for others to use, it is strongly recommended to start with the NetBox plugin cookiecutter template. It provides a production-ready project structure and includes many of the supporting pieces you will likely want in a real project, such as testing, linting, and contribution guidelines.
In general, a production-ready plugin should include:
- A clear
README.mdfile explaining how to install, configure, and use the plugin - A
CHANGELOG.mdfile to track notable changes between releases - A
LICENSEfile specifying the plugin's license - A
CONTRIBUTING.mdfile describing how others can contribute - A
pyproject.tomlfile defining the plugin's metadata and dependencies - A
tests/directory containing automated tests - A
.gitignorefile specifying which files Git should ignore
Plugin tests, although not covered in this tutorial, are an important part of building a reliable and maintainable plugin.
They help catch bugs early and give you confidence that future changes do not break existing behavior.
You can build your plugin tests on top of NetBox's utilities.testing helpers, which provide a solid foundation for writing and running tests.
From here, a good next step is to review the NetBox plugin development documentation and try extending your plugin with a feature of your own. For example, you might add more models, improve the UI, introduce background jobs, or integrate with another system. The important part is to keep building.
And remember: you are not building in isolation. NetBox has an active open-source community, and plugins are a big part of that ecosystem. Whether you publish a plugin, contribute improvements, ask questions, report issues, or simply share what you are building, you are part of the broader NetBox community.
If you want to keep learning, these resources are a great place to continue:
- NetBox plugin documentation
- NetBox development documentation
- NetBox plugins on PyPI
- Awesome NetBox
- NetDev Community Slack
If you would like to explore a more advanced implementation based on this tutorial, take a look at the NetBox ACLs plugin.