The SavvyDealer Coordinated Strategy¶

SavvyDealer isn't a single product. It's a coordinated platform built in four layers that share one canonical data spine and serve three dealer verticals.
Every team working here — data warehouse, website/marketing, internal AI devs — is plugging into the same architecture. This site exists so everyone can see the full picture before proposing new work.
Open the full inventory Jump to your team's page
The four layers¶
flowchart TB
subgraph L4["4 — Distribution & Client Products"]
direction LR
D1["Dealer Sites<br/>3 strategies"]
D2["AI CRM<br/>crm.savvydealer.com"]
D3["Competitive Dashboard<br/>comp.savvydealer.com"]
D4["Analyst Personas<br/>(warehouse reports)"]
D5["Contracts<br/>contracts.savvydealer.com"]
D6["Automation Tools<br/>PPC · Pop Coupons · DealerPulse"]
end
subgraph L3["3 — Platform Services"]
direction LR
P1["core-data-api"]
P2["unified-gateway"]
P3["integration-standards<br/>(webhook contracts)"]
P4["savvy-platform-suite"]
end
subgraph L2["2 — Canonical Data APIs"]
direction LR
A1["Savvy API<br/>inventory + incentives"]
A2["vehicle-features"]
A3["rv-catalog"]
A4["powersports-data"]
A5["dealership-intel<br/>(dealer directory)"]
end
subgraph L1["1 — Data Sources & Pipelines"]
direction LR
S1["lease-scraper"]
S2["inventory-tracker"]
S3["gm-scraper"]
S4["upfit-scraper"]
S5["nissan-stickers"]
S6["Thunder-Bob<br/>(R&R ERA DMS)"]
S7["OEM scrapers<br/>(RV + Powersports)"]
end
L1 --> L2 --> L3 --> L4
classDef layer fill:#f5f5f5,stroke:#333,stroke-width:1px,color:#222
class L1,L2,L3,L4 layer
How it reads:
- Data Sources scrape or receive raw data (lease programs, inventory, parts, window stickers, DMS feeds).
- Canonical APIs are the source of truth — Savvy API for inventory/incentives, vehicle-features for specs, rv-catalog for RV data, etc.
- Platform Services (core-data-api, unified-gateway, integration-standards) route and normalize so every product consumes the same contracts.
- Products are what dealers and prospects actually see — websites, dashboards, CRMs, analyst reports.
The rule: build at the right layer. Scraping a site for inventory bypasses L2 — use Savvy API instead. Building a new dealer-site template bypasses the three-strategy map — use migration, demo, or page-builder. The portfolio tells you which layer your work belongs in.
Three verticals on one spine¶
flowchart LR
subgraph Spine["One Data + Platform Spine"]
S["Savvy API · core-data-api · integration-standards"]
end
subgraph V1["Franchise Auto"]
A1["cloud-savvydealer-website"]
A2["ai-crm"]
A3["competitive-dashboard"]
A4["lease-scraper"]
A5["dealership-intel"]
A6["dealer sites<br/>(3 strategies)"]
end
subgraph V2["RV"]
R1["rv-catalog"]
R2["rv-research"]
R3["stl-rv-website"]
end
subgraph V3["Powersports"]
P1["gables-motorsports"]
P2["powersports-data"]
end
Spine --> V1
Spine --> V2
Spine --> V3
Each vertical reuses the spine. Building a new vertical (boats, heavy truck, etc.) = add a data catalog + a demo site, not a parallel stack.
What this portfolio prevents¶
| You might be tempted to build | It already exists as | Layer |
|---|---|---|
| A lease offer scraper | lease-scraper | L1 |
| An OEM dealer directory | dealership-intel | L2 |
| A competitor inventory monitor | competitive-dashboard | L4 |
| A Google Ads campaign builder | ppc-assistant | L4 |
| A dealer-notes system | dealerpulse | L4 |
| A dealer-site template | wp-migration-factory + savvy-demo + savvy-page-builder | L4 |
| A Monroney window-sticker fetcher | nissan-stickers | L1 |
| An AI-compatibility audit | ai-compatible-v3 | L4 |
| An RV dealer site | rv-catalog + stl-rv-website | L2 + L4 |
| A powersports dealer site | gables-motorsports + powersports-data | L4 + L2 |
See the full list in the Inventory page.
The numbers¶
-
67 repos
In the
savvydealer-adamGitHub org — 51 cataloged as SavvyDealer products here. -
30+ Cloud Run services
Running in GCP project
savvydealer-website, plusthundercustoms-websiteandaicompatibility. -
4 architectural layers
Data sources → canonical APIs → platform services → products. Build at the right one.
-
3 verticals
Franchise auto, RV, powersports — one spine, separate distribution.
Team onboarding¶
-
Ray Nawara's team. Ingest the existing canonical APIs and analyst personas — don't rebuild pipelines Adam already has.
-
Three dealer-site strategies, shared asset library, hard rules on OEM brand + copy.
-
Internal Devs — Kat / Brian / Lucas
Where your AI notes, slides, Google Ads, and form-pages work plugs into the existing stack.
Principles that govern every product¶
- Savvy API is the inventory source of truth — not Google Sheets, not scraping loops. Build reads off it.
- QBO is the financial source of truth for AI-CRM — never create QBO records from CRM; link only.
- No vendor-filler vocabulary in dealer-facing automated output ("optimize / leverage / best practices / move the needle" — banned).
- OEM brand assets come from the OEM — never fabricate logos.
- Secrets in
.envor Secret Manager only — never commit keys. - One canonical source per data type — if two products overlap, consolidate and retire one. Ask Adam before forking.
How this site is built¶
- Source: savvydealer-adam/product-portfolio (private)
- Stack: MkDocs Material + Mermaid diagrams
- Hosting: Cloud Run in GCP project
savvydealer-website - Update workflow: contributing
When a product ships / deprecates / changes scope, update the 1-pager + inventory row + team page. Commit and push — the site rebuilds on deploy.
Owner: Adam (support@savvydealer.com). Last refreshed: 2026-04-16.