Skip to content
About This Service

For Plumbers Whose Phone Rings at 3 AM

A burst pipe floods a kitchen at midnight. A water heater lets go on a holiday weekend. A sewer line backs up into a finished basement on a Saturday morning. The homeowner standing in that water searches from a phone and calls the first plumber whose site gets a number on screen. When that decision gets made, a WordPress site on shared hosting is the one still spinning.

Amrify's plumbing template is served as static HTML from a CDN, with no PHP to execute and no database to query. It answers in under a second at 3 AM on Christmas morning or at 2 PM on a Tuesday, and a water main break that sends a whole neighborhood to Google at the same moment does not slow it. Every page returns 100 on all four Lighthouse audits, and CI enforces that before a template ships.

The pages cover emergency plumbing, water heaters, drain cleaning, sewer repair, fixtures, and gas lines. Every town on your truck routes gets its own URL. Each request the lead engine takes reaches your inbox, your database, and the on-call phone together. And the code is yours, for one payment, with nothing to renew.

Emergency Page and Sticky Bar

Your after-hours number leads the emergency page and stays pinned to the phone screen on every other page. After-hours messaging is a config setting.

Drain and Sewer Pages

Drain cleaning, sewer repair, camera inspection, hydro jetting, repiping: a page and a Service schema each, so each ranks on its own.

Lighthouse 100, Every Audit

Performance, Accessibility, Best Practices, SEO. All four at 100 on every page, verified in CI before release.

One URL per Town

Census data seeds each service-area page, service-in-city pages are there for the markets that warrant them, and thin copy fails the build.

Leads on the On-Call Phone

Requests land in DynamoDB, your inbox, and Telegram or SMS at once, with up to four photos of the leak attached. Webhook to dispatch.

Holds Under a Water Main Break

Static files on a CDN. Hundreds of simultaneous visitors after a freeze cost you nothing in load time, because nothing runs per visit.

Launch Pricing

What Your Plumbing Site Costs

Pay once and keep the code. The plumbing template ships at launch; the founding price ends after 5,000 purchases.

Amrify Pro

Complete plumbing template included

$249 /one-time founding price, then $399
  • All 10 launch trade templates - more niches ship as free updates
  • Town pages, service pages, a lead engine and structured data
  • Instruction files for AI editors and four Claude Code skills in the repo
  • Build unlimited sites for yourself or clients
  • New trades, widgets and fixes included forever
Hold the $249 Founding Price

The Code Is Yours

Pay once and keep every line of it. A plumbing site is one of them.

No Upkeep

Static pages have nothing to patch. Your plumbing site stays that way.

Updates Forever

New trades and widgets arrive as a git pull. The plumbing template ships at launch.

Emergency, Water Heater, Drain, Sewer, Gas: A Page Apiece

Emergency plumbing, water heater installation and repair, drain cleaning, sewer line repair, camera inspection, hydro jetting, fixtures, garbage disposals, gas lines, repiping. Each is a separate page with scope, common causes, timelines, pricing context, and Service schema. Google indexes them individually, so 'tankless water heater installation' and 'drain cleaning' are two results you can hold, not one page split between them.

Emergency, Water Heater, Drain, Sewer, Gas: A Page Apiece

Twenty-Five Towns on the Truck Routes, Twenty-Five URLs

A text file for Naperville becomes /service-area/naperville/ carrying its own copy, LocalBusiness schema, canonical tag, and sitemap line. The draft comes from Census data and the build audits the result; anything that reads like the previous town with the name swapped fails the build. Service-in-city pages ('emergency plumber in Naperville') are there for the markets that earn them.

Twenty-Five Towns on the Truck Routes, Twenty-Five URLs

The Burst-Pipe Request Reaches Whoever Is On Call

At 11 PM the homeowner needs your number, not your history. It leads the emergency page and stays in the sticky bar, and a form request hits DynamoDB, an SES email, and the on-call phone (Telegram or SMS) within seconds of submit. Photos of the leak can ride along, up to four, resized in the browser before upload.

The Burst-Pipe Request Reaches Whoever Is On Call

Ask Anything, Hold a Spot

Checkout opens at launch. The first 5,000 founding members own Amrify Pro, the plumbing template and every other niche we ship, for $249 instead of $399. Leave your email to hold a spot, or ask anything about building a plumbing site.

Contact Form

Founding List

Replies come by email within one business day, from the person who built this.

Say what plumbing site you are launching and how soon. Licensing, seats, hosting and AI-editor questions are all fair game.

