An all-in-one dealer management system for independent used-car dealers in the US — inventory, deal desking, in-house financing, compliance and a public storefront for every dealer on the platform. I designed it, built it and run it myself.
Buy-here-pay-here dealers are the lender. That means loan origination and servicing, payment schedules and collections, delinquency handling, repossession and charge-off — and reporting the whole thing to the credit bureaus in their format, on their cadence. Get the arithmetic or the reporting wrong and the dealer has a legal problem, not a bug report.
Every deal produces a stack of documents whose numbers must agree with the deal desk down to the cent, then get signed electronically and stored where an auditor can find them. Auto-generated paperwork and e-signature aren't features on a list — they're the point where a deal either closes on the lot or doesn't.
Not a shared directory: each tenant gets a real storefront on its own subdomain, with its own inventory, branding, pages and SEO — generated by the platform and updated the moment a car changes status in the back office. One codebase, isolated data, N public websites.
A dealer switching systems arrives with years of inventory, deals and customer history in DealerCenter, live lender connections, and listings syndicating to AutoTrader and Cars.com. Import, lender submissions and marketplace feeds all had to work before day one, or the product is unusable by exactly the people it's for.
Shoreline Auto Center is a used-car dealership in Virginia Beach, VA. Their public website isn't a demo I built to show off the platform — it's the site their customers use, generated and served by CarDealerTool from the same back office the dealership works in every day.
Every car on it, every price, every financing page comes out of the tenant's own data. Change a vehicle's status in the office and the storefront reflects it. That's the whole multi-tenant argument, and it's one click away instead of a claim in a bio.
A real dealership's public site — not a sandbox, not staged data.
Every tenant site generates its own category pages out of the real stock: make, model, body style, fuel type, price threshold, the combinations of those, plus areas served. Nobody creates them by hand.
They're gated by a threshold: below a certain number of cars, the URL 301s to its parent facet instead of existing as a thin page. A dealer with no Jeeps doesn't get a Jeep page. Filters stay crawlable parameter URLs but canonicalise to the clean category page, so the signal consolidates instead of fragmenting.
AutoDealer, ItemList, FAQPage and BreadcrumbList on categories; Car, Offer, Brand and engine specs on each vehicle page.
The FAQ in the schema is the same text as the visible accordion — never a second, invisible version written for crawlers.
The import from the previous platform carried no fuel type, so it's derived from the model name. Without that, every fuel page would simply not exist. Sitemap is per tenant, generated from inventory.
The URL architecture was right. The internal link graph cancelled it out.
110 pages were discovered from the sitemap and never crawled by Google. 45 make+model pages and 20 price-threshold pages had no internal link pointing at them at all, and the inventory page server-rendered 13 of 54 vehicles — the rest loaded from JavaScript, with no pagination a crawler could follow.
The proof is clean: the Chevrolet page, linked from two places, is indexed. The Chevrolet Silverado page, with zero links to it, was never touched. You don't see this by looking at rankings. You only see it by reading the coverage report. The fix — server-rendered pagination and a real category index — is specified and next.
This is the work I do for rental sitesPages discovered from the sitemap and never crawled
Of those with zero internal links pointing at them — 45 make+model, 20 price thresholds
Of 54 vehicles server-rendered on the inventory page; the rest client-side, unpaginated
Shoreline Auto Center in Virginia Beach, VA runs its day on it — inventory, deals, financing and its public site. 54 vehicles, 101 transactions, 4 users.
Development is ongoing: modules get deepened as the dealer hits real edge cases, which is the only useful source of requirements in this domain.
I'm the person who takes the call when something's wrong at 8am on a Saturday, and the person who fixes it. Same person, both roles.
CarDealerTool is what happens when I own something end to end: the domain research, the architecture, the code, the migration path, and the phone when it breaks. If you're weighing whether to bring one developer into something serious — a platform, a rebuild, a product that has to hold real money and real compliance — this is the evidence, and it's live.