← Builds

Build · Internal

Comics Collector

A private, self-hosted catalog for a comic collection three decades deep: import the shelf, enrich every issue against two comic databases, and browse the whole run on hardware I own.

Visit the longbox showcase ↗

Personal tool · ~2,190 issues · local database enrichment · public longbox showcase

Challenge

Somewhere across thirty years the collection got ahead of me. Around 2,190 issues, most of them from the amazing era of 1978 to 1989, sat in a desktop cataloging app: every issue logged, and the app was as far as any of it went. I had just given my spirits the private, self-hosted treatment I wanted, so the comics were the obvious next collection. They raised a harder version of the same problem. There are thousands of them, and the details that make an issue worth keeping, the creators, the characters, the story, and the key issues, live scattered across databases that belong to other people.

Build

I started from the Spirit Spy recipe, a private catalog with local enrichment and a public showcase, all on my own hardware, and pointed it at the comics. Import joins the two halves of the collection's export, an XML of covers and a CSV of creators, into one catalog of every issue.

The Comics Collector catalog: a grid of covers with a publisher rail listing Marvel, DC, Harvey, and more, 2,190 issues in all
The catalog: every issue, browsable by publisher

Then comes the part that goes further than a shelf of bottles. With 2,190 issues to cover, I needed enrichment that works in bulk, so I stood up the entire Grand Comics Database locally and matched my collection against it, then layered ComicVine on top for covers, synopses, and cast. A deterministic scrub, matched on exact catalog fields, brought 2,157 of the 2,190 issues to a clean, sourced baseline in a single pass.

An issue's review detail: released date, format, creators, characters, and synopsis, each credit and character marked as verified against the databases
An issue reviewed against both databases, each credit and character checked

Outcome

The collection lives as a public showcase at comics.gogomito.com, a longbox grid where every cover fades into its indicia, browsable by publisher, era, and decade from a faceted rail. Each issue's detail page merges everything both databases know about it, with the sources kept on the entry. The banner rotates through original hero art generated locally, my own fictitious heroes.

The Comics Collection public showcase home: a bold wordmark, a banner of original hero art, a search field, and the longbox grid beginning below
The public longbox showcase, its banner rotating through original hero art
A public issue detail page for Teenage Mutant Ninja Turtles: cover, synopsis, creators, characters, and the ComicVine source
An issue's detail page, merging both databases with the source kept on the entry

Where Spirit Spy enriches one bottle at a time, Comics Collector augments a whole collection at once, and it reaches past the data too. The entire brand is documented as a living design system at comics.gogomito.com/design-system/, every component rendered from the real production stylesheet. Like Spirit Spy, it skips pricing and value on purpose. This catalog is about the era and the hunt.

The Comics Collection living design system: palette with Cape Red, Process Cyan, and Golden Age, plus type and components rendered from production code
The living design system, every component rendered from production code

The Stack