Home Inventory Taxonomy
December 20, 2025 · View on GitHub
In December 2025 I forked Homebox to create a private modified version to better reflect how I was storing things at home (and how, in turn, a useful inventory system would operate).
Before creating database migrations and changing the schema, I thought a little bit about the different things I wanted to add to the system.
For example:
I began using Homebox primarily because I hold a large inventory of electronic and technical equipment for business and personal use, and retrieving things like specialized cables had become almost impossible.
However, the original project didn't have a box as an entity type.
I began keeping track of things that are in the car and things in other properties. Here too, I thought it made more sense to define these as top level entities so that the relations between entities could resemble reality as closely as possible.
Applying these updates and editing the frontend to expose these in breadcrumbs has made the system more practical for me.
Hierarchy Structure
1. Property → Your home, office, storage unit, car
└── 2. Location → Rooms, spaces (bedroom, garage, patio)
└── 3. Storage Unit → Furniture (bookshelf, cabinet, desk)
└── 4. Shelf/Compartment → Subdivisions (shelf 3, drawer 2)
└── 5. Container → Movable boxes (plastic bin, cardboard box)
└── 6. Organizer → Small holders (pouch, storage cup)
└── 7. Item → The actual things you own
└── 8. Sub-Item → Components of kits/sets
Key Features
- Flexible Hierarchy: Use only the levels you need - items can exist at any level
- PostgreSQL Schema: Complete database schema with foreign keys, constraints, and indexes
- Practical Guidelines: Clear rules on what to track vs. what not to track
- Edge Case Examples: Guidance on consumables, kits, bulk items, and more
- Query Examples: SQL queries for finding items, generating paths, and reporting
Documentation
-
SCHEMA.md - Complete schema definition with:
- All 8 hierarchy levels and entity types
- PostgreSQL table definitions
- Practical tracking limits and edge cases
- Example data and queries
-
hierarchy-levels/ - Individual markdown files defining each level:
- property.md - Top-level properties
- location.md - Rooms and spaces
- storage-unit.md - Large furniture
- shelves.md - Subdivisions
- boxes.md - Containers
- holders.md - Small organizers
Core Principles
1. No 'De Minimis' Tracking
If you were to stretch the concept of hierarchal inventory management in the home context to its fullest extent, you would reach some really crazy places.
For example, you could argue that a box of medication is an asset in every individual pill is a subasset! Clearly nobody has time for this level of "organization", nor would it be in any way helpful.
The idea in defining this hierarchy is not to create a system that's insanely rigid. Rather, it's to reflect how things are actually stored in your typical house.
The taxonomy is based on using Homebox for the past number of years and remembering various workarounds I implemented.
2. Use Sub-Items for Kits
For valuable items with important components (microphone systems, camera kits), use the sub-item relationship.
Example:
- Item: "Rode Wireless GO II Microphone System"
- Sub-Item: "Receiver Unit"
- Sub-Item: "Transmitter 1"
- Sub-Item: "Transmitter 2"
3. Flexible Location Tracking
Items can be placed at any level. A laptop might sit directly in a location, while a USB drive might be in an organizer, in a container, on a shelf, in a storage unit, in a location.
4. Single Parent Rule
Every entity has exactly one parent. Database constraints enforce this at the schema level.
Database Technology
- PostgreSQL - Relational database with strong constraint support
- Foreign keys with CASCADE deletes
- CHECK constraints for type validation
- Indexes on commonly queried fields
- Timestamps for audit trails
Use Cases
This taxonomy is designed for:
- Home inventory management (insurance, organization)
- Moving and relocation
- Estate planning and asset tracking
- Multi-property management
- Small business inventory
Example: Finding a USB Drive
Scenario: You need to find your Clonezilla bootable USB drive.
Hierarchy:
Home (123 Main St)
└── Basement
└── Metal Shelving Unit #1
└── Shelf 3 (from top)
└── Electronics Box #3
└── USB Drive Pouch #1
└── Clonezilla Bootable USB Drive
You now know exactly where to look: Go to basement, shelving unit #1, third shelf from top, electronics box #3, inside the USB pouch.