Geothermal heat pump installation for residential HVAC heating and cooling system by professional contractors
Back to Case Studies
Case Study · SaaS Directory Platform

Building Geothermal.contractors: A Full-Stack Directory Platform with a 3D Globe, Stripe Subscriptions & Automated SEO

An in-depth walkthrough of the architecture, engineering decisions, and cost math behind a production-grade Next.js 15 SaaS directory that turns an exact-match domain into a recurring-revenue machine.

April 202625 min readBy Mike

$225,000

Total Investment

4 Months

Timeline

$587K

Year 1 ARR

9 Months

Payback

The Challenge: No Centralized Hub for a Booming Trade

Ground-source heat pumps reduce household energy consumption by 40–70 percent, qualify for federal tax credits, and last two to three times longer than conventional HVAC systems. The technology is mature, the economics are compelling, and consumer demand has accelerated sharply since the Inflation Reduction Act expanded residential clean-energy incentives. Yet when a homeowner types "geothermal installer near me" into Google, the results are a wasteland of generic aggregator listings, outdated Yelp pages, and SEO-farm directories that treat geothermal contractors the same way they treat plumbers or lawn-care crews.

The client had already secured the premium exact-match domain Geothermal.contractors — a category-defining URL that signals instant authority in organic search. What they lacked was the technical bench to transform that domain into a living platform: one that could rank nationally for thousands of location-based keywords, convert high-intent traffic into qualified contractor leads, and monetize through recurring subscriptions rather than one-time ad placements.

They came to us with three non-negotiable requirements. First, every contractor in the directory had to have a dedicated, SEO-optimized profile page — not a card in a list. Second, the platform had to generate its own revenue through a self-serve subscription model, eliminating the need for an outbound sales team. Third, the design had to match the eco-premium aesthetic of the flagship partner, EarthRiverGeothermal.com, pixel for pixel. This was not a WordPress theme project — it was a ground-up SaaS build.

Professional HVAC technician installing a geothermal ground-source heat pump system for residential heating and cooling

Ground-source heat pump installation — the high-value service at the center of this platform.

Our Solution: A Revenue-Generating Directory Built to Dominate Search

We architected Geothermal.contractors as a self-sustaining SaaS directory — not a static listing site, but a conversion engine with a built-in paywall, automated SEO, and a subscription billing system that runs without manual intervention. Every screen, every interaction, and every API endpoint was designed around a single question: does this help a contractor close more jobs?

The homepage opens with a 3D interactive globe pinned with state flags — an immediate visual signal that this is a national platform, not a regional blog. Below the fold, homeowners search by ZIP code and see contractors ranked by proximity. Contractor profiles start blurred and gated; once a business subscribes, the profile unlocks with a full media gallery, testimonials, a direct contact form, and rich structured data that feeds Google's Knowledge Panel. The result is a flywheel: more subscribers produce more content, which drives more organic traffic, which attracts more subscribers.

3D Interactive Globe

A spinning globe pinned with state flags at every U.S. capital — hand-built with @react-three/fiber and Three.js, with a mobile-optimized SVG fallback.

ZIP-Code Proximity Search

Haversine-formula distance sorting, searchable contractor tables, grid views, and featured-contractor carousels that surface the closest pros first.

LinkedIn-Style Contractor Profiles

Blurred previews convert to full profiles once a contractor subscribes — complete with logos, testimonials, contact forms, and Schema.org LocalBusiness markup.

Stripe Subscription Engine

Three tiers — Basic Listing at $49/mo, Featured Pro at $99/mo, Premium Pro at $149/mo — with a 20% annual discount and automated dunning.

Automated SEO Pipeline

Every page auto-targets keywords, generates internal links, outputs WEBP images with SEO filenames, and feeds a dynamic sitemap.xml with XSLT display.

Admin Command Center

Full CRUD dashboard with pricing controls, a message center powered by SendGrid inbound webhooks, and TipTap rich-text editing for content management.

Interactive 3D globe visualization showing geothermal HVAC contractor locations across the United States

Custom Three.js globe with state-flag billboards — degrades to an interactive SVG map on mobile.

Development Approach: Four-Month Sprint Cadence with a Senior USA Team

We staffed this engagement with a six-person team — lead architect, two senior frontend engineers, a backend and database specialist, a UX designer, and a dedicated project manager — all based in the United States. No offshore relays, no timezone lag, no context lost in translation. Work moved in tight two-week sprints across a four-month delivery window, with stakeholder demos every other Friday.

The tech stack was chosen for speed, SEO performance, and long-term maintainability. Next.js 15 with the App Router gives us server-rendered pages for search engines and a rich client-side experience for end users, all inside a single codebase that eliminates the need for a separate Express or NestJS backend. TypeScript enforces type safety from the database layer to the UI. Tailwind CSS allowed the frontend team to match the EarthRiverGeothermal aesthetic in utility tokens rather than fighting a CSS framework.

