---
title: "RoofNeighbor.com | Sam Carlton"
source: "https://samcarlton.com/portfolio/roofneighbor/"
---

# RoofNeighbor.com

June 2026

> After a big storm, people show up at your door with a clipboard and out-of-state plates. You don’t want to talk to a sales guy — you want to know who’s actually good.

RoofNeighbor.com is a free 3-minute self-check that helps Oklahoma homeowners understand their roof’s condition before a contractor ever shows up. You walk around your house from the ground, answer a handful of visual questions, and get an opinion about whether you need a roofer — before anyone knocks. If you do, it shows you licensed, community-vetted roofers that other Oklahomans already trust.

## Links

-   **Site:** [roofneighbor.com](https://roofneighbor.com/)
-   **GitHub:** [notes-search/apps/roof](https://github.com/ThatGuySam/notes-search/tree/main/apps/roof)

## Highlights

-   **Vetting that’s harder to fake** — “I pull from sources that are harder to fake: the state licensing board, the Better Business Bureau, and Tulsans actually talking about their experiences on Reddit and Nextdoor.”
-   **A tiny Google, built for Oklahoma** — “It’s kind of like a tiny Google, but specially built for Oklahomans to find Oklahoma roofers.”
-   **Ranked on trust, not money** — the list is “ranked with formulas that have absolutely nothing to do with money,” prioritizing community-vetted results and licensing. Sponsors get one clearly-marked slot at the top.
-   **Genuine advice, not a sales funnel** — the homeowner picks the moment of handoff. Say “no thanks” and you still get the same complete report; the contact info is never shared.
-   **Made by Oklahomans, in Oklahoma.**

## How It’s Built

-   **Frontend** — Astro, React, TypeScript, and Vite as a client-side flow with no accounts and no database.
-   **UI** — Tailwind CSS, Geist, Lucide icons, Base UI, shadcn, Vaul sheets, and Embla Carousel.
-   **State** — Nanostores with local persistence, hash-backed result URLs, and SMS/mailto handoff with a QR code on desktop.
-   **Hosting & analytics** — Cloudflare Workers Static Assets plus Worker routes, with an anonymous, session-scoped funnel in Analytics Engine.
-   **Validation** — Playwright intake-flow tests, Bun unit tests, and ESLint.

## Screenshots

![RoofNeighbor.com desktop landing page](/project-screenshots/roofneighbor/roofneighbor-desktop.png)

The landing screen: a free three-minute roof check.

![RoofNeighbor symptom selection step with example photos](/project-screenshots/roofneighbor/roofneighbor-symptoms.png)

From the ground, you answer a handful of visual questions — each with photo examples.

![RoofNeighbor symptom example carousel opened](/project-screenshots/roofneighbor/roofneighbor-carousel.png)

Each symptom opens a carousel of reference photos, so you can compare instead of guess.

![RoofNeighbor concern-tier result screen](/project-screenshots/roofneighbor/roofneighbor-results.png)

You get a low, medium, or high concern result with plain-language next steps.

![RoofNeighbor vetted local roofer list with text and email links](/project-screenshots/roofneighbor/roofneighbor-roofers.png)

The roofer list is ranked on community trust and licensing, with one-tap text and email.

![RoofNeighbor.com mobile landing page with get started button](/project-screenshots/roofneighbor/roofneighbor-mobile.png)

Mobile-first throughout — most homeowners arrive on a phone right after a storm.
