TrainFinder™ is in beta testing. Prices and product data are being verified. Learn more
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.
New Feature
Prototype Registry is now a first-class discovery area
The Prototype Registry — our index of real-world locomotives — is now prominently linked in the main navigation. Browse 6,500+ real trains and see which model train products represent them.
New 'Prototypes' tab in the site header and mobile navigation. Click it to explore real-world locomotives organized by power type, builder, and railroad.
Page redesigned: clearer title ('Prototype Registry'), discovery-focused description, filter dropdowns now show counts per facet (e.g., 'steam (2169)').
Road name filter shows abbreviations: 'UP — Union Pacific (312)' so you can find railroads faster.
Improved loading state: spinner with messaging instead of plain text, better empty-state guidance.
This is early access — coverage is expanding as we link more products to their real-world prototypes.
New Feature
Prototype-linked browse badges
When you browse locomotives, products that we've linked to a real-world prototype now show a small badge with the prototype name — like 'UP Big Boy' or 'PRR GG1'. Click the badge to see every model of that train across all scales.
Browse badges appear on product cards in the locomotive and rolling stock browse pages.
Each badge links directly to the prototype detail page showing all manufacturers, scales, and specs.
Only high-confidence links are shown (confidence >= 0.7). Products without links show no badge — we don't guess.
Coverage is currently ~2% of products. This will grow as our prototype-product matching improves.
Bug Fix
Prototype Registry stability fix
Fixed a client-side crash on the Prototype Registry page that prevented prototype cards from loading. The page was rendering its header but then throwing an error before any data appeared.
Root cause: the page expected the API to return data in a different format than it actually does. The mismatch existed since the page was first built but was hidden because there was no navigation link to it.
Filter dropdowns (Era, Builder, Road Name) now work correctly and show result counts.
Prototype cards now load and display as expected.
Behind the Scenes
Automated smoke testing
We now have automated browser tests that verify core user journeys work after every deployment. If the site breaks, we know within minutes — not when someone reports it.
8 automated tests covering: homepage, locomotive browse, product detail, prototype registry, compatibility checker, and mobile layout.
Tests run against the live production site using a real browser (Chromium).
Category contamination check: automated scan confirms that parts, accessories, and non-train items don't leak into locomotive browse results.
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 enters early access
TrainFinder Marketplace entered early access. Individual sellers can onboard and list trains against our product registry, and those listings show alongside retailer comparison prices. Participating dealers have directory profiles — not marketplace storefronts. Secure checkout is rolling out gradually on listings where it's enabled; until then, buyers contact the seller directly.
/marketplace landing page: hero ribbon, live stats, Founding Seller spots for individual sellers, plus participating dealer profiles for dealers who asked to be listed in our directory.
Founder Spots Left counter: counts down as individual sellers onboard. 50 spots total, never going to be 51.
Product pages show TrainFinder Marketplace listings alongside retailer comparison prices. Secure checkout applies only on listings where it's enabled; otherwise buyers arrange the purchase with the seller directly.
Success-based platform fee and a default listing window apply to marketplace listings where checkout is enabled.
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
Participating dealer profiles on /marketplace
Participating dealers display their logos and link to their dealer profiles. TrainFinder compares their public listings — these are directory entries, not marketplace storefronts.
East Main Trains, JR Junction, and Model Train Crossing shown as participating dealers with links to their dealer profiles.
Dealer Profile badge links each card to the dealer's directory entry.
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.