Electrum Home — Product & Engineering Overview

Last updated: April 6, 2026 URL: https://electrumhome.com


What It Is

AI-powered home services platform — transactional SaaS, not lead gen. Customer describes their project → AI scopes it → generates a detailed quote with good/better/best options → customer books and pays → we match them with a licensed installer → contract generated and signed → work completed → installer paid.

Solar vertical is a flagship product: customer enters their address → we analyze their roof using Google Solar API + LIDAR data → show solar panels on their actual satellite imagery → calculate savings based on their electric bill → full configurator with panel type, inverter, battery, and add-on options → account creation → Stripe payment → into the fulfillment pipeline.


By The Numbers

Metric Count
Pages 55+
API Routes 55+
React Components 50+
Service Verticals (quote flows) 50
Solar Flow (standalone) 1 flagship vertical
SEO Articles 20
Service Landing Pages 50
AI-Generated Images 68+
TypeScript/TSX Files 290+
Lines of Code ~80,000+
Supabase Tables 17
DB Migrations 14
Commits (Apr 4-6 alone) 92

All Platform Links

Customer-Facing

Page URL
Homepage https://electrumhome.com
Solar Flow (Flagship) https://electrumhome.com/solar
Browse All Services https://electrumhome.com/flow
Example Flow (HVAC) https://electrumhome.com/flow/hvac-replacement
Example Flow (EV Charger) https://electrumhome.com/flow/ev-charger
Learn / Articles https://electrumhome.com/learn
Tools Index https://electrumhome.com/tools
EV Load Calculator https://electrumhome.com/tools/ev-load-calculator
Energy Audit https://electrumhome.com/tools/energy-audit
Maintenance Planner https://electrumhome.com/tools/maintenance-planner
About https://electrumhome.com/about
Dashboard (auth required) https://electrumhome.com/dashboard
Smart Alerts (auth required) https://electrumhome.com/alerts
Settings (auth required) https://electrumhome.com/settings
Expense Command Center (auth required) https://electrumhome.com/command-center
Dream Board (auth required) https://electrumhome.com/dream-board

Installer-Facing

Page URL
Installer Auth (magic link) https://electrumhome.com/installer/auth?token={token}
Installer Portal (after auth) https://electrumhome.com/installer/portal
Installer Onboarding https://electrumhome.com/installer/portal/onboarding
Project Review https://electrumhome.com/installer/portal/project/{id}
Active Project View https://electrumhome.com/installer/portal/project/{id}/active
Contract Signing https://electrumhome.com/sign/{token}
GM Energy Installer Tool https://electrumhome.com/installing/gm

Admin (whitelisted emails only)

Page URL
Fulfillment Command Center https://electrumhome.com/admin/fulfillment
Project Detail https://electrumhome.com/admin/fulfillment/projects/{id}
Installer Database https://electrumhome.com/admin/fulfillment/installers
Customer Preview (Dashboard) https://electrumhome.com/admin/preview/dashboard/{userId}
Customer Preview (Project) https://electrumhome.com/admin/preview/project/{id}

Tech Stack

Layer Technology
Framework Next.js 16.2 (App Router, React 19)
Database Supabase (PostgreSQL + Auth + Storage + RLS)
Payments Stripe (PaymentIntents, Webhooks, Promotion Codes)
Hosting Vercel (auto-deploy)
Styling Tailwind CSS 4
Animation Framer Motion (solar flow)
Icons Lucide React
AI — Development Anthropic Claude Opus 4.6 (via OpenClaw)
AI — Subagents Anthropic Claude Sonnet 4.6
AI — GM Chatbot Anthropic Claude Sonnet
AI — Images Google Imagen 4.0
Solar Analysis Google Solar API (buildingInsights)
Maps Google Maps JavaScript API + Places + Static + Geocoding
Property Data ATTOM Data API
Photo Storage Supabase Storage (project-photos bucket)
Analytics Google Analytics (G-NS2XK2KCS0)
Language TypeScript (strict)

Core Features

1. Solar Flow — Flagship Product (/solar)

A standalone, conversion-optimized solar estimation flow designed for paid ad traffic.

Phase 1 — Landing Page

  • Hero: "See How Much You'd Save With Solar"
  • Google Places address autocomplete
  • Social proof (100,000+ homeowners, 5-star rating)
  • Trust badges: Licensed Installers, Price Match Guarantee, 25-Year Warranty
  • How it Works: 3-step visual explainer
  • AI-generated imagery (Imagen 4.0)

Phase 2 — Discovery Questionnaire

  • 5 animated questions with Framer Motion transitions
  • Monthly electric bill (drives system sizing), roof age, electrical panel, battery interest, shading
  • Background API calls fire on address entry (latency masking)
  • Rotating homeowner testimonials
  • "AI is analyzing your roof design..." indicator

