It started, as side projects do, with another side project. I'd been playing with Hermes Agent and watching it produce things — reports, generated images, scraped CSVs, scratch notes. Useful stuff. And every time, the same nagging question: where does this go? The desktop wasn't going to cut it. Neither was a folder I'd forget about by Tuesday. I wanted somewhere I could throw anything at and trust would still be there in a month — organized, addressable, mine. What I actually wanted was an S3 bucket on my own hardware. A bit of searching led me to Garage — a self-hosted, S3-compatible object store from Deuxfleurs. Lightweight, replicated, runs happily on a couple of cheap boxes. Exactly the shape I wanted. I got it running. It worked. And then I hit the part nobody talks about: how do you actually look at your stuff? The official path is the garage CLI plus something like mc or aws s3 . Fine — but a small wall of friction every time I just wanted to glance at what the agent dumped overnight. I didn't want to aws s3 ls my way to an answer. I wanted to open a tab. So I built one. A web UI in front of Garage with a low, specific bar: I called it Door. Your garage door. Still very early and actively in development — this started as tooling for my own side projects and agent workflows. But it's already become one of those tabs I keep open all day. A web-based administration interface for Garage — a self-hosted S3-compatible distributed object store. Built with React 19, Vite 6, shadcn/ui, TanStack Query, and the Garage v2 admin API.
ECAA-workflow: deterministic workflow compiler for FAIR bioinformatics