Data lives in PostgreSQL accessed through Prisma — giving us type-safe queries, automatic migrations, and a geospatial index layer for the ZIP-code proximity engine. Stripe manages all subscription billing, webhooks, and dunning. SendGrid handles transactional emails and powers the inbound-webhook message center in the admin dashboard. Sharp processes every uploaded image into optimized WEBP format on the fly.

Super Admin command center dashboard for managing geothermal contractor profiles and directory listings

The Super Admin Command Center — full CRUD, pricing controls, message center, and TipTap rich-text editing.

Under the Hood: Engineering That Compounds Value

WebGL Globe with Graceful Degradation

The homepage hero is a slowly rotating 3D globe rendered in WebGL through @react-three/fiber. Each of the 50 U.S. state capitals carries a billboard sprite of its state flag, and users can spin, pinch-zoom, and click any state to jump directly into its contractor directory. On devices without GPU acceleration, the component detects the limitation and swaps in a high-fidelity SVG map with identical tap-to-navigate behavior — no jarring loading states, no broken fallback. The geometry, texture atlases, and frame-rate budgeting were custom-engineered; this is not a charting library or a third-party embed.

Blurred-Profile Paywall & Subscription Lifecycle

Every contractor in the database receives a profile page modeled after a LinkedIn business profile. Before the contractor subscribes, the page renders in a blurred, link-disabled state — a soft paywall that lets prospects see exactly what they are missing. The moment a Stripe subscription activates, a webhook fires, flips the visibility flag, and the profile unlocks with the company logo, a scrollable photo gallery, service-area descriptions, verified customer testimonials, and a direct lead-capture form. Cancellation reverses the process automatically. No manual moderation required.

Haversine Proximity Engine

When a homeowner enters a ZIP code, the backend resolves it to latitude and longitude, runs a Haversine-formula distance calculation against every contractor record, and returns results sorted by proximity — all in under 50 milliseconds thanks to a PostgreSQL geospatial index. Contractors within 25 miles receive a "Nearby" badge. The same index powers the featured-contractor carousel and the state-level directory pages, ensuring that the closest, most relevant businesses always surface first.

SEO Automation Layer

Rather than relying on manual metadata entry, we built an automation layer that handles optimization at publish time. Every page targets one to two primary keywords, generates contextual internal links, converts uploaded images to WEBP with keyword-rich filenames and descriptive alt text, and registers itself in a dynamic sitemap.xml served with a styled XSLT view. Open Graph images and social thumbnails are generated programmatically. Within weeks of launch, the domain was ranking on page one for competitive long-tail terms like "geothermal HVAC contractor near me" and "ground-source heat pump installer [state]."

SEO analytics dashboard showing organic traffic growth for geothermal contractor directory website

Organic traffic trajectory tracked through the built-in analytics dashboard.

Launch Partner: Earth River Geothermal (Annapolis, MD)

We seeded the platform with Earth River Geothermal as its flagship featured advertiser. Their profile includes a professionally authored 5,000-word premium page covering service-area maps, certifications, an installation gallery, and customer success stories. We also published 10+ SEO-optimized blog articles tied to their geothermal HVAC expertise in the Maryland and D.C. metro region. This gave the directory real, indexable content from day one — and gave Earth River a concrete demonstration of the subscriber value proposition.

Cost Breakdown: Every Dollar Itemized

Radical cost transparency is a core operating principle. Below is the complete, line-by-line cost breakdown for building Geothermal.contractors from a blank repository to a production deployment, staffed entirely by senior USA-based engineers. No pre-built templates were used. Every component, API route, and database migration was purpose-built for this platform.

Development Cost Breakdown

8 components · USA-based senior development team

Total Investment

$225,000

Development Hours

1,520+

Timeline

4 Months

Total Project Investment: $225,000

8 of 8 components · All categories

USA-Based Senior Developers · 2026 Rates
Using our pricing table + RFP add-on options

What This Project Costs With Us

Our Price

$56,983

one-time project cost

Market Rate (USA Agency)

$225,000

You Save

75%

Custom Web App Development (Flagship)

One-time LTO — Includes SEO + AIO + GEO + AEO + Schema.org + WCAG 2.2 + Local SEO + GA4 + Search Console + Bing Webmasters + IndexNow API + CMS/Blog + Responsive Design + Enterprise Business Listings

$6,999

A USA-based agency quoting this scope would land at approximately $225,000 — a figure that reflects 1,680 senior-level team hours across architecture, 3D engineering, subscription billing, and SEO automation. Through Digital Marketing Co.'s transparent pricing model — our $6,999 flagship plan plus individually itemized add-ons — the same deliverable totals $56,983, a 75% savings. The reduction comes from proprietary tooling, reusable infrastructure, and a streamlined delivery process, not from cutting corners or offshoring labor.

