diff --git a/templates/set/card.html b/templates/set/card.html
index a327052..3585acc 100644
--- a/templates/set/card.html
+++ b/templates/set/card.html
@@ -11,6 +11,11 @@
     data-has-minifigures="{{ (item.fields.total_minifigures > 0) | int }}" data-minifigures="{{ item.fields.total_minifigures }}"
     data-has-missing="{{ (item.fields.total_missing > 0) | int }}" data-missing="{{ item.fields.total_missing }}"
     data-has-damaged="{{ (item.fields.total_damaged > 0) | int }}" data-damaged="{{ item.fields.total_damaged }}"
+    data-has-storage="{{ item.fields.storage is not none | int }}"
+    {% if item.fields.storage is not none %}
+      data-storage="{{ item.fields.storage }}"
+      {% if item.fields.storage in brickset_storages.mapping %}data-search-storage="{{ brickset_storages.mapping[item.fields.storage].fields.name | lower }}"{% endif %}
+    {% endif %}
     {% for status in brickset_statuses %}
       {% with checked=item.fields[status.as_column()] %}
         {% if checked %}
diff --git a/templates/sets.html b/templates/sets.html
index dc1c10e..dc0a557 100644
--- a/templates/sets.html
+++ b/templates/sets.html
@@ -10,7 +10,7 @@
       <label class="visually-hidden" for="grid-search">Search</label>
       <div class="input-group">
         <span class="input-group-text"><i class="ri-search-line"></i><span class="ms-1 d-none d-xl-inline"> Search</span></span>
-        <input id="grid-search" data-search-exact="name,number,parts,theme,year" data-search-list="searchOwner,searchTag" class="form-control form-control-sm" type="text" placeholder="Set, name, number of parts, theme, year, owner, tag" value="">
+        <input id="grid-search" data-search-exact="name,number,parts,searchStorage,theme,year" data-search-list="searchOwner,searchTag" class="form-control form-control-sm" type="text" placeholder="Set, name, number of parts, theme, year, owner, storage, tag" value="">
       </div>
     </div>
     <div class="col-12">
@@ -57,6 +57,7 @@
           <option value="has-missing">Set has missing pieces</option>
           <option value="has-damaged">Set has damaged pieces</option>
           <option value="has-missing-instructions">Set has missing instructions</option>
+          {% if brickset_storage | length %}<option value="has-storage">Is in storage</option>{% endif %}
           {% for status in brickset_statuses %}
             <option value="{{ status.as_dataset() }}">{{ status.fields.name }}</option>
             <option value="-{{ status.as_dataset() }}">NOT: {{ status.fields.name }}</option>
@@ -92,6 +93,22 @@
         </select>
       </div>
     </div>
+    {% if brickset_storages | length %}
+      <div class="col-12 flex-grow-1">
+        <label class="visually-hidden" for="grid-owner">Storage</label>
+        <div class="input-group">
+          <span class="input-group-text"><i class="ri-archive-2-line"></i><span class="ms-1 d-none d-xl-inline"> Storage</span></span>
+          <select id="grid-storage" class="form-select"
+            data-filter="value" data-filter-attribute="storage"
+            autocomplete="off">
+            <option value="" selected>All</option>
+            {% for storage in brickset_storages %}
+              <option value="{{ storage.fields.id }}">{{ storage.fields.name }}</option>
+            {% endfor %}
+          </select>
+        </div>
+      </div>
+    {% endif %}
     <div class="col-12 flex-grow-1">
       <label class="visually-hidden" for="grid-tag">Tag</label>
       <div class="input-group">