Sorry about that. State pages were doing live aggregates per request and the HN spike killed them. Pre-rendered overnight; Colorado loads instantly now.
HN user
scarsam
Hadn't come across govauctions.app before today. Idea came out of a weekly idea bot I run; turns out the same gap was obvious enough that two of us built for it within a few weeks. Well done player_piano!
Maybe some chrome extension causing this on your end?
You bet!
Just shipped DC.
Not that I've built. The UK has GovBuying but that's procurement, not surplus. If you know of an aggregator I'd be curious.
Not yet. Plain Postgres FTS today. Will add -term exclusion.
Easy ship. Will get state, category, and ending-soon feeds out this week.
On the list, in next week's batch with Guam. Feel free to drop some of the ones you would like to get included!
Deal of the Day is whatever scored highest yesterday. Sometimes glamorous, often a golf cart.
Some are real bargains, some are landlocked or carry HOA back-fees not in the listing. The good ones tend to disappear in the first hour.
On the list. Blocker is geocoding coverage; not all sources publish lat/long and address quality varies. Backfill in progress.
Yes, queries are wrapped in unstable_cache (using Next.js) (5min TTL); the box was state landing pages doing aggregates uncached. Pre-rendered those overnight.
Should be working better now.
Should be quicker now!
Tuned the ISR cache, should be quicker now!
Caught me with the state pages doing live aggregates per request. Spent yesterday pre-rendering them and tuning the ISR caches. Should feel sharper now.
Caught me with the state pages doing live aggregates per request. Spent yesterday pre-rendering them and tuning the ISR caches. Should feel sharper now.
Fixing today. Categories should render an empty state with a signup prompt rather than a blank page.
Real bug. Adapter wasn't reading "lot closed" pages and was relying on a 7-day stale window. Tightened to 5 days plus a 30-min priority refresh on anything stale > 48h. Each adapter now flips status on the source's signal directly.
Fair. The sub-cron only refreshed lots in the next 24h. Tightened it last night: anything ending soon refreshes every 30min, and anything not seen in 48h gets re-checked. Should be much closer to source on endings now.
Thanks for flagging. The source's free-text city field gets used directly when I should be deriving from the zip. Adding a zip-to-city normalization step. Will fix.
That's the kind of listing that earns its CDN cache.
US government auctions are scattered across at least 28 platforms. GSA sells decommissioned federal fleet. DLA Disposition moves military gear. The US Marshals front seized property through bid4assets. PublicSurplus runs school district and state-agency lots. GovDeals fronts thousands of county and municipal agencies. Fannie Mae and HUD auction foreclosed homes. None of these sites index together, and most have search UX that lost a fight with 2008.
So I scraped them all and put one search box in front. 180,276 active listings as of today, normalized into a shared schema in Postgres with full-text search. About 53,000 new listings come in every week.
A few real things you can buy this week, all live in the data:
- A 2000 Bell 430 helicopter (executive model), $250k starting, 0 bids: https://www.govdeals.com/asset/8103/23762
- A 1985 Cessna 182R aircraft in Missouri, $33k starting, 0 bids: https://www.govdeals.com/asset/36476/430
- An M75 APC armored personnel carrier on Ritchie Bros, no bids yet: https://www.rbauction.com/pdp/armored-tank-m75-apc-personnel...
- A Rolls-Royce ship thruster, never used, $500k starting: https://www.govdeals.com/asset/247/16144
- A 2.3 kg iridium-platinum ingot (police seizure on PropertyRoom), 52 bids, currently $175k: https://www.propertyroom.com/l/iridium-platinum-ingot-ir90-p...
- A 1927 Seagrave fire truck, "runs, drives, and titled," $24k, 0 bids: https://www.govdeals.com/asset/285/16223
- A truck-mounted forklift from a manufacturer literally named "Donkey & Burro": https://www.govplanet.com/for-sale/Forklifts/14842632
The work that took longest wasn't the scraping (each source has its own quirky JSON or HTML), it was the dedup. The same Fannie Mae foreclosure shows up under three different addresses across three platforms. A "2008 Ford F-150" from GSA Fleet looks structurally identical to one from PublicSurplus, but they're different vehicles with different VINs, and the only way to know is to fingerprint enough metadata to make a confident match.
There's a deal score per listing (price vs category median, bid velocity, time remaining, starting-bid ratio) and SEO landing pages per state-by-category combo, mostly because long-tail government-auction queries on Google are nearly all unanswered.
Stack: Next.js, Postgres, TypeScript scrapers per source, daily refresh.
Happy to answer questions about scraping the federal sites (some of them really do not want to be scraped) or how the deal scoring works.