5.7 KiB
5.7 KiB
Williams Pressure Washing Services — Progress
Completed
- Initial website build
- Responsive multi-section design (hero, services, about, why-us, contact)
- Professional blue/cyan gradient theme with water drop animations
- Contact form with validation (PHP → SMTP relay)
- Mobile nav toggle + floating CTA button
- Phone number formatting + clickable tel: links
- Git repo created and pushed to Gitea
- SEO fundamentals — OG tags, Twitter cards, structured data (LocalBusiness), canonical URL, robots meta, favicon, description/keywords meta
- How It Works section — 3-step visual process (Contact → Quote → Clean)
- Before & After Gallery — 3 comparison cards (truck fleet, house, storefront) with hover reveal effect
- Testimonials — 3 placeholder testimonial cards with star ratings
- Placeholder images — Generated via ImageMagick (all real files, replace with real photos before going live)
- Service area — Coshocton, OH & surrounding areas referenced throughout
- Privacy-respecting analytics — Script placeholder commented in
<head>, ready for Plausible/Umami - Hosting deployment — Site deployed to 10.10.9.230 (hostname:
dotnet), nginx serving, PHP 8.2 FPM installed - Nginx config —
/etc/nginx/sites-available/WilliamsPressureWashingServices.comactive, security headers, static asset caching - 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.jpgwith a proper 1200×630 branded image - Real favicon — generate a proper
.ico/.pngfavicon 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
- SMTP relay configuration — PHPMailer connected to hMailserver on 10.10.9.31:25 (no auth, no TLS) — relay handled by hMailserver/Mailjet
- 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 Mon–Sat 7AM–7PM 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? ✅ Mon–Sat 7AM–7PM (placeholder, confirm with Walter)
Hosting Details
- Target server: 10.10.9.230 (hostname:
dotnet) - SSH:
sage@10.10.9.230using~/.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.