Inspiration

I knew I wanted to build a lead generation site in the clean energy space. The question was where. EV and solar adoption have been climbing fast across the country, so I looked at the regional picture: where was demand growing, and where was the market not yet locked up?

California was the obvious answer for adoption, but it's also the most competitive market in the country. The Denver area was on the list for a while too, but the same problem applied. I kept looking for a region that had real momentum without a ceiling of established players already owning every keyword.

North Carolina fit. Solid EV growth, a large Duke Energy footprint with active incentive programs, a state government that's been pushing clean energy adoption, and a search landscape that still had room. Not an untouched market, but not a wall either.

Once I had the region, the problem became clearer: NC homeowners trying to go solar or install an EV charger run into a wall of national lead aggregators that sell their contact info to ten contractors at once. I wanted something that actually serves the homeowner: accurate local information, verified incentive figures, and a direct path to a qualified installer in their city.

What it does

evsolarnc.com connects North Carolina homeowners with licensed local contractors for EV charger installation, solar panels, battery storage, and panel upgrades. It covers Raleigh, Charlotte, Lake Norman, Greensboro, Wilmington, and the surrounding Triangle suburbs. Each city and service combination gets its own page with local cost ranges, current Duke Energy incentives, permit requirements, and FAQs. A glossary and a growing library of guides give homeowners the context to make informed decisions before they talk to anyone.

How I built it

Static site built with Astro v6, deployed to Vercel. All content is authored in Markdown using Astro content collections, with structured data (JSON-LD) on every page for schema types including LocalBusiness, Article, FAQPage, DefinedTerm, and BreadcrumbList. Incentive figures are stored in a single TypeScript data file so they can be updated in one place and reflected everywhere. Lead forms are submitted via a serverless API route and dispatched through Resend. No CMS, no Tailwind, no third-party fonts — everything is self-hosted for GDPR compliance and performance.

Challenges I ran into

Keeping incentive data accurate is the hardest ongoing problem. Duke Energy PowerPair capacity changes monthly, the federal solar tax credit was eliminated mid-build by the One Big Beautiful Bill (P.L. 119-21, signed July 4, 2025), and state-level statutes are easy to miscite. I built a fact-checking workflow into every content deployment to catch stale figures before they go live. Getting Google to index a brand new static site also takes patience — the early crawl queue is slow regardless of how clean the technical setup is.

Accomplishments that I'm proud of

The incentives data layer. Every Duke Energy rebate, tax credit, and rate figure on the site traces back to a single source-of-truth file with a lastVerified date and a direct link to the official tariff or program page. Nothing is hardcoded in prose. When something expires or changes, one edit cascades everywhere.

What I learned

Local SEO for service businesses rewards depth over breadth. A single well-structured city page with accurate, locally relevant information outperforms a thin page stuffed with keywords. Writing for YMYL (Your Money or Your Life) topics also raises the bar considerably — every tax figure and incentive claim needs a primary source, not a blog post.

What's next for EV Solar NC

Expanding city coverage deeper into NC, adding contractor profiles once the lead volume justifies the vetting work, and building out the guides library to cover more of the questions homeowners ask before they ever fill out a form.

Built With

Share this project:

Updates