VINly
A used-car listing in, a priced buyer's report out — verdict, opening offer, and walk-away floor. Designed and engineered solo for iOS.
- $3.99 Price per report
- ~100s Time to a full report
- 3 AI models, one job each
- One person Designed and built by
The premise
Every used-car listing is a wall of optimism. A price, a few photos, three sentences from a stranger who wants to sell. The buyer is left to turn that into a decision: is this fair, what’s going to break, what do I say to the seller, and when do I walk away.
Most people guess. They open three tabs, half-read a forum thread, and make an offer they can’t defend. The information needed to buy well exists — it’s just scattered across the listing, the model’s reputation, recall databases, and local cost-of-ownership math. Nobody assembles it in the ninety seconds before they message the seller.
What VINly does
Screenshot the listing and hand the photos to VINly. It reads them, identifies the exact vehicle, researches what’s known to fail on it, prices the car against its mileage, and returns a buyer’s report: a verdict, an opening offer, a walk-away floor, a year-one cost forecast, a model-specific inspection checklist, and a copyable message to send the seller.
About a hundred seconds. $3.99 a report, or a ten-report pass for the way people actually shop — three to eight listings over a couple of weeks. No subscription.
The report is the product, and every section answers a question the buyer was already going to ask. Should I see this in person. What’s likely to break. What will the first year cost. What do I open the conversation with.
The price is not the model’s opinion
The most important decision in the build is what the language model is not allowed to do. It never picks the number.
The opening offer, the walk-away floor, and the car’s real annual mileage are computed by plain deterministic functions before any model runs — computeSuggestedAnchor, computeWalkFloor, computeAnnualMiles, and a hard isObviousWalkAway guard for the listings that aren’t worth a full report. Those numbers are passed into the pipeline as fixed constraints. The model’s job is to explain the offer, not invent it.
The reasoning is simple: a model that hallucinates a price is worse than no app at all. Arithmetic that’s wrong is at least wrong the same way every time, which means it can be pinned down by tests. The money math carries 133 of them.
Two models, and one of them disagrees
Once the numbers are fixed, the report gets written and then checked.
A synthesis model — Anthropic’s Sonnet — drafts the report grounded in real sources: NHTSA recall and complaint data for the exact year and model, plus a handful of live web lookups for known failure modes and ownership costs. A second model, DeepSeek, reads the draft back as a critic and looks for claims the evidence doesn’t actually support. If it finds a contradiction, synthesis runs again with the objection in hand.
The report keeps a small receipt of what happened — whether it was retried, which model wrote it, how many sources it cited. On the example throughout this page, a 205,000-mile Lexus RX 350, that reads: generated in 100 seconds, Anthropic Sonnet, seven sources cited. Showing the work is the feature. A buyer trusts a number they can see the basis for.
What it refuses to claim
VINly is deliberately narrow, and saying so out loud is part of the design.
It is not a vehicle-history service. There’s no VIN report, no accident records, no odometer-fraud check — it reasons from the listing and public knowledge, not a title database. It is not a mechanic; it tells you exactly what to inspect and hands you a checklist for the shop, but it doesn’t pretend a phone can replace a lift. And it never logs into Facebook — the listing link is optional context, nothing more.
The verdict it gives most often is inspect, not buy. The whole product is built to make someone a sharper buyer, not to make a risky purchase feel safer than it is.
One person, end to end
The design, the iOS app, the three Supabase Edge Functions, the AI pipeline, the pricing, and the marketing site are one person’s work.
The security model is the part worth pointing at. The keys that cost money — OpenAI, Anthropic, DeepSeek — never ship inside the app bundle. They live as Edge Function secrets, and the phone holds only an anonymous Supabase key. An earlier version called the vision model directly from the device with a bundled key; moving optical character recognition server-side closed that hole and is the reason a screenshot can be read without trusting the client with anything it shouldn’t have.
The model explains the number. It never picks it.
Where the trust comes fromFrom a screenshot to a verdict.
Up to a dozen listing screenshots in. About a hundred seconds later, a buyer's report the shopper reads top to bottom — verdict first, the reasoning under it, the evidence attached.
The work it hands you — and what it costs.
Three things a buyer can act on the same afternoon — a cost forecast, an inspection checklist for the shop, and a negotiation message — plus a price that matches how people actually shop for a car.
The price reflects what a report costs to produce, not what a subscription funnel can extract. A used-car shopper is in the market for a few weeks, not forever — so the product is built to be picked up, used hard, and put back down.