Complete technology stack, infrastructure, and AI agent documentation
| Layer | Service | Purpose | Cost | Status |
|---|---|---|---|---|
| Hosting | DigitalOcean Droplet | Self-hosted WordPress server (1GB/25GB SSD, NYC3) | $6/mo | LIVE |
| Domain | GoDaddy | Domain registrar for solarpanelexit.com | ~$12/yr | LIVE |
| SSL | Let's Encrypt (Certbot) | Free HTTPS certificate, auto-renewing | Free | LIVE |
| CMS | WordPress (self-hosted) | Content management, page publishing via REST API | Free | LIVE |
| Theme | Custom "Blank" Theme | Zero-interference theme — outputs raw HTML with no styling conflicts | Free | LIVE |
| Plugins | Classic Editor, Basic Auth | Classic Editor prevents block sanitization; Basic Auth enables API access over HTTP | Free | LIVE |
| Version Control | GitHub (OSA-hash/solar-panel-exit) | Private repo — all 222 files, scripts, audits, agent code | Free | LIVE |
| Cloud Agents | Railway.app | 24/7 Python agent scheduler — health checks, SEO, legal, reports | ~$5/mo | LIVE |
| Email Reports | SendGrid | Weekly executive reports emailed every Monday 5pm CT | Free tier | ACTIVE |
| Lead Capture | Go High Level (GHL) | Form submissions, CRM, lead routing — 2 forms deployed | Existing | LIVE |
| SEO | Google Search Console | Sitemap submitted, indexing monitoring | Free | ACTIVE |
| SEO Plugin | Rank Math (on WordPress.com) | SEO titles, meta descriptions, focus keywords — 168 pages configured | Free | MIGRATE |
| Component | Details |
|---|---|
| IP Address | 68.183.145.6 |
| OS | Ubuntu 24.04.3 LTS |
| Web Server | Apache 2.4.58 |
| PHP | 8.3.6 |
| Database | MySQL (MariaDB) |
| WordPress | Latest (6.x) |
| RAM | 1GB + 1GB Swap |
| Disk | 25GB NVMe SSD |
| Datacenter | NYC3 (New York) |
| SSH Access | root@68.183.145.6 (password auth) |
| SSL Certificate | Let's Encrypt — expires 2026-06-28, auto-renew via Certbot |
| Apache Modules | mod_rewrite, mod_ssl, mod_php |
| Category | Count | Examples |
|---|---|---|
| Core Content Pages | 18 | Homepage, Exit Guide, Cancel Solar, Solar Lawyer, Selling Home |
| State Pages (all 50) | 50 | Texas, California, Florida, New York, etc. |
| City Pages (top metros) | 30 | Houston, Phoenix, LA, Dallas, Miami, Atlanta, NYC, etc. |
| Blog Posts | 20 | Collections threats, roof damage, scam signs, cooling-off, etc. |
| Company Exit Guides | 15 | Sunrun, Tesla, Sunnova, ADT, Freedom, Palmetto, etc. |
| Company Reviews | 8 | Stonegate, Solar Equity, SCRC, Solar Relief, Bennett Legal, etc. |
| Educational/Glossary | 8 | What is PPA, UCC Lien, Solar Lease, Escalator Clause, etc. |
| Bankruptcy/Crisis | 6 | Sunnova, SunPower, Pink Energy, Bankruptcy List, FTC |
| Interactive Tools | 6 | Cost Calculator, Rights Quiz, Checklist, Comparison Tool, Letter Templates |
| High-Value Keyword | 8 | Lawyers Near Me, Cancel Contract, Solar Problems, Solar Lien |
| Hub/Parent Pages | 3 | State Laws Hub, Companies Hub, Free Contract Review |
| TOTAL | 172 |
| Form | ID | Location | Trigger |
|---|---|---|---|
| Inline Form | tGKUTEq7VG2W3s7FrIFn | Homepage only | Always visible in page content |
| Popup Form | 0xpnDP8oxTSQTNjC5erw | All content pages (168+) | CTA button click, 65% scroll depth, exit intent (mouseleave) |
https://link.msgsndr.com/js/form_embed.js
7 agents running 24/7 on Railway.app, written in Python with APScheduler.
| Agent | Role | Schedule | What It Does | Status |
|---|---|---|---|---|
| CEO | Strategy & Oversight | Monday 5pm CT | Reviews all agent reports, sets priorities, emails weekly executive report to Erik via SendGrid | LIVE |
| COO | Operations Manager | Daily 5am UTC | Pings 10 critical pages, measures load times, flags downtime or slow pages | LIVE |
| General Counsel | Legal Compliance | Daily 4am UTC | Scans pages for FTC compliance, missing disclosures, red flags (guarantees, breach advice, unauthorized legal advice) | LIVE |
| SEO Manager | SEO & Backlinks | Daily 6am UTC | Checks sitemap, robots.txt, schema markup, on-site SEO audit, backlink opportunity tracking | LIVE |
| CFO | Finance & Analytics | Monday 7am UTC | Revenue model tracking ($3,500/mo target), cost tracking, KPI dashboard, growth projections | LIVE |
| Social Media Manager | Social Presence | Daily 8am UTC | Weekly content calendar, platform strategy (Facebook, Reddit, YouTube, TikTok), hashtag tracking | LIVE |
| Brand Developer | Brand & Competitive Intel | Wednesday 8am UTC | Competitor monitoring (SCRC, Solar Relief, Solar Exit Partners), content gap analysis, authority building actions | LIVE |
Python 3.11 → APScheduler → Railway.app worker process → SendGrid email reports
GitHub repo: OSA-hash/solar-panel-exit (private) → Railway auto-deploys on push
| Service | Account | Access Method | Status |
|---|---|---|---|
| DigitalOcean | Erik's account | SSH root@68.183.145.6 | LIVE |
| WordPress (new server) | JohnAdams | https://solarpanelexit.com/wp-admin | LIVE |
| WordPress (old - WordPress.com) | erikellingsen6b2d05d624 | REST API + Application Password | MIGRATE OFF |
| GitHub | OSA-hash | gh CLI authenticated | LIVE |
| Railway.app | Connected to GitHub | Auto-deploy from main branch | LIVE |
| SendGrid | API key configured | Railway environment variable | ACTIVE |
| Google Search Console | Verified | Sitemap submitted | ACTIVE |
| Google Cloud | Solar Panel Exit project | Service account created, API key generated | CONNECT API |
| GoDaddy | Domain management | DNS A record → 68.183.145.6 | LIVE |
| Go High Level | Existing account | 2 form IDs deployed | LIVE |
| Audit | Score | Key Finding |
|---|---|---|
| Consumer Protection Law (v3) | 93/100 | All FTC Cooling-Off references accurate, all disclosures present |
| Corporate/B2B Law Risk | 32/100 risk (low) | TRU rating moderated from 4.9→4.6, competitor reviews balanced |
| FTC Advertising Compliance | 82/100 | AggregateRating schema fixed, form privacy notice added |
| IP Risks | Low | Trademark usage follows nominative fair use, no copyrighted content |
| State Law Accuracy | 83.7/100 | 15 states verified, Illinois ICFA damages corrected |
| Technical SEO (v3) | 74/100 | Every page has H1 + schema, avg 21.5 internal links per page |
| E-E-A-T Content Quality | 74/100 | Author bylines + Person schema added to all pages |
| Keyword Cannibalization | 13 conflicts | 2 exact duplicates fixed with canonical tags |
| CRO Conversion Funnel (v3) | 62/100 | Exit-intent + social proof added, hero CTAs on all state pages |
| Landing Page Optimization | 79/100 | Cost calculator scored highest (85/100) |
| Legal QA (Live Site) | 7 issues | Unsubstantiated claims removed, TRU references cleaned up |
| Token | Value | Usage |
|---|---|---|
| Primary Teal | #1A8F7D | CTAs, links, accents |
| Light Teal | #2AB89E | Hover states, secondary accents |
| Bright Teal | #20B898 | Hero accent text |
| Dark Teal | #0F5C50 | Button hover |
| Heading Dark | #1E2D3A | H1-H3, nav background |
| Body Text | #3D5266 | Paragraphs, list items |
| Caption | #7A9BB0 | Meta text, labels |
| Border | #D1DDE6 | Cards, dividers |
| Background | #F4F7F9 | Page background |
| Sans Font | DM Sans | Body text, headings, buttons |
| Serif Font | Georgia | Homepage hero, section titles |
| Hero Gradient | linear-gradient(168deg, #0C151C, #1E2D3A, #2A3F50) | Hero sections, dark CTAs |
| Competitor | Domain | Age | Strategy | Our Advantage |
|---|---|---|---|---|
| Solar Cancellation Resource Center | solarcancellationrc.com | ~6 months | Flat fee, radio show, A+ BBB | 172 pages vs their ~10 |
| Solar Relief Center | solarreliefcenter.com | ~18 months | Stonegate Law partner, A+ BBB | 50-state coverage, interactive tools |
| Solar Exit Partners | solarexitpartners.com | 3 months | Timeshare company pivot | Content authority, not a pivot |
| Bennett Legal | bennettlegal.com | Established | Law firm, solar specialty | We're lead gen, not law firm |
| EnergySage | energysage.com | Years | Massive DA, educational | Niche-specific, exit-focused |
| Keyword | Monthly Volume | YoY Growth | Our Page |
|---|---|---|---|
| "cancel solar contract" | 110 | +767% | /cancel-solar-contract |
| "solar exit" | 70 | +600% | Homepage + multiple pages |
| "solar cancellation" | 140 | +129% (3mo) | /best-solar-cancellation-companies |
| "solar panel lawyers near me" | 390 | Stable | /solar-panel-lawyers-near-me |
| "solar panel lawyer" | 260 | Stable | /solar-panel-lawyer |
| "how to get out of solar panel contract" | 140 | +89% | /how-to-get-out-of-a-solar-panel-contract |
| "solar problems" | 320 | Stable | /solar-problems |
| "solar panel scams" | 2,400 | Growing | /solar-panel-scams |
| "solar panel removal cost" | 2,900 | Growing | /solar-panel-removal-cost |
| "house with solar" | 720 | Stable | /buying-house-with-solar-panels |
Product: Free Solar Contract Review → TRU Solar Cancellation ($450/package)
| Metric | Target | Math |
|---|---|---|
| Customers/month | 8 | 8 × $450 = $3,600 |
| Close rate | 25% | Need 32 qualified leads |
| Form conversion | 2% | Need 1,600 visitors |
| Monthly costs | ~$50 | Hosting $6 + Railway $5 + Domain $1 + API ~$10 |
| Break-even | 0.1 customers | 1 sale covers 9 months of costs |
| System | Purpose | Priority | Est. Cost | Status |
|---|---|---|---|---|
| Google Analytics 4 (GA4) | Traffic analytics, user behavior, conversion tracking | HIGH | Free | PENDING |
| Google Business Profile | Local SEO, reviews, Google Maps presence | HIGH | Free | PENDING |
| BBB Listing | Trust signal, credibility, required for competitive parity | HIGH | ~$500/yr | PENDING |
| Rank Math (new server) | SEO plugin for self-hosted WordPress | HIGH | Free | INSTALL |
| Google Search Console API | Automated ranking/indexing data for SEO agent | MEDIUM | Free | CONNECT |
| Anthropic API Key | AI-powered content generation and analysis agents | MEDIUM | ~$10/mo | PLANNED |
| Meta Business Suite | Facebook/Instagram business page, social posting | MEDIUM | Free | CREATE |
| Reddit Account | Community engagement in r/solar, r/legaladvice, r/homeowners | MEDIUM | Free | CREATE |
| HARO (Help a Reporter Out) | Free PR/backlinks by responding to journalist queries | MEDIUM | Free | PLANNED |
| Ahrefs/SEMrush | Professional SEO tooling — keyword tracking, backlink analysis | LOW | $99-199/mo | PLANNED |
| Hotjar/Microsoft Clarity | Heatmaps, session recordings, CRO insights | LOW | Free tier | PLANNED |
| Zapier/Make | Automation between GHL, email, Slack, Google Sheets | LOW | Free tier | PLANNED |
| TRU Solar Cancellation Site | 5-page product site for the $450 DIY document package | HIGH | $0 (build ourselves) | THIS WEEK |
Layer 1 — VS Code: Write and test code locally (Claude Code assists)
Layer 2 — GitHub: Version control, code storage (OSA-hash/solar-panel-exit)
Layer 3 — Railway: Cloud server runs agents 24/7, auto-deploys on git push
1. Edit HTML files locally in VS Code
2. Run node publish.js or node migrate-to-do.js to push to WordPress via REST API
3. Push to GitHub: git add . && git commit -m "message" && git push
4. Railway auto-redeploys agents within 30 seconds
Every content page must include ALL of these:
| # | Requirement | Status |
|---|---|---|
| 1 | Editorial disclosure: "SolarPanelExit.com and TRU Solar Cancellation share common ownership" | ON ALL PAGES |
| 2 | Anti-breach: "We do not advise homeowners to stop making payments or breach contractual obligations" | ON ALL PAGES |
| 3 | "Not legal advice" disclaimer | ON ALL PAGES |
| 4 | "Results vary by individual situation" | ON ALL PAGES |
| 5 | Links to /ownership-disclosure, /advertiser-disclosure, /methodology | ON ALL PAGES |
| 6 | GHL popup form with privacy notice mentioning TRU ownership | ON ALL PAGES |
| 7 | Author byline: "SolarPanelExit Editorial Team — Reviewed by licensed consumer protection attorneys" | ON ALL PAGES |
| Date | Milestone |
|---|---|
| Mar 28, 2026 | Session started with 18 pages on WordPress.com |
| Mar 28 | Built 50 state pages, 3 blog posts, companies hub, state hub |
| Mar 28 | Ran 5 audits (404, Legal, SEO, CRO, UI/UX) |
| Mar 28 | Applied all audit fixes, published to WordPress.com |
| Mar 29 | Built 17 more blog posts, 10 company exit pages, 30 city pages |
| Mar 29 | Built 8 educational pages, 8 keyword pages, 6 bankruptcy pages |
| Mar 29 | Built interactive tools (calculator, quiz, checklist, comparison) |
| Mar 29 | Total reached 172 pages |
| Mar 29 | Connected GitHub, deployed 7 agents to Railway |
| Mar 29 | Ran 11 comprehensive audits (Legal, SEO, CRO, E-E-A-T, IP) |
| Mar 29 | Applied all fixes: schema, TRU moderation, bylines, social proof |
| Mar 30 | Discovered WordPress.com strips <style> tags from content |
| Mar 30 | Migrated to self-hosted DigitalOcean ($6/mo) |
| Mar 30 | Published all 171 pages on new server |
| Mar 30 | SSL certificate installed, domain pointed to new server |
| Mar 30 | Custom blank theme created for zero-interference rendering |