← AWS Motor Club
🛞 TireGuard · GlassGuard · v0.7.1

AWS MOTOR CLUB

Coverage, claims and roadside service for TireGuard & GlassGuard — one app for the customers, the dealership and the team, replacing a spreadsheet pipeline that ran on hope.

8,136
CUSTOMERS
10,717
LIVE REGISTRATIONS
6,283
ACTIVE COVERAGE
$3.20M
DEALER PROFIT GENERATED
AWS Motor Club v0.7.1 · live at aws-motor-club.pages.dev · source of truth: APP_BREAKDOWN.md
⚖️ The shift

From an AppSheet spreadsheet pipeline to a real system.

Dealer sheets used to be copy-pasted through staging spreadsheets into a master sheet, with formulas deciding who was covered.

😰 Before

  • Registrations arrived as spreadsheet rows and were pasted onward by hand
  • Term length and dealer profit lived in sheet formulas that quietly went stale
  • Claims and notes chased through memory and text threads
  • Nothing searchable — and no way to answer “is this customer covered?” fast
  • 💚 With the Club

  • One master list in a real database, searchable ten ways
  • Term, expiry and profit computed by code on every deal — never typed
  • Claims with a status pipeline and a paid-out ledger per tire
  • Every call, text and note logged on the customer, in the app
  • 🛡 The two products

    Coverage that knows its own expiry date.

    🛞
    TireGuard — the tire repair & replacement program. Damage after the product is applied gets repaired or replaced, tracked down to which tire (LF / RF / LR / RR / spare).
    🪟
    GlassGuard — windshield protection. One-year term by product default. (The existing Mercedes-Benz of South Orlando book is a one-off: the name was misapplied there to a screen protector and honoured. Every new GlassGuard is a windshield.)
    📐
    Term comes from dealer cost — TireGuard at $299 = 3 years, $199 = 1 year; GlassGuard = 1 year. Rules are table rows, so a new product or price is data, not code.
    💵
    Price is set per dealership. The dealer sells for whatever they choose; profit = sale price − dealer cost, rolled up for the program report.

    Coverage is active through the expiry date and expired the day after — and an expired customer is impossible to miss: full-width red banner, red-tinted coverage panels, uppercase EXPIRED badges.

    🧭 What's inside

    Seven sections, one job each.

    📊
    Dashboard — customers, registrations, active coverage, open claims, claims paid, dealer profit, per-product active/expired.
    👥
    Customers — the full master list, always visible: sortable columns, coverage / product / open-claim filters, linkable views, 50 a page.
    🧾
    Claims — pipeline from new → in progress → awaiting customer → approved → closed, with a per-item repair/replace ledger.
    💬
    Comms — chat-style thread per customer; calls, texts, emails and notes logged in-app, never bounced to another app.
    🏢
    Dealerships — the report builder plus per-dealership program pricing.
    🚨
    Road Rangers — operators who drive to the stranded customer.
    🔧
    Tire Shops — fixed drop-off shops, for when the vehicle still drives.
    📖
    Living breakdown/breakdown renders from the live config and database, so the doc can't drift from the app.
    🚨 Roadside

    Two problems, two directories.

    A stranded customer and a driveable car need opposite answers, so they are separate sections that cross-link.

    🚨 Road Rangers

  • They come to the vehicle — mobile tire, tow, spare swap, on-site repair
  • Searched wide by default (60 mi) because rangers travel
  • Rated and noted from our own experience, with times-used
  • 🔧 Tire Shops

  • The vehicle comes to them — fixed drop-off tire & repair shops
  • Ranked by distance so small independents beat the big chains
  • 40 mi default, same save-to-directory flow
  • 🔎
    Discovery finds them for you. Google Places plus two OpenStreetMap engines run together and merge — every result arrives with a verified phone, rating and distance, one tap from saving.
    🚧
    Category gates keep it clean. Every result from every engine must prove it is on-location vehicle help — a mobile computer repair shop can't sneak into Road Rangers.
    🗺
    List ⇄ Map. Customer pin, dashed search-radius ring, green saved vendors, blue discovered — tap any dot for phone, distance and save.
    📈 For the dealership

    Any cut of the program, printable.

    Click a dealership and build the report you actually want to send them — no export, no spreadsheet.

    6
    Ways to group — month, quarter, year, F&I manager, product, or manager × product.
    🎚
    Filters — date range, product, specific F&I manager; sortable columns and a totals row.
    🧑‍💼
    F&I performance — units, retail sales and dealer profit per manager, profit-ranked.
    🖨
    Print → PDF — the chrome strips away and it becomes a clean program overview.

    Mercedes-Benz of South Orlando today: 9,715 units, $2.84M in dealer profit, 14 F&I managers on the board.

    ✨ v0.5.0 · The New Look

    The gloss-black shield theme.

    The design language the Appolis suite proved out — depth, glow, chrome-gradient numbers, glass panels, green-gradient buttons — rendered entirely in AWS's own brand: gloss black, silver chrome, bright green.

    Classic is one click away in the sidebar foot, and the revert is total — every rule is gated, so nothing leaks between themes. The choice persists per device.
    🎨
    The palette editor on /breakdown still drives Classic and is untouched by the new theme.
    🔴
    Re-tuned for dark without losing the point: cards, inputs, dialogs and comms bubbles all went dark, badges were re-balanced, and expired stays unmissable red.

    This deck is drawn in the same palette.

    📱 Anywhere

    Built for the phone it gets opened on.

    Drawer navigation under a fixed top bar below 840px; tables shed low-value columns instead of squeezing.
    👍
    Thumb-sized — 16px inputs so iOS stops zoom-jumping, 40px+ targets, scrollable dialogs, safe-area insets.
    🏠
    Add to Home Screen — manifest, icon and theme colour, so it launches standalone like a native app.
    🐛
    Report a bug from anywhere — the 🐛 button takes a note, the device basics and a screenshot, and files it straight to the board.

    Hosted on Cloudflare Pages + D1, behind a device access key. A version badge sits bottom-left, and a refresh chip appears the moment a newer build ships.

    📜 Changelog · to v0.7.1

    Every version, one page.

    .7.1
    v0.7.1 — 🔒 Two belt-and-braces security tightenings from a five-point audit: looking something up can never quietly save anything anymore, and the practice server's file-serving rules got stricter. Neither was reachable by an outsider — closed on principle, each with a test that sounds the alarm if it ever comes back.
    .7.0
    v0.7.0 — 📥 Import statements. Drop in the spreadsheet the dealership emails and the app reads it: every customer, vehicle, price and F&I manager, straight into the system. It shows you exactly what it will add or change before anything is saved, spots cancelled deals so they never count as sales, quietly fixes dates the dealer's Excel wrote back-to-front, and checks its own maths against the cheque total on the sheet — refusing to import if the two disagree. Upload the same month twice and nothing doubles up.
    .6.3
    v0.6.3 — vehicles exist: all 9,715 registrations backfilled with year/make/model from their VINs. AppSheet notes imported and matched, junk contact cells cleaned.
    .5.2
    v0.5.2 — bug reporter takes a screenshot and passes it through to the intake.
    .5.1
    v0.5.1 — the 🐛 report button: broken-or-idea popup with device basics, filed to the board.
    .5.0
    v0.5.0 — ✨ the New Look, with Classic one click away.
    .4.x
    v0.4.x — Cloudflare + real data, the report builder, roadside discovery and the map, the split into Road Rangers vs Tire Shops, Google Places and the category gates, and the mobile build-out.
    .1
    v0.1–v0.3 — born as GuardHQ, renamed to AWS Motor Club; both master lists imported; comms hub and expired-coverage treatment.

    Full detail — every version, every number — lives in APP_BREAKDOWN.md §10.

    🛣 What's next

    Open on the board.

    📞
    Grasshopper — the comms hub logs everything today; wiring real send/receive is the next big piece. Everything stays in-app.
    🚨
    Seed the Road Rangers directory with the operators saved on the team's phones — better than anything auto-discovery finds.
    🔐
    Auth model — one shared device key today; per-user logins when the team grows.
    🧾
    Claim-time intake polish — capture the address, update the customer and open the claim in one pass.
    AWS Motor Club v0.7.1 · Addendum & Warranty Solutions