Veteran-Owned • Roofing + Construction • Central Texas
Veteran-Owned Roofing & Construction in Central Texas
From hail damage and roof insurance claims to remodels, additions, and exterior upgrades, Alpha Team runs every project with clear communication, photo documentation, and a structured process from first call to final walkthrough.
Precision. Performance. Reliability.
We answer within two hours, document every job with photos, and keep scope clear from inspection to final walkthrough.
- On-time, on-scope execution
- Photos from inspection to completion
- No surprise costs
Hail Damage? We Handle Insurance Claims.
Get a Roof InspectionTwo Focused Teams, One Trusted Partner
Clear paths for roofing and construction so homeowners know exactly who to call.
Roofing
- Roof inspections
- Roof repair
- Roof replacement
- Hail and storm damage
- Insurance claim assistance
- Metal and asphalt roofing
Construction
- Kitchen remodeling
- Bathroom remodeling
- Additions
- Whole-home renovations
- Outdoor living
- Exterior improvements
Why Alpha Team
Discipline, accountability, and a structured process that keeps homeowners informed.
We answer the phone
Clear communication and a two-hour callback standard.
We document the work
Photos from inspection through final walkthrough.
We keep scope clear
No surprise costs, no vague project handoffs.
We stand behind the job
If something needs fixing, the team fixes it.
Insurance Claim Process
We inspect, document, and support you through every step.
Inspect and document
We capture photos, measurements, and notes so you have a clear record.
Support the claim
We provide documentation and explain scope so you can make informed decisions.
Repair or replace
Once approved, we execute the work on time with full photo documentation.
Featured Projects
Recent roofing and construction work across Central Texas.
<article class="card project-card">
<div class="project-meta">
<p class="project-city">Cedar Park</p>
<p class="project-service">Roof Replacement</p>
</div>
<h3>Cedar Park Hail Recovery</h3>
<p>Impact-rated shingles, full documentation, and a clean closeout in three days.</p>
<a class="link" href="/projects/cedar-park-hail-recovery/">View case study</a>
</article>
<article class="card project-card">
<div class="project-meta">
<p class="project-city">Leander</p>
<p class="project-service">Outdoor Living</p>
</div>
<h3>Leander Patio + Roof Refresh</h3>
<p>New covered patio tied into a repaired roofline for a seamless finish.</p>
<a class="link" href="/projects/leander-patio-refresh/">View case study</a>
</article>
<article class="card project-card">
<div class="project-meta">
<p class="project-city">Austin</p>
<p class="project-service">Metal Roofing</p>
</div>
<h3>South Austin Metal Upgrade</h3>
<p>Standing seam system with improved ventilation and clean ridge lines.</p>
<a class="link" href="/projects/south-austin-metal-upgrade/">View case study</a>
</article>
</div>
Homeowner Reviews
Clear communication and documented results are the standard.
<div class="card review-card">
<p class="review-text">“The team documented everything and kept us in the loop the whole time.”</p>
<p class="review-meta">— Carlos M., Round Rock</p>
</div>
<div class="card review-card">
<p class="review-text">“Fast inspection, clear scope, and no surprise costs.”</p>
<p class="review-meta">— Sarah P., Austin</p>
</div>
<div class="card review-card">
<p class="review-text">“Professional crew and the roof looks great. Exactly what they promised.”</p>
<p class="review-meta">— Derek L., Buda</p>
</div>
</div>
Service Areas
Local crews serving homeowners across Central Texas.
<a class="card city-card" href="/service-areas/austin-tx/">Austin</a>
<a class="card city-card" href="/service-areas/leander-tx/">Leander</a>
<a class="card city-card" href="/service-areas/cedar-park-tx/">Cedar Park</a>
<a class="card city-card" href="/service-areas/round-rock-tx/">Round Rock</a>
<a class="card city-card" href="/service-areas/pflugerville-tx/">Pflugerville</a>
<a class="card city-card" href="/service-areas/buda-tx/">Buda</a>
<a class="card city-card" href="/service-areas/kyle-tx/">Kyle</a>
</div>
Tell us what you need done. We’ll give you a clear next step.
Schedule a free inspection or request a construction estimate today.
Alpha Team Construction ATX Full Site + Lead Generation Backend
Codex Build Plan for Cloudflare Workers, D1, R2, Queues, Cron, and AI Lead Intelligence
Project: Full rebuild of alphateamconstructionatx.com plus private lead-generation backend
Business: Alpha Team Construction ATX / Alpha Team Roofing & Construction
Primary public-site goal: Convert Central Texas homeowners into qualified roofing, storm-damage, insurance-claim, construction, remodeling, addition, and outdoor-living leads.
Primary backend goal: Give Alpha Team a private system to import property records, score likely project opportunities, track outreach, and prepare human-reviewed follow-up.
Hosting target: Cloudflare Workers full-stack app with static assets, Workers API, D1 database, R2 buckets, Queues, Cron Triggers, and Cloudflare Access/admin auth.
Recommended frontend: React + Vite on Cloudflare Workers, or Astro + React islands if stronger SEO/static content is preferred.
Recommended backend: TypeScript Worker API using Hono or native Workers routing.
Last updated: June 1, 2026.
0. Builder Instructions for Codex
Build this as a production-ready Cloudflare project, not a quick prototype.
Codex should work in phases:
- Scaffold the Cloudflare app.
- Build the public marketing website.
- Build the admin shell and authentication gate.
- Build D1 schema and migrations.
- Build R2 storage structure.
- Build lead-import workflow.
- Build lead scoring and AI summary workflow.
- Build campaigns and outreach tracking.
- Build project-gallery and CMS-like admin editing.
- Add SEO, schema, analytics, error handling, rate limits, tests, and deployment scripts.
Do not scrape public property-search pages. Build source adapters that support compliant CSV imports, official data exports, approved APIs, and licensed data vendors.
Do not create fully automated outbound calling, texting, or emailing. The backend may draft and organize outreach, but humans must approve sends.
1. Brand Foundation to Preserve
Use the existing Alpha Team positioning and expand it into a sharper, more powerful site.
1.1 Existing Brand Signals
Current site elements to preserve:
- Business name: Alpha Team Construction ATX and/or Alpha Team Roofing & Construction.
- Phone number: 512-915-4739.
- Urgent roofing hook: “Hail Damage? We Handle Insurance Claims.”
- Brand promise: Precision. Performance. Reliability.
- Core identity: veteran-owned roofing and construction company.
- Values: discipline, accountability, follow-through, clear communication, structured process, on time, on scope.
- Trust claims to elevate: returns calls within two hours, documents every job with photos, no surprise costs, stands behind work.
- Roofing service areas already mentioned: Austin, Cedar Park, Leander, Round Rock, Pflugerville, Buda, Kyle.
- Services already mentioned: roof repair, roof replacement, roof inspections, insurance claim assistance, hail/storm damage, roof maintenance, metal roofing, asphalt shingles, flat roofs, home additions, remodels, interior/exterior renovations.
1.2 Visual Direction
Keep the current logo and brand identity. Do not redesign the logo unless the client explicitly requests it.
Create a design system that feels:
- disciplined
- veteran-owned
- clean
- strong
- trustworthy
- local Central Texas
- practical, not luxury-only
- structured, not flashy
1.3 Design Token Setup
Create a token file:
src/styles/tokens.css
Use exact logo colors after importing the logo asset. If exact colors are unavailable during development, use this temporary palette and add a TODO to replace with sampled brand colors:
:root {
--color-bg: #ffffff;
--color-bg-soft: #f5f5f2;
--color-text: #161616;
--color-muted: #5f6368;
--color-border: #d9d9d4;
--color-brand-dark: #111111;
--color-brand-accent: #c99a2e;
--color-brand-accent-dark: #9c741d;
--color-storm: #38414a;
--color-success: #2f6b4f;
--color-danger: #a33a2c;
--shadow-card: 0 16px 40px rgba(0, 0, 0, 0.08);
--radius-sm: 6px;
--radius-md: 12px;
--radius-lg: 20px;
--max-width: 1180px;
--font-heading: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
--font-body: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
1.4 Brand Voice
Use direct, practical language.
Good:
- “Hail damage? We’ll inspect, document, and help you move through the claim.”
- “Clear communication from first call to final walkthrough.”
- “No runaround. No surprise costs. No disappearing after the check clears.”
- “Veteran-owned roofing and construction for Central Texas homeowners.”
Avoid:
- generic contractor filler
- vague luxury wording
- “top-quality solutions” without proof
- long paragraphs that bury the offer
2. Product Scope
This project has two connected systems.
2.1 Public Website
The public website should generate leads from real homeowners and build trust fast.
Core public goals:
- Make Alpha Team look more credible and structured.
- Separate roofing and construction buyers clearly.
- Drive phone calls and form submissions.
- Support local SEO for service + city searches.
- Show proof through projects, reviews, process, and photos.
- Capture detailed lead context directly into the backend.
- Replace generic external forms with native forms.
2.2 Private Backend
The private backend should help Alpha Team find likely prospects and manage leads.
Core backend goals:
- Import property records from compliant CSV/API sources.
- Store raw imports in R2 and normalized data in D1.
- Score properties based on project fit.
- Combine property records with weather/storm signals.
- Display leads in a searchable/filterable dashboard.
- Generate AI summaries and outreach drafts for human review.
- Track calls, notes, statuses, campaigns, follow-ups, suppression, and source provenance.
- Export campaign lists for approved channels.
- Keep all compliance notes and opt-out handling visible.
3. Cloudflare Architecture
3.1 Cloudflare Products
Use:
- Workers for full-stack app deployment and API execution.
- Static assets on Workers for the built frontend.
- D1 for relational data.
- R2 for raw imports, project images, homeowner-submitted images, generated exports, and AI artifacts.
- Queues for import processing, geocoding, scoring, and AI jobs.
- Cron Triggers for scheduled weather refreshes, follow-up reminders, stale-lead checks, and optional vendor refreshes.
- Cloudflare Access for private admin protection if available.
- Turnstile for public lead forms.
- Workers AI or external LLM provider for summarization/drafting, with provider abstraction.
- Analytics Engine or simple D1 event table for core event tracking.
3.2 Recommended App Shape
Use a single full-stack Workers app:
alpha-team-cloudflare/
package.json
wrangler.jsonc
vite.config.ts
tsconfig.json
eslint.config.js
public/
robots.txt
favicon.svg
images/
src/
main.tsx
App.tsx
routes/
components/
styles/
lib/
worker/
index.ts
routes/
middleware/
services/
jobs/
db/
ai/
integrations/
utils/
migrations/
0001_initial.sql
0002_leads.sql
0003_property_imports.sql
0004_campaigns.sql
0005_public_cms.sql
tests/
docs/
deployment.md
admin-user-guide.md
data-source-policy.md
3.3 Wrangler Configuration
Create wrangler.jsonc:
{
"$schema": "node_modules/wrangler/config-schema.json",
"name": "alpha-team-site",
"main": "worker/index.ts",
"compatibility_date": "2026-06-01",
"assets": {
"directory": "./dist/client",
"not_found_handling": "single-page-application"
},
"d1_databases": [
{
"binding": "DB",
"database_name": "alpha-team-prod",
"database_id": "REPLACE_WITH_CLOUDFLARE_D1_ID"
}
],
"r2_buckets": [
{
"binding": "R2_IMPORTS",
"bucket_name": "alpha-team-imports"
},
{
"binding": "R2_MEDIA",
"bucket_name": "alpha-team-media"
},
{
"binding": "R2_EXPORTS",
"bucket_name": "alpha-team-exports"
}
],
"queues": {
"producers": [
{ "binding": "IMPORT_QUEUE", "queue": "alpha-team-imports" },
{ "binding": "SCORING_QUEUE", "queue": "alpha-team-scoring" },
{ "binding": "AI_QUEUE", "queue": "alpha-team-ai" }
],
"consumers": [
{ "queue": "alpha-team-imports", "max_batch_size": 10 },
{ "queue": "alpha-team-scoring", "max_batch_size": 25 },
{ "queue": "alpha-team-ai", "max_batch_size": 10 }
]
},
"triggers": {
"crons": [
"0 6 * * *",
"0 7 * * MON",
"*/30 * * * *"
]
},
"vars": {
"PUBLIC_SITE_URL": "https://alphateamconstructionatx.com",
"BUSINESS_PHONE": "512-915-4739",
"BUSINESS_NAME": "Alpha Team Construction ATX",
"PRIMARY_SERVICE_AREA": "Austin, TX"
}
}
Secrets to set with Wrangler:
npx wrangler secret put ADMIN_SESSION_SECRET
npx wrangler secret put TURNSTILE_SECRET_KEY
npx wrangler secret put AI_PROVIDER_API_KEY
npx wrangler secret put GEOCODING_API_KEY
npx wrangler secret put ATTOM_API_KEY
npx wrangler secret put REGRID_API_KEY
npx wrangler secret put EMAIL_PROVIDER_API_KEY
Only set paid vendor secrets when those vendors are actually used.
4. Public Website Information Architecture
4.1 Main Navigation
Use a clean header:
- Home
- Roofing
- Roof Inspections
- Roof Repair
- Roof Replacement
- Hail & Storm Damage
- Insurance Claim Help
- Metal Roofing
- Construction
- Kitchen Remodeling
- Bathroom Remodeling
- Whole-Home Renovations
- Additions
- Outdoor Living
- Projects
- About
- Service Areas
- Contact
- Call 512-915-4739
Mobile header:
- logo left
- call button
- menu button
4.2 Public Routes
Build these routes first:
/
/roofing
/roofing/roof-inspections
/roofing/roof-repair
/roofing/roof-replacement
/roofing/hail-storm-damage
/roofing/insurance-claim-help
/roofing/metal-roofing
/construction
/construction/kitchen-remodeling
/construction/bathroom-remodeling
/construction/whole-home-renovations
/construction/home-additions
/construction/outdoor-living
/projects
/projects/:slug
/about
/service-areas
/service-areas/austin-tx
/service-areas/leander-tx
/service-areas/cedar-park-tx
/service-areas/round-rock-tx
/service-areas/pflugerville-tx
/service-areas/buda-tx
/service-areas/kyle-tx
/contact
/privacy
/terms
/admin
Add Georgetown if the client confirms that it is an active service area.
5. Public Homepage Specification
5.1 Hero Section
Headline:
Veteran-Owned Roofing & Construction in Central Texas
Subheadline:
From hail damage and roof insurance claims to remodels, additions, and exterior upgrades, Alpha Team runs every project with clear communication, photo documentation, and a structured process from first call to final walkthrough.
Primary CTA:
Schedule a Free Roof Inspection
Secondary CTA:
Start a Construction Estimate
Phone CTA:
Call 512-915-4739
Hero trust badges:
- Veteran-Owned
- Hail & Storm Damage Help
- Insurance Claim Documentation
- Roofing + Construction
- Austin Area
- Two-Hour Callback Standard
5.2 Storm Alert Strip
Hail Damage? We Handle Insurance Claims.
CTA:
Get a Roof Inspection
5.3 Two Main Service Cards
Card 1: Roofing
- Roof inspections
- Roof repair
- Roof replacement
- Hail and storm damage
- Insurance claim assistance
- Metal and asphalt roofing
Card 2: Construction
- Kitchen remodeling
- Bathroom remodeling
- Additions
- Whole-home renovations
- Outdoor living
- Exterior improvements
5.4 Why Alpha Team
Use four cards:
-
We answer the phone Clear communication and a two-hour callback standard.
-
We document the work Photos from inspection through final walkthrough.
-
We keep scope clear No surprise costs, no vague project handoffs.
-
We stand behind the job If something needs fixing, the team fixes it.
5.5 Insurance Claim Process
Three-step strip:
- Inspect and document
- Support the claim process
- Repair or replace the roof
5.6 Featured Projects
Show 3 to 6 project cards from D1 CMS/project records.
Each project card:
- image
- title
- city
- service type
- short result
- button to case study
5.7 Reviews
Add review component.
Data source options:
- manual review entries in admin
- Google Business Profile widget/API if available
- static imported testimonials
Do not mark up reviews with Review schema unless reviews are visible on-page and valid for the business.
5.8 Service Areas
Show city links:
- Austin
- Leander
- Cedar Park
- Round Rock
- Pflugerville
- Buda
- Kyle
5.9 Final CTA
Headline:
Tell us what you need done. We’ll give you a clear next step.
CTA buttons:
- Schedule Inspection
- Request Estimate
- Call 512-915-4739
6. Public Service Page Template
Each service page should use this layout:
- Local SEO hero
- Clear service explanation
- Who this is for
- Common signs/problems
- Alpha Team process
- Related services
- Project examples
- FAQ
- Contact CTA
- LocalBusiness/Service/FAQ schema
Example page: /roofing/insurance-claim-help
Headline:
Roof Insurance Claim Help in Austin and Central Texas
Sections:
- Hail and wind damage can be hard to see from the ground.
- Alpha Team inspects, photographs, and documents roof damage.
- The homeowner remains responsible for insurance decisions, but Alpha Team can help provide project documentation.
- What happens during the inspection.
- What photos and notes the team provides.
- What happens if the claim is approved.
- FAQ.
Use careful wording. Do not imply Alpha Team is a public adjuster unless they are licensed for that.
7. Admin Backend Information Architecture
Private admin routes:
/admin
/admin/login
/admin/dashboard
/admin/leads
/admin/leads/:id
/admin/imports
/admin/imports/:id
/admin/properties
/admin/properties/:id
/admin/campaigns
/admin/campaigns/:id
/admin/tasks
/admin/projects
/admin/projects/new
/admin/projects/:id/edit
/admin/reviews
/admin/forms
/admin/forms/:id
/admin/settings
/admin/settings/data-sources
/admin/settings/scoring
/admin/settings/compliance
/admin/settings/users
7.1 Admin Dashboard
Show:
- New website leads
- New imported property leads
- Top scored properties this week
- Storm-event watch list
- Follow-ups due today
- Campaigns in progress
- Recent imports
- Data-source health
- Suppression/opt-out count
7.2 Lead Table
Columns:
- Score
- Name if available
- Property address
- City
- Home value
- Year built
- Estimated roof age
- Service fit
- Storm exposure
- Status
- Last contact
- Next follow-up
- Source
Filters:
- City
- ZIP
- home value min/max
- year built min/max
- score range
- roof age range
- owner occupied / absentee if licensed source provides it
- storm event date
- status
- campaign
- source
- suppression state
7.3 Lead Detail Page
Sections:
- Lead summary
- Property details
- Owner/contact details if legally sourced
- Source provenance
- Score breakdown
- AI summary
- Suggested approach
- Timeline
- Notes
- Tasks
- Outreach drafts
- Campaign memberships
- Suppression controls
Do not hide provenance. Every admin should be able to see where data came from.
8. Data Sources and Compliance Rules
8.1 Allowed Source Types
Allowed:
- official appraisal district exports
- official GIS downloads
- official public bulk files
- licensed property data APIs
- vendor-provided marketing lists with clear usage rights
- direct website form submissions
- manually entered leads
- storm/weather data from official weather sources
- customer-uploaded photos attached to a lead
Avoid:
- scraping county property search interfaces
- scraping Zillow/Realtor/Redfin pages
- scraping Google Maps listings
- buying unclear contact lists without rights documentation
- automated phone/text blasts
8.2 Primary Local Sources
Travis Central Appraisal District
Use only approved/bulk/public-export paths. Do not bulk scrape the interactive property search interface.
Store source label:
travis_cad_public_export
Williamson Central Appraisal District
Use official downloadable data and GIS files where available.
Store source label:
williamson_cad_data_download
8.3 Paid/Licensed Property Vendors
Create adapters for:
- ATTOM
- Regrid
- future vendor
- manual CSV
The importer should treat every source as an adapter returning the same normalized structure.
8.4 Weather Sources
Use weather/storm data to identify urgency for roofing.
Source adapters:
- NOAA Storm Events CSV import
- National Weather Service alerts/API
- optional third-party hail swath provider later
Storm data should be used as property-level context, not as a claim of actual roof damage.
9. D1 Database Schema
Create migrations in /migrations.
9.1 Initial Core Tables
CREATE TABLE users (
id TEXT PRIMARY KEY,
email TEXT NOT NULL UNIQUE,
name TEXT,
role TEXT NOT NULL DEFAULT 'staff',
is_active INTEGER NOT NULL DEFAULT 1,
created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
);
... (truncated in this page) ...