Drawered: An inventory tracking application

software

Drawered: An inventory tracking application

October 4, 2026

Intro

TL;DR; Show me the code, I just want to track my inventory! - https://github.com/banksy-git/drawered

I wanted a simple way to organise my growing collection of electronic components so I can find them when I need them.

I tried some other open-source inventory systems, but none quite fitted. Some were almost perfect but needed more server resources than I wanted to dedicate to tracking parts. Others were lean and fast, but lacked features I needed.

So I built another one.

Drawered is my LLM-coded take: a self-hosted parts inventory built as a single Go binary, with an embedded Svelte interface and a SQLite database. It supports a hierarchy of storage locations, parts spread across multiple bins, full-text search, and an audit trail.

Sign-in uses OIDC, with configurable roles and permissions.

Features

Fast, full-text search from every screen.

Screenshot of search

Browsable, searchable hierarchical location structure.

Screenshot of location browsing

Browsable, searchable hierarchical categorisation system.

Screenshot of category browsing

Easily attach multiple images, files and links to parts.

Screenshot of part attachments

Store the same part in multiple locations.

Screenshot of multi-location support

Fine-grained permissions.

Screenshot of permissions configuration

Why OIDC?

Drawered uses OIDC for sign-in because I don’t think every application should reinvent authentication. You don’t write a database engine every time you build an app, so why keep building another login system?

Password storage, account recovery, MFA, and account lifecycle management belong in a dedicated identity provider. Drawered’s job is to track parts. It delegates authentication to your identity provider and manages permissions within the application.

That does mean you need an OIDC provider to run it. For me, that’s a deliberate trade-off: proper authentication should be a first-class integration, rather than something bolted on later.

Give it a go

Check out the documentation on github.


Comments