Skip to content
jack in the loop

jack at the thrift

allbutnew

A buyer's guide to secondhand. 39 shops, one per category, each with fact-checked models, used-price ranges from dated eBay snapshots, and picks over live listings.

Most of what I'd tell a friend about buying used is boring and specific. Which Griswold skillet to look for, what a fair price is this month, what to check in the photos before you message the seller. allbutnew is that, written down, one category at a time.

The allbutnew homepage: a department-store front with a search over every model, a store directory, and picks with price ranges.

What a shop is

Each shop covers one kind of thing: cast iron, fishing reels, film cameras, fountain pens, 39 of them so far. A shop has a catalog of models with the facts sourced, a used-price range for each one, and a checklist of what to inspect. Most models also have a product photo, made by AI from real seller photos and labeled as such. On top of that sit picks: which listing on eBay right now is worth your money, and why.

Prices only come from dated snapshots of real listings, refreshed twice a week through the eBay API. Nothing is written from memory. The links to eBay are plain links. There's no affiliate program and no cut.

A model page on the cast iron shop: the Griswold No. 8 small-logo skillet with its used price, how to tell it apart, and the details.

How it gets built

I don't write the shops by hand. A pipeline of Claude Code skills does: port a category, collect listings, write the picks, make the photos, check the copy against a house voice guide, ship. Each step has checks that fail loudly, and every change goes through review and a test suite before it deploys.

One 24-hour stretch in late October is a fair sample: a homepage redesign and a Next.js upgrade across all 44 sites, each one reviewed, merged, deployed and checked live.

The day it all went down

The shops started out server-rendered on Vercel. On October 6 a crawler walked every filter URL on the browse pages, pushed the account to 31 GB of transfer against a 10 GB limit, and Vercel paused everything.

So I made it boring. Every site is now a static export served from Cloudflare, and anything a crawler can request is a cached file. The cutover took four days. Hosting costs nothing, and there's nothing left for a bot to run up.

built withNext.jsTypeScriptCloudflare WorkersSQLiteeBay Browse APIClaude CodeGemini
next, in room 01 loopFlipperTools→