How We Derived the $225,000 Number

Hours × Rate = Dollars

Below is the labor-hour math that produces the market-rate figure. Every row maps real agency-grade work — hours assigned to a senior USA-based team, multiplied by a blended 2026 hourly rate. This is the exact estimation structure we include in our proposals for a Next.js, React, Prisma, and Tailwind CSS directory platform of this scope.

Agency Rate

$120–$180/hr

Senior USA-based team, blended

Tech Stack

Next.js · React

Prisma · Tailwind CSS

Built custom, not a template

Team

Lead architect, 2 senior frontend engineers, 1 backend/database engineer, 1 UI/UX designer, 1 project manager — delivered over a 4-month sprint cadence.

Line-Item Labor Derivation

Hours are agency-typical estimates for this scope; totals = hours × $120–$180/hr

CategoryHours× RateLowHigh

Discovery, UX & Design System

Brand workshop, IA for state + contractor pages, Figma system, responsive prototypes, pixel-matching the Earth-River aesthetic.

180–240$120–$180$21,600$43,200

3D Globe (Three.js / R3F) & SVG Fallback

Custom geometry, state-flag billboards, geo-coordinate pin drops, click-to-route, mobile SVG fallback, WebGL performance tuning.

140–200$120–$180$16,800$36,000

Frontend (Next.js 15 + React 19 + Tailwind)

App Router, SSR for SEO, contractor profiles, ZIP-code search UI, pricing pages, blurred-to-unlocked paywall, admin UI.

360–500$120–$180$43,200$90,000

Backend & API (Next.js Route Handlers)

Contractor CRUD, Haversine geospatial search, subscription lifecycle, SendGrid inbound webhooks, message center API, SEO automation layer.

220–320$120–$180$26,400$57,600

Database (Prisma + PostgreSQL)

Schema for contractors, plans, messages, pricing, media; geospatial indexes; Prisma migrations and seeding.

90–130$120–$180$10,800$23,400

Stripe Subscriptions & Billing

3-tier plans, annual-discount logic, webhooks, pricing controls in the admin panel, dunning.

70–110$120–$180$8,400$19,800

SEO / AEO / AIO / GEO Automation Layer

Schema.org LocalBusiness, dynamic sitemap + XSLT view, WEBP pipeline with Sharp, auto internal linking, OG image generation.

130–200$120–$180$15,600$36,000

QA, Accessibility & Security

Cross-browser + mobile QA, Lighthouse 95+, WCAG 2.2 AA audit, Stripe PCI scope review, basic pen test.

100–150$120–$180$12,000$27,000

DevOps, Hosting & Launch

Vercel + managed Postgres, domain + DNS + SSL, CI/CD, error monitoring, staged launch.

60–90$120–$180$7,200$16,200

Project Management (~15%)

2-week sprints, stakeholder reviews, risk tracking, documentation, 4-month delivery cadence.

210–320$120–$180$25,200$57,600

Launch Content (Earth River Geothermal seed)

5,000-word flagship profile + 10 SEO-optimized blog posts + on-page metadata and imagery.

120–180$120–$180$14,400$32,400
Fixed-bid total (all categories combined)$225,000 (mid-bid, ~1,680 team hours)

Why this stack keeps the math honest

Next.js 15 replaces a second backend framework

Running the directory, admin, subscription webhooks, and SEO APIs inside one Next.js codebase avoids a separate Express/Nest service and knocks out roughly 120–180 integration hours — about $15K–$32K off the build.

Prisma + PostgreSQL cuts QA on geospatial data

Type-safe Prisma queries against a Postgres schema with proper geospatial indexes catch bugs at compile time. That is why the QA line item is ~100–150 hours instead of the ~180–230 we would book for a raw-SQL stack.

Tailwind CSS keeps the design-to-code gap thin

Matching the EarthRiverGeothermal aesthetic in Tailwind tokens lets the frontend team ship pages ~30–40% faster than hand-rolled CSS — the single biggest reason the frontend line stays at 360–500 hours for a site of this surface area.

React supplies the widest talent pool

React + TypeScript developers are plentiful in the US labor market, which keeps the blended senior rate inside the $120–$180 band. Niche 3D or WebGL-only specialists cost $200+, which is why we keep them on the project only for the Three.js globe sprint.

After launch

Plan on ~15% of the build cost annually for ongoing maintenance — Next.js/React upgrades, Prisma migrations, Stripe API version bumps, Three.js patches, and content SEO refreshes. For a $225K build that is ~$33.75K/year, or ~$2.8K/month — comfortably under 5% of the projected Year 1 ARR.

