SavvyDealer Static Site¶
Repo: savvydealer-adam/savvydealer-static · Path: C:/Users/adam/savvydealer-static · Owner: Adam
Status: Live · % Done: 80 · Last commit: 2026-03-05
Deployed: Cloud Run (Cloud Build)
What it is¶
Static HTML site for savvydealer.com — Python generators produce all pages, Express serves them. Has its own CLAUDE.md with project-specific rules that MUST be respected.
Why it exists¶
Marketing site for SavvyDealer products and services. Static-generated for speed, SEO, and cheap hosting; Python generators allow programmatic updates without hand-editing HTML.
How it works¶
- Generators:
generate.py(shared templates: head, nav, footer, CTA, FAQ) +generate_pages.py+generate_blog.py+generate_resources.py - Shared templates in
generate.pycalled by page generators; outputs written topublic/ - Blog: Markdown with YAML frontmatter in
content/blog/*.md→ ~26 post pages + listing - Tailwind v4 via
src/input.css, built withnpm run build:css - Express server:
server.js(security headers, form APIs, static file serving) - Also generates
sitemap.xml,robots.txt,llms.txt
What's done¶
- 51 pages generated (home, 6 service pages, about, book, products, blog, resources)
- 26 blog posts
- Tailwind v4 design system with Space Grotesk +
#0088ffprimary - Cloud Build auto-deploy
What's next¶
- Ongoing content updates via blog + page generators
- SEO/GEO iteration
- Keep
public/HTML out of hand-edits (see project CLAUDE.md)
Where the code lives¶
- Generators:
generate.py,generate_pages.py,generate_blog.py,generate_resources.py - Server:
server.js - Content:
content/blog/*.md - Output (generated):
public/ - Deploy:
cloudbuild.yaml,cloudbuild-dev.yaml
Integrations¶
- Form APIs from
server.jswire into SavvyDealer lead capture - Project-specific CLAUDE.md at
C:/Users/adam/savvydealer-static/CLAUDE.md— always read first
Don't rebuild this — extend it¶
For savvydealer.com content, edit the Python generators (NOT the generated HTML in public/). For dealer marketing sites use Sell-Us-Your-Car, savvy-demo, or savvy-page-builder instead.