// the find
inventree/InvenTree
Open Source Inventory Management System
InvenTree is a self-hosted inventory and parts management system aimed at makers, small manufacturers, and electronics hobbyists who need to track physical stock, manage BOMs, and handle purchase/sales orders. It's a Django REST API backend with a React frontend, a companion mobile app, and a plugin system for extensibility. If you're drowning in a spreadsheet of resistors and capacitors, this is the kind of tool that exists to fix that.
The data model is genuinely well-thought-out: parts, stock locations, BOM hierarchies, and supplier relationships are first-class concepts rather than bolted-on afterthoughts. The REST API is fully documented with an OpenAPI schema, which means integrating with external tools (label printers, ERP systems, custom dashboards) is straightforward without forking the project. The plugin system is real — you can hook into model events, add custom UI panels, and extend the API without patching core code. CI hygiene is solid: migration checks, import/export round-trip tests, and flakiness tracking are all running in GitHub Actions.
The tech stack split is a liability at small scale — you're running Django Q for background tasks, Redis for caching, and a full React SPA, which means a 'simple' self-hosted install has five moving parts before you even touch your data. The bare-metal install path relies on a bash script pulling from the internet, which is fine until it isn't. The frontend is mid-migration from a legacy Django-template UI to React, and the two coexist in the codebase right now, meaning some pages feel modern and others don't. Multi-tenancy is absent — one InvenTree instance serves one organization, so if you want to run this as a shared service for multiple teams you're on your own with reverse proxies and separate databases.