Not ready to write? Pricing and the docs answer most questions about a plumbing site. The free website grader will show where your current plumbing site stands.

Two inches of water on a hardwood floor and a phone in hand: that is the whole audience for a plumbing website at 11 PM. That visitor wants a number, proof you cover their town, and nothing else. This plumbing website template gives them exactly that. Each page is a file on a CDN, on screen in under a second; the after-hours number sits in a sticky bar on every screen; a form request is pushed to the on-call phone by Telegram or SMS; and every town on your truck routes has a ranking page of its own. Founding members (the first 5,000) pay $249 once, $399 after that, and the code is yours to host wherever you like.

Curious how your current site handles that visitor? The free plumbing website grader runs Google’s Lighthouse test on it in about thirty seconds with no email required.

Two Inches of Water and a Phone

Plumbing emergencies cluster at the worst times: the washing-machine hose that bursts at 11 PM on Thanksgiving, the sewer backup on a Saturday morning, the water heater that floods the garage at 3 AM. The person searching is not reading reviews or requesting three quotes. They are calling the first plumber whose site loads and shows a number, and they are doing it from a phone on a cellular connection.

That makes speed a revenue line rather than a vanity metric. A homeowner with water pooling under the cabinets will not wait six seconds for a stock photo of a wrench. The back button is faster.

What most plumbing sites deliver in exactly that moment:

  • 5-9 second mobile loads, against the 2.5-second Largest Contentful Paint target in Google’s Core Web Vitals
  • Outright failure under load: a water main break sends hundreds of visitors to shared hosting at once, and the site goes offline during the busiest hours of the year
  • Lighthouse scores in the 20-45 range, keeping you under competitors who pass
  • $20-50 a month in hosting and $100-300 a year in plugins, plus the emergency developer call when the site dies at the worst time

An emergency call bills $300-800. A water heater replacement is $1,500-3,500. A sewer line repair can pass $5,000. Every bounce during a freeze is one of those jobs walking to a competitor. A static site has no database to time out and no PHP to crash; it is a file served from the nearest CDN edge, at the same speed on Christmas morning as on a slow Tuesday.

What Plumbers Get in the Box

Not a small-business theme with a wrench icon. Each part is here because of how plumbing companies make money.

Drain, Sewer, and Water Heater Pages

Separate pages for emergency plumbing, water heater installation and repair, drain cleaning, sewer line repair, sewer camera inspection, hydro jetting, fixture installation, garbage disposals, gas line repair, and repiping. Each page walks through scope, common causes, and timelines, ends with a call to action, and carries its own Service schema and metadata so Google ranks it as its own result.

One URL per Town on Your Truck Routes

The local SEO engine produces a page per town (/service-area/naperville/, /service-area/aurora/, /service-area/joliet/) every one with its own copy and LocalBusiness schema, and a service-in-town layer (emergency plumber in Aurora) where a market justifies it. A new town starts from Census data. A content audit runs on every build and fails any page that is too thin or too similar to another; twenty-five towns should mean twenty-five pages Google treats as distinct, and the gate is what makes that true.

Burst-Pipe Leads on Your Phone

The form posts to an API that runs serverless inside your own AWS account, not to a form vendor. Each request is written to DynamoDB, emailed through SES, and pushed by Telegram or SMS to whichever phone is on call, with a webhook for dispatch software. Spam filtering runs before delivery; Cloudflare Turnstile is optional. Homeowners can attach up to four photos, resized in the browser, so you see the corroded fitting or the standing water in the floor drain before you decide whether it is a tonight job or a tomorrow job. No per-submission fee, and the leads CLI lists everything from the terminal.

Content for the Weeks Before the Emergency

The blog takes plain text posts and generates Article schema, tags, RSS, and an Open Graph image for each one. The useful plumbing posts answer the questions people search before they call: “what to do when a pipe bursts,” “how to tell if a water heater is failing,” “signs your sewer line needs repair.” The homeowner who reads your answer in October calls you in January.

Structured Data for “Plumber Near Me”

The build writes these from config and content every time:

  • LocalBusiness: name, address, phone, hours, service area, payment methods
  • Service: each plumbing service with description and pricing context
  • FAQPage: the question and answer pairs, marked up for FAQ rich results
  • BreadcrumbList: the crumb trail shown under your result
  • BlogPosting: metadata for each article

No schema plugin, no hand-edited JSON, no markup that quietly breaks after an update.

