Skip to content
AeroLaunch

Anvil

Trades / Local Services Pro

Dark, editorial theme for plumbers, electricians & local trades. Numbered services with hover-reveal, a before/after drag slider, a quote form, and LocalBusiness schema.

$49 $39 launch sale
Read the Anvil docs Lifetime updates Personal & client use
A closer look

See Anvil in action

Every page and section is part of the download. Use these as launch-day templates - keep the structure, swap the copy.

Homepage - full-bleed dark crew photo
Services - numbered list with hover-reveal image
See the difference - drag before/after sliders
Service area - town list + map
Process steps + free-quote form
Editing live in the AeroLaunch visual builder
10
Pages
16
Sections
Dark + Amber
Palette
LocalBusiness
JSON-LD SEO

Anvil is for plumbers, electricians, HVAC techs, and local trades whose website should look as serious as their work - not like the safety-orange-on-navy template every competitor uses. A dark charcoal canvas with one warm amber accent. Services are a numbered editorial list where hovering a row reveals the job photo - the number does the work an icon usually fakes. A real drag-to-reveal before/after slider, full-bleed crew photos, pull-quote reviews, and LocalBusiness structured data baked in. Two ways to capture the lead: a fast quote form and a contact form, plus a sticky call bar.

Best Fit For

  • Plumbers, electricians, HVAC, and handymen
  • Roofers, landscapers, cleaners, and local services
  • Small contractor crews and family trades
  • Local service businesses that live on calls
  • Anyone past the cookie-cutter trades look

Full Page Set

Every page is real and editable - no placeholders, no "coming soon" stubs.

Home
Services
About
Contact
Blog
Blog Post
All Sections
Privacy
Terms
404

16 Sections Included

Every section is a ready-to-use Astro component. Add it to any page, customize via config, or remove what you don't need.

Nav (sticky call bar)
Blurred-dark sticky header with a 24/7 indicator and an amber call button
Hero (full-bleed dark)
Full-bleed dark crew/job photo with an oversized condensed headline and dual CTAs
Statement
Confident 'since YYYY' statement with three plain oversized figures
Services (numbered)
Signature numbered editorial service list with a sticky hover-reveal image - no icon-card grid
Full-Bleed Band
Full-bleed dark photo band with an overline + condensed headline (fleet / trucks)
Before / After
Drag-to-reveal slider with per-item treatments (yellow hue / B&W on the 'before' side)
Reviews
One large inline pull-quote + a plain rating line - no star-badge wall
Promise
Two-column numbered editorial 'why us' list, no icon chips
Process
Four numbered steps on amber top-rules
Service Area
Service-area town list + embedded map
Quote Form
Free-quote form with a service-type selector + call-now, provider-switched
FAQ
Two-column intro + accordion
CTA
Full-bleed dark CTA band over a dimmed close-up image
Contact
Service-request form with name / phone / email / service selector
Blog Grid
Three-column 'tips' card grid from astro:content
Footer
Big call-to-action, service + company columns, certifications row, and contact details

What's Included

Dark editorial palette - charcoal base + one warm amber accent, no safety-orange-on-navy cliché
Numbered services list with a sticky hover image-reveal - replaces the icon-card grid
Before/after drag slider with per-item treatments (yellow hue / B&W on the 'before')
Full-bleed dark crew + truck photo bands
Pull-quote reviews + a plain rating line, no star-badge wall
LocalBusiness JSON-LD wired to your config for local SEO
Quote form + contact form (Formspree / FormSubmit / Netlify) + sticky call bar
All-Sections gallery page with copy-paste snippets

The Number Is the Icon

Anvil's services aren't an icon-card grid - they're a numbered editorial list (01, 02, 03…) over rule lines. Hover a row and a sticky job photo swaps in beside it. The number and the photo do the work, so the section reads like a real trade's portfolio, not a clip-art template.

Drag to See the Fix

A real before/after slider lets visitors drag to reveal the work, with per-item treatments - a yellow hue or black-and-white on the 'before' side - that dramatize the transformation. It's the proof a trades site lives or dies on, done as an interaction instead of two photos side by side.

Built to Get the Call

Anvil captures the lead three ways: a fast quote form with a service selector, a full contact form, and a sticky blurred call bar with a 24/7 indicator. LocalBusiness JSON-LD pulls your name, phone, hours, and service area straight from config so local search has what it needs.

Set up in minutes

Forms, newsletter, and analytics - pre-wired

Anvil is ready to connect to your preferred providers. Pick from the options below, drop in a single API key, and your contact form, newsletter signup, and analytics are live - no backend, no JavaScript, no glue code.

Contact form

The Contact section's <form> renders with no JS. Set one provider in site.ts; the form action wires automatically.

  • Formspree
    50 free submissions / month, no domain restriction
  • FormSubmit
    Free, no signup - just an email confirmation
  • Netlify Forms
    Free 100/month - Netlify hosting only
Setup guide

Newsletter

The Newsletter form sends subscribers directly to your ESP. The email input name auto-adjusts per provider.

  • Mailchimp
    Standard EMAIL field; honeypot supported
  • ConvertKit (Kit)
    email_address field; works with any form ID
  • Buttondown
    email field; lightest, indie-friendly
Setup guide

Analytics

Layout.astro injects the right script tag based on the provider you choose. No client-side branching.

  • Google Analytics 4
    Paste your G-XXXXXXXXXX measurement ID
  • Plausible
    Privacy-friendly, ~1 KB script, no cookies
  • Umami
    Self-hostable, also cookie-free
Setup guide

Tech Stack

Astro 6 Tailwind v4 TypeScript Responsive SEO Ready Blog Ready

Config-Driven Setup

Every theme uses a single src/config/site.ts file for customization. Change your brand, navigation, form providers, analytics, and section content without touching component code.

Full site.ts reference in the docs

site.ts
// src/config/site.ts
export const siteConfig = {
  name: "Your Company",
  tagline: "Your tagline here",
  url: "https://yourdomain.com",

  navigation: { sticky: true, links: [...], cta: {...} },
  social:     { twitter: "...", github: "...", linkedin: "..." },
  seo:        { title: "...", description: "...", ogImage: "/og.png" },

  // ── Provider switches ────────────────────────────────
  contactForm: { provider: "formspree",  formspreeId: "your-id" },
  newsletter:  { provider: "convertkit", actionUrl: "https://..." },
  analytics:   { provider: "plausible",  plausibleDomain: "you.com" },

  // ── Section data ─────────────────────────────────────
  team, video, timeline, comparison, gallery,
  carousel, tabs, appDownload, map, footer,
} as const;

Full documentation, ready before you buy

Browse the install guide, the site.ts reference, provider setup, deploy instructions, and the Anvil-specific page - all live now.