Skip to content
Content Engine · Geospatial ToolingLive in production

TrueLevel

Foundation repair answers for Austin homeowners, from an engineer

trueleveltx.com

Austin sits on the Balcones Fault, where expansive clay meets Hill Country limestone. That geology cracks foundations — and has produced an industry of call centers that resell the same homeowner's phone number to five contractors. TrueLevel is the opposite bet: connect a homeowner with exactly one vetted specialist, and earn the click by genuinely explaining the soil under their house.

75
Suburb pages generated
52
Content entries, 7 collections
3
Public geo APIs chained live
5.9K
Lines of source

The problem

Foundation repair is one of the most adversarial search categories in home services. The top results are lead aggregators that sell a homeowner's contact details to multiple contractors, guaranteeing a week of cold calls and a bidding war between companies that have never seen the house.

Competing on ad spend against that model is unwinnable for a single specialist. The only durable advantage is being the page that actually answers the question — what is under my house, why is it moving, and what does fixing it really cost — with enough specificity that Google and the AI answer engines both cite it.

That meant the content couldn't be generic. Central Texas geology changes street by street: expansive Taylor clay on one side of the fault behaves nothing like Edwards limestone on the other.

What we built

A typed content layer instead of a CMS

Seven Astro content collections — cost, foundation types, repair methods, problems, guides, Central Texas geology, and authors — hold 52 entries under a strict schema. Every entry is required to carry a `quickAnswer` field, so each page leads with a directly quotable answer rather than burying it under an introduction.

Programmatic suburb coverage from a soil table

A hand-curated shrink-swell risk table covering 75 Central Texas suburbs drives a dynamic route that generates one page per suburb. Each page is grounded in that suburb's actual geology rather than a find-and-replace of the city name — the difference between useful local content and a doorway page.

A live address-to-risk lookup

The soil checker takes a street address and returns a real risk classification: geocode the address against the US Census Geocoder, fall back to OpenStreetMap Nominatim if that misses, query the USGS Geologic Database of Texas ArcGIS service for the bedrock unit at those coordinates, then map the rock unit through the curated shrink-swell table. Three keyless public APIs, chained with exact-name, fuzzy-name, and geocode fallbacks at each tier.

Static site, two React islands

The whole site ships as static Astro output on Vercel. Exactly two components hydrate — the cost estimator and the soil lookup — so the content pages carry no JavaScript cost at all. Leads land through a single Zod-validated Astro Action with a honeypot, writing to an RLS-locked, insert-only Supabase table and firing a Resend alert.

Engineering highlights

The parts that were genuinely hard — and how they were solved.

Deterministic OG images across operating systems

Social card generation rendered differently on a developer Mac than on Vercel's Linux builders — different font fallbacks, different line breaks. The generator now forces Pango's fontconfig backend and measures headline wrapping with a render-free glyph-metrics pass, so the image committed in review is byte-comparable to the one production serves.

Schema chosen from the business model, not the template

The JSON-LD builder emits a graph-shaped `Service` entity rather than the reflexive `LocalBusiness`. TrueLevel has no premises and performs no repairs — claiming a storefront it doesn't have would be a structured-data lie that Google is increasingly good at catching.

Answer-engine optimisation as architecture

A self-generating llms.txt, an explicit AI-crawler allowlist naming GPTBot, ClaudeBot and PerplexityBot, and the mandatory quickAnswer field on every entry are all one strategy: be the source an LLM quotes when someone asks it about Austin foundation problems, not just a blue link.

Degrades instead of exploding

When Supabase or Resend credentials are absent, the lead form renders a plain notice rather than throwing. A preview deployment without secrets is still a browsable, reviewable site — which matters when the deploy pipeline is push-to-main.

Where it stands

  • Live at trueleveltx.com, deploying continuously from main.
  • A daily autonomous SEO agent ships content and logs every run to a persistent operations log, giving the growth loop memory across sessions.
  • The lead table already carries the seams for a planned AI phone-intake channel — intake_channel and an intake_meta JSON column — so voice intake drops in without a migration.

The stack

Framework
Astro 6React 19 islandsTypeScript 6MDX
Data
Astro Content CollectionsSupabase PostgresRow Level Security
Geospatial
US Census GeocoderOSM NominatimUSGS ArcGIS REST
Infrastructure
VercelStatic outputAstro ActionsZod
Growth
JSON-LD graphIndexNowllms.txtGA4Ahrefs
Third-party services wired in
SupabaseResendGoogle Analytics 4Ahrefs Web AnalyticsIndexNow