From the Pro conversion kit, plumbers get the most from the sticky call bar and a quote wizard that asks problem type and urgency up front; the reviews carousel and an estimate calculator for water heater replacements come next. They are SolidJS islands, loaded only where they appear.

Three-Year Cost, Plumbing Site

WordPress plumbing siteAmrify plumbing template
SetupThree to six days of plugin configurationA weekend; about an hour with an AI coding tool
Lighthouse20-50 typical100 on all four audits, enforced in CI
Mobile load5-9 secondsUnder 1 second
Hosting$20-50/month$0 (Netlify, Vercel, Cloudflare Pages), or your own AWS
Plugins$100-300/yearNone
PatchingMonthlyNo admin panel exists to patch
Three years$1,500-4,000 and up$249 once
Structured dataYoast or RankMathWritten from config, no plugin to update
Lead deliveryForm plugin, one inboxInbox and DynamoDB and Telegram/SMS and webhook
Water main breakShared host may go downFiles from a CDN, any volume

Moving an existing site is covered step by step in the WordPress to Astro migration guide. The showcase has live sites to inspect first, and a free account holds the founding price until checkout opens.

Plumbing SEO Without the Agency Invoice

Plumbers pay $500-1,500 a month to agencies whose main deliverable is often a plugin install. What a website can control is built in:

Name, address, and phone match your Business Profile. All three come from one config file and go out in every page’s structured data, so the site cannot contradict your Google Business Profile listing. That consistency is a base requirement for the local pack.

A tel: link in the header, footer, emergency page, and sticky bar. On a phone, tapping the number is the conversion. There is no contact page to hunt for.

Town pages that differ from one another. Twenty towns, twenty ranking candidates, each with copy about that town and a build gate that refuses duplicates.

FAQ and Service schema for rich results. Your answers can appear in results directly. The full performance recipe is in the write-up on scoring 100/100 across every client site.

Holding Up When the Water Main Breaks

A cold snap freezes pipes across a metro overnight, and by 7 AM every plumber in the area is being searched for at once. Shared hosting answers each visit by running PHP and hitting a database; a query that takes 150 milliseconds on a quiet day times out when hundreds arrive together. A static site answers each visit with a file from the nearest CDN edge. There is no query and no process, so there is nothing to overwhelm.

It also means nothing to maintain. No plugin updates, no security patches, no admin login for someone to guess. You own a repository, not a hosting account.

One Weekend Between Jobs

Friday night: hold the price and clone

Checkout is not open yet; the free account is what reserves the $249 founding price, good for the first 5,000 members before it becomes $399. The purchase shows up as a private GitHub repo in your account dashboard, with the plumbing template, nine other trade templates, and a licence for as many sites as you like on one seat. Clone it Friday night into your editor, or into Claude Code, Cursor, or Copilot, all of which pick up the bundled CLAUDE.md, AGENTS.md, and four skills.

Saturday morning: your details

site.json takes company name, phone (and the after-hours line if it differs), email, address, and hours. Add your state plumbing license number to the trust section; it appears in the header, footer, and structured data. Edit the service files for emergency plumbing, water heaters, drain cleaning, camera inspection, gas lines, and fixtures. Add a text file per town. Drop in your logo, team photos, and any drain-camera stills that show your work. The build does the metadata, schema, image optimization, and sitemap.

Saturday afternoon: deploy

Hook the GitHub repo up to Netlify, Vercel, or Cloudflare Pages and an Astro project deploys with nothing to configure; the S3 and CloudFront tooling in the repo does the same for your own AWS. A certificate and the CDN come with either route. Point the lead webhook at your dispatch software so after-hours requests reach the on-call phone. Update DNS. You are taking leads by Monday.

Once live, put the site on the free Website Monitor alongside the two plumbers who outrank you. It watches up to 30 sites, keeps their score histories, and re-tests whichever one you point at.

Plumbing Businesses This Fits

Newly licensed plumbers going independent. Master license in hand, van bought, no site. This gets you a professional one in a weekend for $249, with the emergency page and town pages that make a one-truck operation show up in the same searches as the big names.

Established companies adding specialties. Tankless water heaters, sewer line replacement, gas work, hydro jetting: each gets its own page and Service schema so “sewer camera inspection in [town]” ranks on its own. No second site, no plugin.

Multi-brand and multi-location operators. A general brand in one metro and a drain-specialist brand in another run from one monorepo with separate themes and content. Fix the emergency page once and both brands get it on the next build, and the second brand costs nothing extra.

