Home Inventory

11 Apr, 2021 · #productivity

At the time when I was taking pictures with my phone, I rarely had a problem finding or identifying my stuff. But ever since I went into photography, things went out of hand pretty quickly. Every new piece of gear comes with a number of small accessories that I need once in a lifetime, but when I need it, I have no idea where it is or even how does it look like.

The time has come to put things in order. Once and for all.



  1. When I need something, I should spend little to no time looking for the thing.
  2. There shouldn’t be any random unidentifiable things floating around.


I use Notion as a database of things.

Quick spoiler how items in a database look like:

2 items from the database

The example database, that we will start building in a sec, is shared here:

You can fork it, poke it and use it as a starting point for your own thing.


Creating a database

Create a new page called Inventory and make it a database with default Table view:

Adjust initial properties:

  • Name: a name of an item. This property should be created by a Notion and can be left as is.
  • Tag: this property should be created for you as well. The only change I made is I turned its name from a plural (Tags) to a singular since I assign at most one tag to each item. E.g. Tech, Photo, Travel, etc.
  • URL: a new property of type URL to store URL of a product page to quickly access manuals, to re-order item, etc.

You can also turn off wrapping cells, so URLs wouldn't break the table's layout.

A menu under the `...` button

The initial table should look like this.


Where the heck is this thing?

The primary goal of the database is to quickly provide information on where can I find a specific item. The Notion's feature called Relations will help us with it.

Let's create the first entry.

  • Name: Keychron K3 Keyboard
  • Tag: Tech
  • URL: https://www.keychron.com/products/keychron-k3-wireless-mechanical-keyboard

This database is going to contain not only things like laptops, keyboards, cables, etc. but also entries where these things are located, such as containers, closets, desks, etc. Since the keyboard we just created is located on the work desk, let's create its entry next.

  • Name: Work Desk
  • Tag: Spot
  • URL: -

Once all the base stuff is created, the next step would be to relate 2 created entries to each other. I.e. the Keyboard is at the Work Desk and the Work Desk contains the Keyboard.

Add a new @ property of type Relation:

In the appeared window, choose the database that we're in — Inventory. And then pick an option Create a new property.

After you confirmed creation by clicking Create relation button, you should see two new properties created: @ and Related to Inventory (@).

Rename the Related to Inventory (@) one to Contains.

Open the Keychron K3 Keyboard item and update its @ field: click on it and select Work Desk.

Next, open the Work Desk entry and you should see that field Contains is set to value Keychron K3 Keyboard automatically.

It doesn't matter which field you set, @ or Contains, once one of the fields receives a value, the related field will be properly linked automatically.



One more useful relation I have in my database is the one that indicates that item X is an accessory of item Y (or other way around, Y has an accessory X). This way I can easily see that this device is compatible with the following cables or can be charged using the following batteries etc.

Such relation can be added using exactly the same technique as used for @ / Contains fields. In the same way as @ was added, add new relation property called Accessories and, when it's done, rename auto-created Related to Inventory (Accessories) property to Accessory of.



I want things I don't use often (like 90% of the stuff I have) to be hidden from sight but at the same time are easy to find when I need them. It would require some hardware.

  • Boxes. I use Ikea's.
    • Rabbla, if a box is in an interior.
    • Samla, if it's hidden in a closet.
  • Sticky tags
  • Permanent markers
  • Zip storage bags

Each box has its own unique identifier. It might be a simple number or letter, such as 1, 2, 3 or A, B, C, but I prefer generating random combinations, so in case if at some point I will want to re-shuffle boxes, I won't be suffering from |1| |3| |2| |4| situation.

I suggest generating a list of unique random identifiers and take IDs out of it as you go. You can use any online service out there to get such list.

The workflow I settled on looks like this:

  1. Figure out, what should live in a specific box and where this box should be located.
  2. Add all items that will be placed in the box to the database.
  3. Take an identifier from a generated list and put it on a sticky tag using a permanent marker.
  4. Slap this tag on the box.
  5. Add entry corresponding to this box to the database.
  6. Fill in @ field for the added box.
  7. Add each item that lives in the box to the Contains field of this box in the database.
  8. Repeat with the next box.

Let's apply this workflow to the following use-case. Keychron keyboard comes with several accessories including a keycap puller. I don't need it often and I definitely don't want things like this to hang around my work desk.

  1. There is an empty box that is inside the storage near my work desk (the latter has a corresponding entry in the database named Work Desk Storage).
  2. Add Keychron K3 Keyboard Keycap Puller entry to the database.
  3. Take ABC identifier from a generated list and put it on a sticky tag using a permanent marker.
  4. Slap this tag on the box.
  5. Add this box to the database as Rabbla Small Container: ABC.
  6. Set its @ field to the Work Desk Storage entry.
  7. Add Keychron K3 Keyboard Keycap Puller to the Contains field of Rabbla Small Container: ABC box in the database.

The result would be something like this:

Now, if you need this puller:

  1. Go to the database.
  2. Search for the keycap puller.
  3. See that it's in the Rabbla Small Container: ABC which is in the Work Desk Storage.
Here it is!

Big boxes

Big boxes fit more stuff and can be more convenient to store than a bunch of smaller boxes. But in a large box, things are more difficult to organize. E.g. I want to store accessories of 2 different backpacks in a single box plus several other things, but I don't want them to mix with each other. To sort it out, I use zip storage bags and the same old sticky tags. Each group of accessories goes into its own zip storage bag and the tag with the name of the item gets slapped to the bag.


... and one more thing ©

Use sorting. I sort my tables by Tag and by Name.

Prefix all accessories with the name of the item whose accessory this item is. E.g. Keychron K3 Keyboard Keycap Puller. So in the table, all related items are grouped together.

Place a box ID right in the name (instead of stand-alone ID property) so it's easier to spot a specific box in a relation list.

Create additional views with filters, such as for items with missing @, so you can easily spot them and clean up a mess later.

It took me around 3 weekends to get things sorted. Worth it!