National Directory Platform
TRT Authority
The largest testosterone replacement therapy clinic directory in the US — 7,600+ clinics across all 50 states, ~9,700 pre-rendered pages, and a SaaS clinic management dashboard.
Overview
TRT Authority pairs a high-performance static directory site with a SaaS clinic management dashboard. The main site at trtauthority.com is a fully static Astro site — all data queries run at build time with zero runtime API calls. The pro dashboard at pro.trtauthority.com is a Next.js application with Supabase auth, tiered subscriptions, and a full claim/verify pipeline for clinic owners.
Content is organized into six pillars — Diagnosis, Treatments, Guide, Reviews, Resources, and Directory — plus individual clinic profiles, city pages, state landers, service pages, and editorial content. Every page is pre-rendered, SEO-optimized, and served from Vercel's edge network.
For a deeper technical walkthrough including architecture diagrams and pipeline specifications, request our technical whitepaper.
By the Numbers
7,600+
Clinics Indexed
~9,700
Pre-rendered Pages
50
States Covered
35
Service Modalities
Two Systems, One Platform
trtauthority.com
Fully static directory and content site. All Supabase queries run during build with 50 concurrent workers — zero runtime API calls. Astro 5 with React islands, Pagefind for client-side full-text search, and geo-aware routing for city/state pages.
pro.trtauthority.com
Next.js SaaS dashboard for clinic owners. Supabase magic-link auth, tiered subscriptions (4 tiers from free to $1,199/mo), feature gating, and a full claim/verify pipeline with n8n webhook automation.
Main Site — Tech Stack
| Layer | Technology |
|---|---|
| Framework | Astro 5 + React 19 (islands architecture) |
| Language | TypeScript |
| Styling | Tailwind CSS 4 |
| Search | Pagefind (client-side full-text, built at compile time) |
| UI | Radix UI primitives, Lucide icons, CVA + clsx |
| Database | Supabase PostgreSQL (read-only at build time) |
| Hosting | Vercel (static output, ~9,700 pre-rendered pages) |
| Content | MDX via @astrojs/mdx |
| SEO | Sitemap generation, structured data, geo-aware city/state routing |
Pro Dashboard — Tech Stack
| Layer | Technology |
|---|---|
| Framework | Next.js (App Router, Turbopack) |
| Language | TypeScript (strict mode) |
| Styling | Tailwind CSS 4 + shadcn/ui component system |
| Auth | Supabase magic link (passwordless, email-based) |
| Database | Supabase (shared instance with main site) |
| Hosting | Vercel (SSR) |
| UI | shadcn/ui (Radix-based), Lucide icons |
Subscription Tiers
The Pro dashboard uses a tiered subscription model with feature gating. Annual billing includes two months free.
| Tier | Price | Description |
|---|---|---|
| Claimed | Free | Basic listing management and profile control |
| Pro Lite | $199/mo | Enhanced profile, analytics, and visibility features |
| Pro Plus | $499/mo | Priority placement, advanced analytics, and lead tools |
| Elite | $1,199/mo | Full platform access, dedicated support, and premium positioning |
Claim & Verify Pipeline
Clinic owners can search for and claim their listing through an automated verification flow.
Search
Autocomplete clinic lookup
Verify
Owner verification form
Process
n8n webhook + Airtable + Slack
Activate
Magic link access to dashboard
Database Architecture
A shared Supabase PostgreSQL instance powers both the main site and Pro dashboard. Airtable serves as the editorial CMS and pipeline input, syncing to Supabase via Python scripts.
| Table | Records | Purpose |
|---|---|---|
| businesses | 7,600+ | Clinic profiles with contact info, ratings, grades, and scores |
| services | 35 | TRT treatment modalities and service types |
| content_pages | Editorial | AI-generated articles across six content pillars |
| states / cities | 50 / All US | Geographic routing with lat/long for proximity search |
| brands | Brand records | Pharmaceutical and clinic brand information |
| glossary | Term definitions | Medical terminology and TRT-specific glossary |
Junction tables handle the many-to-many relationships: listing-services, FAQ-services, content-service matching, featured businesses, and related content links.
Content & Data Pipeline
A Python-based pipeline handles everything from clinic discovery to content generation to image creation. Each stage uses purpose-built AI models for its specific task.
| Stage | AI Model | What It Does |
|---|---|---|
| Discovery | DataForSEO | GMB business discovery across all US markets |
| Web Scraping | Claude Haiku | Crawl 7,600+ clinic websites, extract structured data |
| Classification | Claude Haiku | A-F TRT relevance grading for every clinic |
| Scoring | Algorithmic | Composite 0-100 quality scoring |
| Content Planning | Claude Opus | Strategic editorial framework and topic architecture |
| Content Writing | Perplexity Sonar + Claude Sonnet | Research with live citations, then write and edit articles |
| Image Generation | Gemini Pro Image | Illustrations with WebP optimization + EXIF geodata |
| FAQ Generation | DataForSEO + Claude Haiku | PAA scraping from SERPs + FAQ content generation |
| Service Pages | Claude Sonnet | 800-1200 word service page content for each modality |
| Data Sync | Python | Airtable → Supabase sync with crash recovery |
AI Models Used
Different models are selected for each task based on the trade-off between capability, speed, and cost.
| Model | Provider | Use Case |
|---|---|---|
| Claude Opus | Anthropic | Strategic content planning, complex reasoning |
| Claude Sonnet | Anthropic | Content writing, FAQ generation, service pages |
| Claude Haiku | Anthropic | Data extraction, classification, web scrape parsing |
| Perplexity Sonar | Perplexity | Research with live citations for article writing |
| Gemini Pro Image | Image generation (PNG → WebP) | |
| Gemini Flash | Image captioning and alt text |
Infrastructure & Deployment
| Component | Platform | Details |
|---|---|---|
| Main Site | Vercel (static) | trtauthority.com — ~9,700 pre-rendered pages |
| Pro Dashboard | Vercel (SSR) | pro.trtauthority.com — 15+ authenticated routes |
| Database | Supabase Cloud | PostgreSQL + Auth + Storage (shared instance) |
| CMS / Data | Airtable | Editorial CMS, pipeline input, client records |
| Automation | n8n (self-hosted) | Claim verification, lead routing, notifications |
| SERP / Keywords | DataForSEO | Business discovery, SERP research, keyword analysis |
Geo-Aware Features
Proximity-Sorted Results
City coordinates stored in Supabase enable "nearby cities" sections and distance-aware clinic sorting on every city and state page.
Homepage Clinic Finder
Detects user location to surface the nearest clinics immediately on homepage load — no manual location input required.
State Landers
Dedicated pages for all 50 states with clinic counts, top-rated clinics, city breakdowns, and state-specific TRT information.
City Pages
Individual pages for every city with TRT clinics — filterable clinic listings, local context, and nearby city navigation.
Automation Layer
n8n handles the operational automation — webhook endpoints that process form submissions, route leads, and sync data between systems.
Clinic Claim Webhook
Verification submissions trigger an n8n workflow that writes to Airtable, sends a Slack notification, and fires a confirmation email — all in seconds.
Lead Routing
Contact forms, quiz completions, and callback requests are captured and routed via n8n webhooks with email notifications.
Want the full technical breakdown?
Our technical whitepaper covers architecture diagrams, pipeline specifications, data models, and performance benchmarks in detail.
Request WhitepaperWant us to build something like this for your niche?
TRT Authority is exactly the kind of digital asset we build under The Property. Tell us about your market.
Start a Conversation