Apex — Professional Roofing Company Website Template

A modern, production-ready website template built specifically for roofing contractors, roofing companies, and home-exterior specialists who need a professional online presence without WordPress, plugins, or a database to maintain.

Apex is a complete marketing site — not a single landing page. It includes every page a roofing business actually needs to win local trust, capture leads, and rank in search. And unlike bloated CMS themes, every word on the site is controlled by simple markdown files in a content/ folder. Change your phone number, add a service, publish a blog post, or swap a testimonial by editing a text file. No code required for day-to-day updates.

Who this template is for

  • Roofing contractors launching their first professional website
  • Established roofers replacing an outdated WordPress or Wix site
  • Agencies and freelancers building client sites for home-service businesses
  • Developers who want a clean Next.js foundation with real content architecture, not a generic landing page

If you repair roofs, replace roofs, handle storm damage, install gutters, or do commercial roofing — this template was designed for your business.

What's included

9 page types, fully wired

  • Home/ — Hero, trust badges, stats, features, process steps, featured services and projects, testimonial carousel, and call-to-action
  • About/about — Company story, photo, values grid, and team section
  • Services/services — Service listing grid
  • Service detail/services/[slug] — Individual service page with a lead form
  • Projects/projects — Portfolio grid
  • Project detail/projects/[slug] — Case study with a specs sidebar
  • Reviews/reviews — Customer testimonials with star ratings
  • Blog/blog — Post listing
  • Blog post/blog/[slug] — Individual article
  • FAQ/faq — Accordion FAQ with schema markup
  • Contact/contact — Full estimate form, contact info sidebar, and map embed
  • 404/not-found — Branded error page

Pages, navigation, footer links, sitemap entries, and form dropdowns update automatically when you add or remove markdown files. Add content/services/metal-roofing.md and you instantly get a new page at /services/metal-roofing.

Rich demo content out of the box

The template ships with realistic demo content for a fictional company ("Summit Ridge Roofing") so you can preview the full site immediately:

  • 6 services — roof replacement, repair, storm damage, metal roofing, commercial, gutters
  • 4 portfolio projects with location, service type, and detail specs
  • 7 customer testimonials with star ratings
  • 4 team members with bios and photos
  • 3 blog posts on roofing topics (lifespan, warning signs, insurance claims)
  • 8 FAQs covering cost, warranties, insurance, licensing, and timelines
  • Demo photos in public/images/ (hero, crew, services, projects, team, blog)

Replace the demo content with your own by editing markdown files and swapping images. The structure stays the same.

Key features

Markdown-driven content — no CMS headaches

All business content lives in content/ as plain markdown files with YAML frontmatter:

content/
  site.md              company name, phone, email, hours, SEO, form endpoint
  pages/               page titles and intros
  services/            one file per service
  projects/            one file per portfolio project
  testimonials/        one file per review
  team/                one file per team member
  blog/                one file per post
  faqs/                one file per FAQ

Frontmatter is validated at build time with Zod schemas. If you misspell a field or leave out a required value, the build tells you exactly which file and field to fix — not a cryptic runtime error.

Lead capture forms, ready to connect

Estimate forms appear on the home page, every service detail page, and the contact page. Connect them in one line:

form:
  endpoint: 'https://formspree.io/f/YOUR_FORM_ID'

Works out of the box with free tiers from Formspree and Web3Forms. Submissions go straight to your email inbox. No server setup required.

For developers who want self-hosted form handling, an optional Resend API route is included as route.ts.example with setup instructions.

Local SEO built in

Search-engine essentials are generated from your content — no plugins, no Yoast, no manual XML editing:

  • JSON-LD RoofingContractor schema on every page (name, phone, address, service areas, ratings)
  • FAQ schema on the FAQ page
  • Per-page metadata (title, description) from markdown frontmatter
  • sitemap.xml auto-generated from all pages and posts
  • robots.txt included
  • Open Graph tags for social sharing

Set your real domain in content/site.md under seo.siteUrl before launch and everything points to the right place.

