Files
WilliamsPressureWashingServ…/progress.md
T
sage ee6f61d51c New custom favicon + mobile nav responsive fix
- New custom favicon: blue gradient water drop with spray burst
  (favicon.png 32/64/256px, favicon.webp, apple-touch-icon 180px)
- Mobile nav (768px): tighter padding (12px), smaller logo (1rem), smaller icon (1.2rem)
- Narrow phones (480px): logo text 0.85rem, logo max-width 60%
- Tiny phones (360px): logo text 0.75rem, logo max-width 55%
- CSS cache buster bumped to v3
2026-05-16 15:59:25 -04:00

96 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Williams Pressure Washing Services — Progress
## Completed
- [x] Initial website build
- [x] Responsive multi-section design (hero, services, about, why-us, contact)
- [x] Professional blue/cyan gradient theme with water drop animations
- [x] Contact form with validation (PHP → SMTP relay)
- [x] Mobile nav toggle + floating CTA button
- [x] Phone number formatting + clickable tel: links
- [x] Git repo created and pushed to Gitea
- [x] **SEO fundamentals** — OG tags, Twitter cards, structured data (LocalBusiness), canonical URL, robots meta, favicon, description/keywords meta
- [x] **How It Works** section — 3-step visual process (Contact → Quote → Clean)
- [x] **Before & After Gallery** — 3 comparison cards (truck fleet, house, storefront) with hover reveal effect
- [x] **Testimonials** — 3 placeholder testimonial cards with star ratings
- [x] **Placeholder images** — Generated via ImageMagick (all real files, replace with real photos before going live)
- [x] **Service area** — Coshocton, OH & surrounding areas referenced throughout
- [x] **Privacy-respecting analytics** — Script placeholder commented in `<head>`, ready for Plausible/Umami
- [x] **Hosting deployment** — Site deployed to 10.10.9.230 (hostname: `dotnet`), nginx serving, PHP 8.2 FPM installed
- [x] **Nginx config**`/etc/nginx/sites-available/WilliamsPressureWashingServices.com` active, security headers, static asset caching
- [x] **Site live on IP** — http://10.10.9.230 serving full site with all assets (200 OK)
## Pending
### 🚨 SEO (HIGH PRIORITY — must be done before going live)
- [ ] **Real OG banner image** — replace placeholder `img/og-banner.jpg` with a proper 1200×630 branded image
- [ ] **Real favicon** — generate a proper `.ico` / `.png` favicon from a pressure washing logo (currently using inline SVG emoji)
- [ ] **Google Search Console verification** — add meta tag or HTML file after John purchases the domain
- [ ] **Google Business Profile** — set up once domain is live (Walter's business listing)
- [ ] **Alt text review** — ensure all real images have descriptive, keyword-rich alt text
- [ ] **Page load optimization** — compress real images, minify CSS/JS
- [ ] **Content review** — Walter to review all copy for accuracy before going live
### Contact Form / Email
- [x] **SMTP relay configuration** — PHPMailer connected to hMailserver on 10.10.9.31:25 (no auth, no TLS) — relay handled by hMailserver/Mailjet
- [x] **Test form end-to-end** — verified working (POST returns `{"success":true}`)
- [ ] **Test email delivery** — confirm message actually arrives at waltwilliams87@gmail.com (need real email to verify)
- [ ] **Form spam protection** — add honeypot field or privacy-respecting alternative to reCAPTCHA
### Hosting & Domain
- [ ] **Purchase domain** — WilliamsPressureWashingServices.com (John to purchase)
- [ ] **DNS setup** — point domain to 10.10.9.230 (John to configure)
- [ ] **SSL certificate** — configure via Nginx Proxy Manager or Let's Encrypt on 10.10.9.230
- [ ] **PHP `mail()` config** — verify Postfix on 10.10.9.31 can relay for this server (10.10.9.230)
### Content & Branding
- [ ] **Walter's before/after photos** — replace placeholder images with real job photos
- [ ] **Real testimonials** — replace placeholder testimonials with Walter's actual customer quotes
- [ ] **Walter's logo** — if he has one, add to nav and footer
- [ ] **Service area specifics** — confirm which towns/counties to list
- [ ] **Hours of operation** — verify MonSat 7AM7PM accuracy
- [ ] **Gallery photos** — get 3+ more before/after pairs if Walter has them
### Analytics
- [ ] **Choose analytics provider** — see options below
- [ ] **Add tracking script** — uncomment and configure Plausible or Umami
- [ ] **Privacy policy page** — add if required by analytics terms of service
## Open Questions
- Does Walter have hosting, or are we providing it? ✅ WE ARE PROVIDING (10.10.9.230)
- Domain purchased? ⏳ John to purchase (next)
- Specific images/branding from Walter? ⏳ John to collect
- Service area confirmed? ✅ Coshocton & surrounding areas
- Hours of operation? ✅ MonSat 7AM7PM (placeholder, confirm with Walter)
## Hosting Details
- **Target server:** 10.10.9.230 (hostname: `dotnet`)
- **SSH:** `sage@10.10.9.230` using `~/.ssh/id_ed25519`**AUTHORIZED**
- **OS:** Debian 12, bare metal, nginx 1.22.1, PHP 8.2 FPM, Postfix
- **Site files:** `/var/www/williamspw/`
- **Nginx config:** `/etc/nginx/sites-available/WilliamsPressureWashingServices.com`
- **Currently serving:** AssetTrackr.co (proxy to :5000), loperboys.com, WilliamsPressureWashingServices.com
- **Access:** `http://10.10.9.230` (serving correctly, all assets 200 OK)
- **Disk:** 50GB total, ~655MB used — plenty of space
- **Existing services:** AssetTrackr.co, loperboys.com (both nginx static/proxy)
## Analytics Options (Privacy-Respecting)
### Plausible (recommended)
- https://plausible.io (self-hostable free)
- Lightweight JS (~1KB), no cookie consent required
- Self-host: `docker run -d --name plausible -p 8000:8000 ghcr.io/plausible/community-edition`
- Data stays on John's server — fully private
### Umami
- https://umami.is (self-hostable free, open source)
- Clean dashboard, privacy-focused, no cookies
- Self-host: `docker run -d -p 3000:3000 ghcr.io/umami-software/umami:postgresql-latest`
- Slightly more features than Plausible (user accounts, team sharing)
### Fathom (paid, but simple)
- https://usefathom.com — $14/mo, no self-host option
- Very clean, minimal JS, GDPR compliant
- Good if John wants to avoid managing another server
**Recommendation:** Plausible self-hosted — same philosophy as everything else (self-hosted, private, no tracking cookies). Can run on 10.10.9.230 alongside the site.