Phase 3 — Analysis Loader

  • Safety net if API hasn't returned
  • Animated progress ring with cycling status messages
  • Skips automatically if results are ready

Phase 4 — Interactive Configurator

  • Before/After bill comparison: "Current Bill: $400/mo → With Solar: $0/mo — You save $699/mo ($8,388/year)"
  • Satellite roof map: Google Maps satellite view at zoom 20 with solar panels overlaid using Google Solar API LIDAR positions, rotated to match roof segment azimuth
  • Consumption-based sizing: Recommends panel count based on customer's electric bill, not max roof capacity
  • Panel count slider: From minimum to max roof capacity with "Recommended" badge
  • Fill best segments first: Panels fill the most productive roof faces completely before moving to the next (no orphan panels)
  • Rich configuration cards: Panel type (Standard 400W vs Premium 440W with specs), Inverter (String vs Enphase IQ8+ Microinverters with use-case guidance), Battery (None vs Tesla Powerwall 3 with backup hours)
  • Optional add-ons: EV Charger Bundle (+$1,200), Critter Guard (+$800), Extended Monitoring (+$500), Roof Reinforcement (+$2,500)
  • Investment breakdown: System cost, $2.50/watt base, 20-year loan at 5.5%, payback period, 20-year total savings
  • Desktop split layout: Sticky summary panel (map + investment + CTA) on right, scrollable configurator on left
  • FAQ accordion: 6 common questions
  • CTA: "Lock In Your Price — $99 Refundable Deposit"

Phase 5 — Checkout

  • Account creation (Google SSO / email signup / sign-in)
  • Contact form pre-filled from solar flow
  • Order summary with system details
  • Saves project → redirects to Stripe payment → fulfillment pipeline

Technical: Google Solar API Integration

  • buildingInsights:findClosest endpoint for real roof analysis
  • Returns: panel positions (LIDAR), roof segments (pitch, azimuth, area), panel configs at different counts, annual production, financial analysis
  • Panels rendered as rotated polygons on Google Maps satellite view
  • Compass-to-math angle conversion for proper roof alignment
  • Fallback estimates for locations without Solar API coverage

2. Intake & Quote Flow Engine (50 Verticals)

  • 50 service verticals across 12 categories
  • Good / Better / Best tiering with real brand names and specs
  • Dynamic pricing — regional multipliers, tonnage-based tables, conditional line items
  • Per-unit pricing — multi-unit HVAC support with labor discounts
  • Smart recommendations — scoring engine evaluates answers
  • Permit waiver system — end-to-end: removes permits from line items, totals, detailed quote, scope of work, installer view, and payment page. Checks answers.permit_handling === "customer_pulls" as ground truth across all pages
  • Photo upload — drag-and-drop to Supabase Storage, per-vertical prompts, thumbnails on dashboard with prompt labels
  • Signed-in users skip re-authentication on new projects
  • Date/time picker always shown (including for already-authenticated users)

3. Contract System

  • Contract generation — HTML contracts with state compliance (California §7159), equipment specifications from scope data
  • Dual signing flow — installer signs first, then customer. Sign tokens in sign_tokens table
  • Contract signing page (/sign/{token}) — contract rendered in isolated iframe, sticky sign footer with draw/type signature options, collapsible UI
  • Mobile-optimized — single column, responsive padding, centered on desktop (700px max-width)
  • Status trackingcontract_pending → individual customer_signed/installer_signed flags → contract_signed when both complete
  • Customer sees positive feedback immediately after signing (even before installer signs)
  • Opens in new tab from customer/installer dashboard
  • Contract deduplication — re-clicking "Send Contract" returns existing contract instead of creating duplicates
  • Admin contract view — admin auth added to contract API for command center viewing

4. Customer Dashboard

  • Project status synced with fulfillment — reads project_fulfillment.status, not stale projects.status
  • Customer-facing status labels: Finding Your Pro, Matching in Progress, Installer Matched, Contract Pending, Contract Signed, Work in Progress, Work Complete, Completed
  • Installer card — shows when matched: business name, contact name, phone (tel: link), email (mailto: link), license number + state, rating, years in business
  • Contact Your Pro quick actions — Call, Text, Email buttons with native device links
  • Real-time messaging — ProjectChat component with 10-second polling, optimistic updates, read receipts. Installer auth checked before customer auth to prevent sender misidentification
  • Photo thumbnails — handles both URL strings and metadata objects, lightbox with prev/next, photo prompt labels as captions
  • Contract section — View & Sign button (opens in new tab), status indicator
  • Timeline — 8-step visual timeline, "Photos Uploaded" auto-marks when photos exist
  • Price display — respects permit waiver, deducts from totals and line items
  • Title/subtitle deduplication — suppresses redundant category when it matches title
  • Nav reordered — My Projects + New Project adjacent

