TrainFinder™ is in beta testing. Prices and product data are being verified. Learn more
TrainFinder

What's New on TrainFinder

We build in public. Every shipped feature, fix, and polish lands here — newest first, no marketing fluff. If something here interests you, try it. If something feels off, email tonysunday@commandworks.us and tell us.

Polish

Account dashboard cleanup, Sell moved out of top nav

Tightening the navigation around how people actually use the site — buyers don't need a Sell tab in their face; sellers find it where they need it.

  • Top nav: dropped the Sell link. Reduces clutter for the 99% of visitors who are buyers.
  • Account page: brand-new gold 'Become a Founding Seller' card for users who haven't onboarded as sellers yet — links straight to /sell and /sell/register.
  • Homepage: removed the small Scale-Finder icons (G/O/HO/OO/N/Z) under the search box. Per-scale browsing is now exclusive to /browse where the tiles can be larger and more prominent.
  • Added 'What's New' link to the top nav (you're reading it).
Bug Fix

Admin console fully restored

Several admin tabs were quietly returning 401 because of an authentication mismatch. All admin endpoints now load correctly for admins, and the underlying API client was hardened so this can't recur.

  • Fixed: Demand, Waitlist, Email Broadcast, and TODOs admin tabs now authenticate via the same httpOnly cookie the rest of the site uses.
  • Hardened: the global API client now sends auth cookies cross-subdomain by default — no more silent 401s on protected endpoints.
  • No user-visible change; admins now see real waitlist data instead of zeros.
New Feature

Marketplace storefront opens

TrainFinder is now a marketplace. Real sellers list real trains, buyers buy directly, payments are handled end-to-end through Stripe Connect. Doors open with reserved Founding Seller spots for our four anchor dealers.

  • /marketplace landing page: hero ribbon, live stats, 4 reserved Founding Seller spots (East Main Trains, Henning's Trains, JR Junction, Model Train Crossing) + open spots for individual sellers.
  • Founder Spots Left counter: counts down dynamically as sellers complete Stripe onboarding. 50 spots total, never going to be 51.
  • Buy Now: every product page now shows TrainFinder Marketplace listings alongside retailer comparison prices. Buyer pays through Stripe, money is held until you confirm receipt.
  • 5% platform fee, 90-day default listing window, automatic email notifications for every step of a transaction.
  • Founding Sellers (limited!): permanent badge on every listing, top placement, zero listing fees ever.
Bug Fix

Search fixes and registry cleanup

When sellers tried to list a Lionel Big Boy and saw 'no results,' that was a real bug — we have seven of them in the registry. Search now tokenizes properly. Also cleaned up 'condition prefix' pollution in product names.

  • Listing search now matches every word in any order — typing 'Lionel Big Boy' returns all seven Lionel Big Boys (was returning zero).
  • Stripped scraped condition prefixes ('USED', 'PRE-OWNED', '(Damaged Box)', etc.) from product names shown to sellers. The registry is dirty in places — this defends the seller-facing path against that.
  • Cleaned 2 specific products in the database (Atlas Husky Stack, Atlas Challenger) whose canonical names had been polluted by scraper bleed-through.
Bug Fix

Stripe Connect onboarding — clearer status messaging

The 'Stripe onboarding isn't quite finished' screen was vague enough that sellers didn't know what to do next. Now it tells you exactly what Stripe needs.

  • Three distinct messages: 'Stripe still needs X, Y, Z' (with a button to continue), 'Stripe is reviewing in the background' (refresh-only), or 'Stripe rejected your account' (with reason and contact-support link).
  • Resume flow: if you started seller registration but didn't finish Stripe onboarding, /sell/register now picks up where you left off instead of throwing a 409.
  • Fixed Stripe return-URL 404: completion now lands cleanly on the success screen.
Polish

Multi-scale identity

TrainFinder started as O-gauge-only and grew up. Cleaned up every place the old 'O Gauge Trains' branding was hanging around.

  • Homepage hero: 'Find the cheapest model train!' — no longer scale-specific.
  • Site title and meta description: 'Find the Cheapest Model Trains' across HTML title, OpenGraph, Twitter cards, and JSON-LD.
  • Site description in structured data now reflects all scales: O, HO, N, G, OO, S, Z.
New Feature

Account dashboard — buying and selling sections

Most users will be both buyers and sellers. The dashboard is now structured around that.

  • Renamed 'Seller Dashboard' to 'My Dashboard' with a Buying / Selling tab toggle.
  • Buying tab: links to Watchlist, Wanted, Price Drops, Account Settings.
  • Selling tab: existing Active Listings / Items Sold / Total Revenue / Pending Payouts stats, with the gold Pending Payouts color preserved (gold = money).
  • Edit Listing now actually works — bring up any of your listings, tweak price/condition/shipping/description, save.
New Feature

Founding seller cards on /marketplace

Reserved spots for our four anchor dealers display their logos and 'Reserved' badges. Once they complete Stripe onboarding, the card flips to a real seller storefront link.

  • East Main Trains, Henning's Trains, JR Junction, Model Train Crossing — all four shown with logos and contact attribution.
  • 'Reserved' badge with the contact name so the public knows who has each spot.
New Feature

Photo upload pipeline for marketplace listings

Sellers can now upload up to 8 photos per listing. Photos are auto-resized to thumbnail / detail / original sizes and served from Cloudflare R2.

  • Drag-and-drop or file picker, in-browser preview, reorder by drag.
  • Server-side image processing: 200×200 thumbnail, 800×800 detail, original kept lossless.
  • Photo upload timeout extended to 2 minutes for cold-started backends with thumbnail generation.
New Feature

Multi-scale brand expansion

Added brand pages and product indexing for HO, N, G, S, OO, Z, and Standard gauge — TrainFinder is now genuinely all-scales.

  • Brand directory grew significantly: Athearn, Walthers, Kato, Bachmann, BLI, Rapido, Märklin, MicroTrains, ScaleTrains, and many more.
  • Per-scale category counts on /browse let you see exactly how much inventory exists in each scale.
Behind the Scenes

Prototype-product linkage groundwork

Built the data plumbing that ties every product to the real-world prototype it represents. UP Big Boy 4014 (the actual locomotive) → every model of it across every scale and brand.

  • Prototype registry expanded across every era and type (steam, diesel, electric, traction, fantasy).
  • Auto-matcher links products to prototypes by road name + class name. Lionel UP Big Boy + MTH UP Big Boy + Athearn UP Big Boy → all linked to one prototype record.
  • This is groundwork for an upcoming Prototype Atlas that lets you start from a real locomotive and find every model of it.