Alex Crabinsky (full-stack, 10+ years, Alpharetta, Georgia) wrote the code, and Amrify’s own live sites depend on it daily. Before a template can ship, CI runs Lighthouse and blocks anything below 100 in any category. More on him.

Frequently Asked Questions

How much does a plumbing website cost?

Founding members, meaning the first 5,000 buyers, pay $249 once; after those spots are gone it is $399. That buys all of Amrify Pro: the plumbing template and nine other trade templates, town and service pages, the lead engine, the blog, JSON-LD, and every update afterward. The static site hosts free on Netlify, Vercel, or Cloudflare Pages; the repo also carries an S3 and CloudFront deploy for anyone who prefers their own AWS. A custom plumbing site is typically $3,000-8,000; a WordPress site costs $1,500-4,000 over three years after hosting and plugins.

Can I highlight 24/7 emergency plumbing on my site?

Yes. The emergency page leads with your after-hours number and availability, and the sticky call bar keeps that number at the bottom of the phone screen on every page. After-hours messaging is a config setting, so the visitor at 3 AM reads that someone will answer, not your office hours.

Does the template work for drain cleaning and sewer services?

Yes. Drain cleaning, sewer line repair, sewer camera inspection, hydro jetting, and repiping are separate pages, each with a URL, metadata, and Service schema of its own. Google indexes each as a separate result, so ‘hydro jetting’ and ‘sewer camera inspection’ rank on their own instead of competing inside one services page.

Will my plumbing website rank on Google?

The site-side factors are covered: LocalBusiness and Service structured data everywhere, one URL per town with copy that a build gate checks for thinness, canonical tags, XML sitemap, Open Graph tags, and sub-second loads. The remainder of local ranking is reviews and your Google Business Profile, which no template can earn for you; this one just makes sure the website never holds you back.

Can I create pages for each town I serve?

Yes. Each town gets a URL such as /service-area/aurora/, its own copy, and local schema, so twenty towns means twenty pages ranking for ‘plumber in [town]’ independently. The local SEO engine scaffolds each from Census data, and if a page comes out reading like a copy of the last one, the build fails rather than publishing a duplicate Google will ignore.

Do I need technical skills to use this?

No. Your emergency line, license number, water heater pricing, and town list live in config and plain text; edit, save, and the site rebuilds itself. There is no WordPress admin and no drag-and-drop builder. Anyone who can write an invoice can add a sewer service page, and if typing is not your thing, the Claude Code skills in the repo turn a plain sentence into the edit.

How does the lead capture form work?

It posts to the serverless lead engine included in Pro, which writes the request to DynamoDB, mails it through SES, and pushes it to the on-call phone by Telegram or SMS; a webhook can pass it to dispatch software. Spam defenses run first and Turnstile is optional. Up to four photos can ride along, which for plumbing means you see the leaking fitting or the backed-up floor drain before you quote.

How quickly can I launch a plumbing website?

One weekend between jobs is realistic. Clone the repo Friday night, enter your company details and license number Saturday morning, edit the emergency, drain, and water heater pages, list your towns, and deploy by Saturday afternoon. With Claude Code or Cursor doing the edits from the bundled skills, the Saturday part shrinks to about an hour. Hosting, SSL, and DNS take roughly 30 minutes.

What if I run multiple plumbing brands?

One seat, unlimited sites. A general plumbing brand and a drain-and-sewer specialist brand can live in the same monorepo with different themes and content, sharing every package and every fix. The other nine launch trades are in the repo too, and future niches ship as free updates instead of new purchases.

Can I monitor my website traffic and leads?

Yes. GA4, Google Tag Manager, and Microsoft Clarity each switch on with an ID in config and load deferred, so they cost nothing in speed. Leads are rows in your own DynamoDB table; the leads CLI prints them from the terminal, and counting last winter’s burst-pipe requests takes one command instead of an email search.


Related solutions: HVAC | Roofing | Electrical | General Contractor

Sites already running on this codebase are on the Showcase, and the founding-member terms are spelled out on the pricing page.

Not sure Amrify is right for a plumbing business? See how it compares with WordPress, Wix and Next.js, including the cases where they win.

A weekend is all it takes: hold your founding spot now, or write to us if something above needs clarifying. The rest of the trades are in the solutions catalog.

A Plumbing Site That Answers at 3 AM

Amrify Pro, $249 once at the founding price, is the plumbing template, the lead engine, the source code, and nine other trade templates in the same repo. Sub-second pages, a page for every town, requests pushed to the on-call phone. No subscription, nothing that expires.

Get Amrify Docs