Professional design, easy to rebrand

  • Fully responsive — mobile menu, sticky header, click-to-call button
  • Scroll animations via Framer Motion (subtle fade-ins, not distracting)
  • Testimonial carousel on the home page
  • FAQ accordion with smooth expand and collapse
  • One-block brand color change — replace eleven CSS variables in globals.css and the entire site re-skins (buttons, links, icons, highlights)
  • Google Fonts via next/font — Inter (body) and Archivo (headings), swappable in one file
  • Heroicons icon set, referenced by name in content frontmatter

Built for speed and modern hosting

  • Next.js App Router with React Server Components — pages render on the server for fast initial loads and great SEO
  • No database queries — content is read from markdown at build time
  • Optimized images via Next.js Image component
  • Deploys to Vercel (recommended), Netlify, or any Node.js host in minutes

What sets Apex apart

1. Content-first architecture

Most templates bury your copy inside React components. Apex inverts that: components are the shell, markdown is the substance. Your client (or you) can update services, reviews, and blog posts without touching src/. Navigation, footers, sitemaps, and form dropdowns stay in sync automatically.

2. Real pages, not a landing-page gimmick

Apex is a complete multi-page site with dynamic routes, collection pages, detail pages, and a blog. It is the kind of site a roofing company actually needs — not a one-pager with a contact form stapled on.

3. AI-assistant ready

The template ships with an AGENTS.md file that teaches AI coding tools (Cursor, Claude Code, GitHub Copilot, etc.) exactly how the project is structured. Prompt something like:

"Rebrand this site for Apex Roofing in Austin, TX. Phone (512) 555-0123, email hello@apexroofing.com"

…and the assistant knows which files to edit. A huge time-saver for agencies and solo developers.

4. Sensible defaults, zero lock-in

  • No proprietary CMS
  • No monthly SaaS fees for content management
  • No vendor-specific hosting requirement
  • Standard Next.js, React, and Tailwind stack — any React developer can extend it
  • Clean, readable code with TypeScript strict mode and ESLint

5. Thorough documentation

  • README.md — quick start in 5 minutes
  • CUSTOMIZING.md — step-by-step guide for every customization (company info, forms, colors, fonts, content collections, deployment)
  • AGENTS.md — AI assistant instructions
  • Inline code comments where behavior is not obvious

Tech stack

Layer Technology
Framework Next.js 16.2.9 (App Router)
UI React 19.2.4
Language TypeScript 5.9
Styling Tailwind CSS 4.3
Animations Framer Motion 12.40
Content Markdown, gray-matter, Zod validation
Rendering react-markdown, remark-gfm
Package manager npm

Quick start

npm install
npm run dev

Open http://localhost:3000 to see the demo site. Then:

  1. Edit content/site.md — company name, phone, email, address, hours, service areas
  2. Replace photos in public/images/
  3. Paste your Formspree or Web3Forms endpoint into form.endpoint
  4. Set your domain in seo.siteUrl
  5. Run npm run build to verify everything, then deploy

Five minutes to a branded site. A few hours to fully replace all demo content.

Deployment

Deploy anywhere Next.js runs:

  • Vercel — push to GitHub, import, done (free tier is plenty)
  • Netlify — auto-detects Next.js
  • Any Node.js host supporting Next.js 16

No database to provision. No environment variables required for the default setup (forms use a third-party endpoint).

File structure

content/              ALL editable content (markdown)
  site.md             company info, contact, form, SEO
  pages/              per-page copy
  services/           one file per service
  projects/           one file per project
  testimonials/       one file per review
  team/               one file per team member
  blog/               one file per post
  faqs/               one file per FAQ
public/images/        photos
src/app/              pages and routes (Next.js App Router)
src/components/       UI components
src/lib/content.ts    content loader and Zod validation

Summary

Apex gives roofing businesses a fast, professional, SEO-ready website without the ongoing cost and complexity of WordPress. Markdown files instead of a database. One-line form setup. Automatic sitemaps and schema markup. A complete page set with demo content you can preview immediately and replace at your own pace.

Built by ServicePro Templates for contractors who would rather be on a roof than debugging a CMS.