Work solarpresident
service

Solar President

One Big Beautiful Bill — commercial solar tax-credit calculator and lead funnel before the July 5, 2026 deadline.

Solar President is a tax-credit-stacking calculator and lead funnel for commercial solar buyers — Investment Tax Credit, Domestic Content Bonus, and 100% year-one bonus depreciation combined into a single 47%-plus incentive number. The site is built to convert deadline-driven traffic before construction must begin on July 5, 2026, with bold Trump-era political styling and a lead pipeline behind it.

Last updateFeb 6, 2026 LicenseMIT PrimaryGo
  • Go
  • html/template
  • Inter (Google Fonts)
  • Lucide icons
  • Schema.org LocalBusiness
  • Vanilla CSS/JS
  • Apache (reverse proxy)
  • systemd
Solar President — One Big Beautiful Bill — commercial solar tax-credit calculator and lead funnel before the July 5, 2026 deadline.
Solar President media
Solar President media
Solar President media
Solar President media

Solar President is a vertical landing-and-lead site for commercial solar — built around the one-big-beautiful bill stack of federal incentives that, layered correctly, pushes the effective subsidy on a qualifying commercial system past forty-seven percent. The whole site exists to translate a deadline (construction must begin before July 5, 2026) into qualified leads while the window is open.

The math the site sells

  • Investment Tax Credit (ITC) — the baseline 30% federal credit on commercial solar.
  • Domestic Content Bonus — an additional 10% when components meet the American-made threshold.
  • 100% Year-One Bonus Depreciation — the remaining basis written off in year one rather than amortized.
  • Stacked example: a $1M commercial system yielding ~$478,500 in combined first-year tax incentives. The site lays the math out so a CFO can see the bottom line without a calculator.

Conversion design

  • Deadline-first hero — the July 5, 2026 countdown is the most important element on the page; every section flows back to "before construction begins, you qualify; after, you don't."
  • Schema.org LocalBusiness markup for search visibility on commercial-solar queries.
  • Curated political styling — Trump whiteboard graphics, war-room imagery, J-Pow / Musk math bits. The audience self-selects; the conversion rate rewards the styling decision.
  • Lead capture piped into the same admin pattern we ship across our other Go sites — honeypot, rate limit, Postmark notification, SQLite ledger.

How it's built

Single Go binary with html/template and SQLite — the same stack pattern as the rest of the company-site fleet. Inter via Google Fonts, Lucide for icons, vanilla CSS/JS, Schema.org LocalBusiness, sitemap, robots.txt. The site loads fast, indexes cleanly, and has nowhere for a CMS pipeline to break in the middle of a campaign.

Why "Solar President"

The name is the brand position. Commercial solar policy lives or dies by who is signing the bill, and the current bill — branded into every section as "the One Big Beautiful Bill" — is the most generous it has ever been or is likely to be again. Solar President is what you point at when you need the deadline-driven traffic, in the political register the deadline lives in, to convert in time.

Straight from the source

The project's own README.

Rendered in place — every link, image, and code block carried over from the repo. The page below is what a contributor would see opening the project for the first time.

DarkLabel

A white-label lead management platform built with Go. Features a public-facing website with service information and contact form, plus a full admin panel for managing leads and email communications. Fully configuration-driven — customize business name, colors, services, and more via environment variables.

Features

  • Public Website

    • Responsive, mobile-first design
    • Service listings and business information
    • Contact form with validation and honeypot spam protection
    • SEO optimized (meta tags, sitemap, structured data)
    • Configurable color scheme via CSS variables
  • Admin Panel

    • Lead management with status tracking (new, contacted, closed)
    • Email inbox (Postmark inbound webhook)
    • Compose and send emails via Postmark
    • Email forwarding configuration
    • Trash/spam management for leads and emails
    • Session-based authentication with rate limiting
  • White-Label Ready

    • All branding configured via environment variables
    • Dynamic service options (JSON configuration)
    • Customizable color palette (primary, secondary, accent)
    • No hardcoded business names, addresses, or phone numbers

Tech Stack

  • Backend: Go (standard library, no frameworks)
  • Database: SQLite with WAL mode
  • Email: Postmark API
  • Frontend: Vanilla HTML/CSS/JS, Lucide icons
  • Deployment: systemd service behind nginx

Quick Start

# Copy environment config
cp .env.example .env
# Edit .env with your business details

# Build
make build

# Run locally
make run

The app will start on the configured port (default: 8123).

Configuration

Copy .env.example to .env and configure all variables:

Variable Default Description
PORT 8123 Server port
DOMAIN localhost Your domain name
ADMIN_USER admin Admin login username
ADMIN_PASS changeme Admin login password
BUSINESS_NAME My Business Displayed throughout the site
BUSINESS_PHONE (555) 000-0000 Contact phone number
BUSINESS_EMAIL [email protected] Contact email address
BUSINESS_ADDRESS Your City, ST Business location
BUSINESS_TAGLINE Professional services you can trust Hero/meta tagline
BUSINESS_HOURS Mon-Fri: 9am-5pm Displayed on contact page
SERVICES_JSON [{"value":"general","label":"General Inquiry"}...] Contact form service options
COLOR_PRIMARY #1e293b Primary brand color
COLOR_SECONDARY #334155 Secondary brand color
COLOR_ACCENT #3b82f6 Accent/highlight color
POSTMARK_TOKEN (empty) Postmark server API token
POSTMARK_FROM (empty) Postmark sender address
REPLY_SUBJECT_TEMPLATE Re: Your Inquiry - %s Email reply subject (%s = business name)

Services Configuration

The SERVICES_JSON variable accepts a JSON array of service options for the contact form:

[
  {"value": "consulting", "label": "Consulting"},
  {"value": "support", "label": "Technical Support"},
  {"value": "sales", "label": "Sales Inquiry"},
  {"value": "other", "label": "Other"}
]

Project Structure

.
├── cmd/main.go              # Entry point, routing, middleware
├── internal/
│   ├── config/              # Environment configuration
│   ├── database/            # SQLite initialization and migrations
│   ├── handlers/
│   │   ├── admin/           # Admin panel handlers
│   │   └── public.go        # Public page handlers
│   ├── mailer/              # Postmark email client
│   ├── models/              # Data structures
│   ├── ratelimit/           # IP-based rate limiting
│   ├── session/             # Session management
│   ├── templates/           # Template rendering
│   ├── testutil/            # Test helpers
│   └── validation/          # Form validation
├── static/
│   ├── css/                 # Stylesheets
│   └── js/                  # JavaScript
├── templates/               # HTML templates
│   ├── admin/               # Admin panel templates
│   ├── base.html            # Base layout
│   └── *.html               # Public pages
├── data/                    # SQLite database (gitignored)
└── .env.example             # Environment template

Commands

make build      # Build the binary
make run        # Run locally
make restart    # Rebuild and restart systemd service
make logs       # View service logs
make status     # Check service status

Customization

Colors

Override the default slate/blue palette with any hex colors:

COLOR_PRIMARY=#1a1a2e
COLOR_SECONDARY=#16213e
COLOR_ACCENT=#e94560

These are injected as CSS custom properties and cascade throughout the site.

Templates

HTML templates are in the templates/ directory. They use Go's html/template package with template variables for all business data. No hardcoded values need changing — everything flows from the configuration.

License

MIT License. See LICENSE for details.

Gallery

The full set.

Build something like this

Want a tool like this for your shop?

We've shipped this kind of thing before. Twenty-minute intro call, no slides.