One search · all sources

Every military car deal,in one place.

New factory orders, tax-free OCONUS pricing, diplomatic plates, and used inventory from every dealer near Caserma Ederle. Filter by program, pickup, or fit.

Vehicles indexed
0
↗ Live aggregation
Built for the PCS cycle
Skip the
10-tab car hunt.
Every dealer near Caserma Ederle, in one search. Photos, prices, links straight to the source.
Browse all listings ↓
Avg new price
$0
USD · pre-tax
Sort

Inventory

0 of 0 listings
Factory & Diplomatic Programs

The fine print
that makes overseas worth it.

Manufacturer programs for active-duty US military and diplomatic buyers — factory pickups, tax-free pricing, US-port shipping. Only the programs with live inventory in this index appear below; more are added as we onboard their dealers. Always verify eligibility and current terms on the dealer's site before purchase.

Community Marketplace

Sell your car
to your neighbors.

Post your own vehicle directly to the Vicenza military community — no dealer markup. Verified .mil sign-in required to post. Coming soon.

Indexed Data Sources

Every dealer,
one index.

Only sources we actually ingest are shown below. Status badges mark live scrapes (live) versus partner-only / unverified channels.

Production Roadmap

What's running,
what's coming next.

The honest read on what you're looking at versus what shipping to soldiers actually requires.

Current state · v0.2

What you're looking at is a single-file webapp with the full UI, filters, program encyclopedia, and source catalog. Listings are representative samples drawn from public data on each source as of build date — enough to validate the search experience, filter logic, and visual design.

The app cannot do live scraping from the browser due to CORS — most dealer sites block cross-origin requests. That's a backend job.

Production stack

LayerStack
ScrapersPython · Playwright · cron
StoragePostgres · S3 photos
APIFastAPI · Redis cache
FrontendThis UI · wired to /api
HostingHetzner EU · Cloudflare

Scraper shape

# sources/patriot_autos.py
from playwright.async_api import async_playwright
from .schema import Listing, Source

SOURCE = Source(
    id="patriot_autos",
    name="Patriot Military Automobiles",
    base_url="https://patriot-autos.net",
    locations=["vicenza", "aviano", "naples", "sigonella"],
)

async def scrape():
    async with async_playwright() as p:
        browser = await p.chromium.launch()
        page = await browser.new_page()
        await page.goto(f"{SOURCE.base_url}/vehicles/")
        cards = await page.query_selector_all(".vehicle-card")
        for card in cards:
            yield Listing(
                source=SOURCE.id,
                source_url=await card.get_attribute("href"),
                title=await card.inner_text(".title"),
                price_usd=parse_price(await card.inner_text(".price")),
                # …year, mileage, location, photo_urls
            )

Build phases

PhaseScopeEffort
1 · POCUI, filters, contentDone
2 · Used scrapersPatriot, UCG, MAI~2 wk
3 · New scrapersMAS, BMW, Volvo~2 wk
4 · PolishAlerts, PWA, CDN~1 wk
5 · CommunityP2P, valuationsv2

Risk & ethics

  • Always link to original. Transaction happens on the source's site. Aggregator value is discovery, not capture.
  • Respect robots.txt and dealer ToS. Blocked sources fall back to "link-only" entries.
  • Drive dealers traffic, don't compete. Visible attribution defuses cease-and-desists.
  • No PII, no unit info. CAC-domain email is the only gate for saved searches.
Admin

Operations & analytics.

Internal view. Traffic, source health, roadmap — all in one place.

Sessions · 7d
Events · 7d
Searches · 7d
Dealer clicks · 7d

Daily activity · last 7 days

DayEventsSessions

Top searches · 7d

QueryCount
No data yet — searches will appear here.

Modal opens by source · 7d

SourceOpens
No data yet.

Dealer-click throughs · 7d

SourceClicks
No data yet.
Source Health

Scrapers, live.

Roadmap

Next up.

Where we are

4 scrapers ingesting ~580 listings: Patriot Autos (WP REST), Used Car Guys (list + per-detail enrichment), Capitol Motors (Volvo Military Sales), Military Autos Italy (list + per-detail enrichment).

SQLite store, FastAPI layer, single-file frontend with photos and click-through to dealer sites. Body inference table covers 99.8% of listings.

Production stack

ScrapersPython · requests · BS4 · launchd/cron
StorageSQLite (hot-link photos for v1)
APIFastAPI · CORS open
FrontendSingle-file HTML · vanilla JS
AnalyticsFirst-party · stored in same SQLite

Backlog

  • VPS deploy + TLS (Hetzner + Caddy)
  • DB backup to cheap object store (daily sqlite .backup)
  • Image cache to R2/S3 when traffic warrants (~50+ daily users)
  • More sources: Charlie's Cars, Military Resale Lot (P2P)
  • Bavarian Motor Cars — approach as partner, not scrape

Operating notes

  • Scrape cadence: twice daily via launchd / cron at 05:00 + 17:00 local.
  • Safety gates: empty-result and >50% drop tripwires both in runner — never deletes inventory on a bad scrape.
  • Privacy: first-party analytics only, no third-party trackers, no PII collected.