
15,186 Flashlights in One 2 MB File, Sorted Every Way at Once
A client-side flashlight catalog built from 15,186 entries scraped across 57 sources, normalized into 43 columns and shipped as one 2 MB gzipped file.
Torch is a searchable catalog of flashlights, built for the kind of buyer who cares about the specifics. It pulls together 15,186 catalog entries and lets you filter and sort across them entirely in the browser. You can dig through it at torch.directory.
The scrape
The data comes from a wide net: 51 vendor storefronts, five review sites, BudgetLightForum, and Keepa. Those sources do not agree on anything. Each vendor lists specs its own way, review sites use their own vocabulary, and price history lives somewhere else entirely. The build step normalizes all of it into 43 comparable columns, so a spec means the same thing whether it came from a storefront or a forum thread. Getting 15,186 heterogeneous entries into one consistent schema is the real work here, and it is the part that makes the catalog actually comparable instead of just large.
No backend, everything precomputed
Like the rest of the Moonshine Labs static-first catalogs, Torch has no backend. The whole dataset ships as a single 2 MB gzipped file, and the interface works against that file directly.
To keep sorting instant with no server to ask, the heavy lifting is done ahead of time. Torch precomputes 20 sort permutations, so the common ways you would want to order the list are already materialized rather than computed on the fly. Each filter supports four set-logic modes, which lets you combine criteria with real boolean intent instead of a single flat AND. The result is a catalog that stays fully client-side and responsive across fifteen thousand entries.
The source data here is thin on story, but the shape is clear: scrape widely, normalize hard, precompute the expensive views, and ship one file. That is a repeatable recipe for turning a messy corner of the web into something you can actually search.
Have something that needs building, or stabilizing?
These notes are the work log. The paid work runs through Moonshine Labs, my product and engineering studio. Tell us what you're building, or grab a call.
Work with us →