5. Admin Command Center

  • Brand purple (#8857D8) throughout — replaced all generic Tailwind purple
  • Photo thumbnails with lightbox in project detail
  • Outreach accordion — collapsible, auto-collapse when contractor assigned, summary line with count
  • Selected contractor highlight — green border + "✓ Selected" badge
  • Full email preview toggle in outreach messages
  • Editable outreach messages — Edit → textarea → Save/Cancel with PATCH endpoint
  • Contract view — parses contract:UUID, fetches JSON with html field, opens in new window
  • Raw JSON collapsed<details>/<summary> "View details" click instead of code dump
  • Customer preview — "View as Customer" opens full dashboard preview at /admin/preview/dashboard/{userId}
  • Admin preview project/admin/preview/project/{id} with amber banner

6. Installer Portal

  • Dashboard — Available / Active / Completed project tabs with cache: "no-store" to prevent stale data
  • Project acceptance — bid API with proper fulfillment_id, updates fulfillment status
  • Contract send — generates contract, creates signing tokens, shows installer signing URL
  • Auto-load signing URLs — when returning to a project with existing contract, signing links load automatically
  • Post-signature navigation — customers route to /dashboard, installers to /installer/portal
  • Messaging — two-way chat, installer auth resolved via JWT (checked before Supabase auth), fallback access checks via bids and outreach records
  • Deep-link highlight — installer database link from outreach scrolls to and highlights the installer

7. Smart Alerts

  • Dedicated /alerts page (was previously broken — linked to expenses)
  • AlertsPanel component fully rendered (existed but was never imported)
  • "View all alerts" links corrected

8. Free Homeowner Tools

  • EV Load Calculator — panel capacity analysis with photo upload
  • Energy Audit Tool — ATTOM property lookup → payback calculations
  • Home Maintenance Planner — 40+ tasks, month-by-month, property-aware

9. SEO & Content

  • 20 articles across 3 pillars
  • 50 service landing pages with pricing breakdowns
  • Google Analytics (G-NS2XK2KCS0) integrated

Fulfillment System

Pipeline

  1. Customer completes flow → pays booking fee via Stripe
  2. Stripe webhook fires → fulfillment trigger creates project_fulfillment record
  3. Admin starts sourcing (or auto-trigger)
  4. AI agents source installers via Google Places
  5. Outreach via SMS/email with magic link
  6. Installer reviews → accepts/counters/declines
  7. Contract generated → installer signs → customer signs
  8. Work performed → job complete → installer paid

Fulfillment Statuses

deposit_paidsourcingoutreach_in_progressinstaller_reviewinginstaller_acceptedcompliance_pendingcontract_pendingcontract_signedin_progressjob_completecompleted

Key Architecture Decisions

  • projects.status stays "order_placed" forever — real status is in project_fulfillment.status
  • installers table has RLS — customer/installer pages use createAdminClient() for cross-table reads
  • Installer data fetched with select("*") — column names vary, specific selects break
  • Contract URLs stored as contract:UUID — must parse for API calls
  • Messages API checks installer auth (JWT) before customer auth (Supabase) to prevent misidentification
  • Contract generate has no status filter — any fulfillment with an assigned installer works
  • Installer resolution has 3 fallbacks: assigned_installer_id → contract's installer_id → accepted bid's installer_id

Database Schema (17 Tables)

Customer Tables

Table Purpose
users User profiles
properties Multi-property support
households Household grouping
household_members Users ↔ households
projects Saved projects with scope data, pricing, payment
expenses Recurring expense tracking
alerts Smart alerts / insights

Fulfillment Tables

Table Purpose
installers Installer profiles (name, business, license, rating, AI vetting)
project_fulfillment Links projects to installers (status, pricing, contract, signed flags)
outreach_log Outreach messages + AI sentiment analysis
installer_bids Bid submissions (accept, counter, decline)
installer_tokens Magic link auth tokens
fulfillment_status_history Full audit trail

Contract & Messaging Tables

Table Purpose
contracts Generated contracts (HTML, status, signatures)
contract_signatures Individual signature records with audit trail
sign_tokens Signing link tokens (installer + customer)
project_messages Two-way messaging between customer and installer

Integrations

Service Purpose Status
Stripe Payments ($49/$99 booking fees, webhooks) ✅ Live (test mode)
Stripe Connect Installer payouts 🔧 Built, pending onboarding
Google Solar API Roof analysis, panel placement, production estimates ✅ Live
Google Maps JS API Satellite view + panel overlay in solar configurator ✅ Live
Google Maps Places Address autocomplete ✅ Live
Google Places Installer sourcing ✅ Live
Google Imagen 4.0 AI-generated solar imagery (7 images) ✅ Live
Google Analytics Site analytics (G-NS2XK2KCS0) ✅ Live
Supabase Auth User auth (Google SSO + email/password) ✅ Live
Supabase DB PostgreSQL with RLS, 17 tables ✅ Live
Supabase Storage Photo uploads (project-photos bucket) ✅ Live
ATTOM Data Property data lookup ✅ Live
Anthropic Claude AI chatbot, response parsing, development ✅ Live
Vercel Hosting, CI/CD ✅ Live
Twilio SMS installer outreach 🔧 Built, account pending
Resend Email installer outreach 🔧 Built, account pending

Design System

  • Brand color: Purple (#8857D8, darker: #7B4FD3)
  • Dark/light mode support via CSS variables
  • No emojis in customer-facing UI
  • Lucide icons throughout
  • AI-generated imagery via Google Imagen 4.0
  • Mobile-first with responsive desktop layouts
  • Enterprise design ethos — professional, clean, premium
  • Consistent styling: bg-background, bg-surface, text-foreground, text-muted, border-border, bg-brand

Service Verticals (50)

Projects (34)

HVAC Replacement, Insulation, Attic Insulation, EV Charger, Electrical Services, Solar Installation, Generator, Smart Home, Kitchen Remodel, Bathroom Remodel, Bathroom Vanity, Flooring, Plumbing Repair, Water Heater, Water Softener, Septic System, Roof Replacement, Window Replacement, Siding, Fencing, Garage Door, Chimney Repair, Gutter Services, Deck Building, Pool Installation, Concrete Driveway, Tree Removal, Outdoor Lighting, Landscaping, Foundation Repair, Basement Waterproofing, Radon Mitigation, Interior Painting, Home Security

Services (16)

HVAC Maintenance, Chimney Sweeping, Dryer Vent Cleaning, Sprinkler Maintenance, Appliance Repair, Duct Cleaning, House Cleaning, Pressure Washing, Window Cleaning, Carpet Cleaning, Lawn Care, Pool Service, Snow Removal, Pest Control, Handyman, Junk Removal


What's Not Yet Live

Item Status
Twilio SMS outreach Account setup pending
Resend email outreach Account setup pending
Stripe live mode Switch from test to production keys
Stripe Connect payouts Installer onboarding
Aurora Solar Design API Add-on not purchased (using Google Solar API instead)
Equipment confirmation Moved to pre-contract phase, not yet re-wired
Plaid bill import Future
Push/text reminders Future

Changelog Highlights (April 4-6, 2026)

Solar Flow (New — Flagship)

  • Built complete standalone solar flow at /solar with latency-masking async pattern
  • Google Solar API integration (real roof analysis + LIDAR panel positions)
  • Satellite map with rotated panel overlay (compass-to-math angle conversion)
  • Consumption-based panel recommendation (fill best roof segments first)
  • Conversion-optimized landing page with AI-generated imagery
  • Rich configuration cards with education on each option
  • Add-ons section (EV Charger, Critter Guard, Monitoring, Roof Reinforcement)
  • Before/after bill comparison hero
  • Sticky summary panel on desktop
  • Full pipeline wiring (account creation → Stripe payment → fulfillment)
  • FAQ accordion

Contract System (Major Fixes)

  • Contract generation deduplication
  • Iframe rendering for style isolation
  • Compact collapsible signing footer
  • Dual signing with proper status tracking
  • Opens in new tab
  • Centered on desktop
  • Single-column layout (no more side-by-side breakage)
  • Admin auth for contract viewing
  • Status filter removed from generator (was blocking valid contracts)
  • answers format handling (dict vs array)

Customer Dashboard (Major Fixes)

  • Status synced with fulfillment (was stuck on "order_placed")
  • Installer card now showing (fixed: select("*") for installer query, RLS bypass)
  • Contact Your Pro quick actions (Call, Text, Email)
  • Chat working end-to-end (auth order fix, access check fallbacks)
  • Photo thumbnails from both URL strings and metadata objects
  • Photo upload working in flow (client-side Supabase Storage)
  • Permit waiver end-to-end (checks answers.permit_handling as ground truth)
  • Title/subtitle deduplication
  • Smart Alerts page wired up
  • Nav reordered
  • Timeline reflects photo upload status

Admin Command Center (Major Improvements)

  • Brand purple throughout
  • Photo thumbnails with lightbox
  • Outreach accordion
  • Selected contractor highlight
  • Email preview + editable messages
  • Raw JSON collapsed
  • Customer preview (full dashboard + single project)

Installer Portal (Fixes)

  • Dashboard cache busting
  • Fulfillment ID returned from API
  • Contract generation error fixes
  • Auto-load signing URLs
  • Post-signature routing (customer → dashboard, installer → portal)
  • Message sender identification fix

Infrastructure

  • Google Analytics added
  • Heartbeat disabled (token savings)
  • Memory/context files optimized