Stripe subscription analytics dashboard showing recurring revenue and contractor sign-up metrics

Stripe dashboard tracking MRR, subscriber growth, and churn rates.

Revenue Model & Three-Year Projections

A directory platform lives or dies on subscriber economics. We modeled conservative adoption rates drawn from the addressable market of licensed geothermal HVAC contractors in the United States, cross-referenced with willingness-to-pay benchmarks from competing lead-generation platforms (Angi, Thumbtack, HomeAdvisor) and the organic traffic ceiling of an exact-match .contractors domain with best-in-class SEO.

Basic Listing

$49/mo

Full profile, search visibility, lead capture form

Most Popular

Featured Pro

$99/mo

Everything in Basic + featured placement, priority badge

Premium Pro

$149/mo

Homepage carousel, SEO-written content, dedicated page

3-Year Revenue Projection

$587K

600 contractors

2.6x ROI

Year 1

$1.56M

1,600 contractors

6.9x ROI

Year 2

$3.13M

3,200 contractors

13.9x ROI

Year 3

Payback Period

9 Months

3-Year ROI

13.9x

Lead Value

$150–$400+

Year 3 ARR

$3.13M

At a blended average of approximately $82 per month across the three tiers, the Year 1 target of 600 paying contractors produces $587K in annual recurring revenue. Year 2 scales to 1,600 subscribers and $1.56M ARR as organic rankings compound and word-of-mouth referrals accelerate. By Year 3, with 3,200 active subscribers and a growing share of annual-plan upgrades, the platform reaches $3.13M ARR — a 13.9x return on the original $225,000 development investment, with full payback occurring inside nine months of reaching operational capacity.

The unit economics are equally compelling from the contractor's perspective. A single geothermal installation is worth $15,000–$30,000 to a contractor. High-intent search traffic from "geothermal contractor near me" queries delivers leads valued at $150–$400 each. A contractor paying just $49 per month needs only one closed job from the platform to see an outsized return — a value proposition that makes subscriber acquisition dramatically easier than it would be for a generic home-services directory.

Business growth chart showing explosive return on investment for geothermal contractor directory platform

ROI trajectory: full payback at month nine, 13.9x cumulative return by Year 3.

"

"We knew the Geothermal.contractors domain was valuable, but we didn't have the engineering depth to build what we'd sketched on a whiteboard. Digital Marketing Co. turned a rough concept deck into a fully operational SaaS platform — the 3D globe, the subscription billing, the SEO automation, all of it. Within 90 days of launch we had paying subscribers and organic traffic that keeps climbing month over month. The ROI math isn't theoretical anymore; it's in our Stripe dashboard."

Geothermal.contractors Founding Team

Platform Owner & Operator

What We Delivered

Production-grade Next.js 15 directory with custom 3D interactive globe

ZIP-code proximity search with sub-50ms geospatial query performance

Blurred-to-unlocked contractor profiles gated by Stripe subscriptions

Three-tier subscription engine ($49 / $99 / $149 per month) with annual discounts

Automated SEO/AEO/AIO/GEO pipeline with Schema.org LocalBusiness markup

Super Admin Command Center with TipTap editor and SendGrid message center

Lighthouse 95+ performance scores across every page

Earth River Geothermal seeded as flagship launch partner with 10+ blog posts

Projected Return on Investment

3-Year Projected

13.9x

Return on Investment

Investment

$225,000

Timeframe

3-Year Projection

ROI Multiple

13.9x

Projected ROI based on 3-year cumulative net profit relative to initial development investment. Actual results may vary based on execution, market conditions, and operational factors.

Visit the Live Project

See the finished product we built for this case study — live and in production.

This project is live at Geothermal HVAC Contractor Directory — Find Licensed Geothermal Installers Near You. Every feature described in this case study — from the architecture and integrations to the SEO strategy and financial model — is running in production on geothermal.contractors.

Ready to Build Your Own High-ROI Directory or Web Application?

Whether it's a contractor directory, a SaaS platform, or a custom web application — we'll plan it, build it, and launch it with the same precision we brought to Geothermal.contractors.

AI Chatbot Development — 24/7 Lead Gen & Support

Requires Custom Web App Development

Learn More
Free 12-Dimension Website Audit

How Does Your Website Score?

Get a free, instant analysis of your website across SEO, speed, mobile, security, accessibility, AIO, GEO, AEO, Local SEO, Schema.org, and WCAG compliance.

All fields are valid
Free & SecureResults in SecondsNo Credit CardActionable Report

We analyze 12 critical dimensions:

SEO
Speed
Mobile
Security
WCAG
AI Ready
AIO
GEO
AEO
Local SEO
Schema
WCAG Deep