Partner handoff

Technical specification

How the Let's Get Real site is built, what it does, and how it is deployed.

1. Project overview

Let's Get Real is a pre-launch landing page and guest-speaker acquisition funnel for a panel-debate podcast at the intersection of HR and Operations. It is co-hosted by Laura Marie Henderson and Stacy Fenner, and produced in partnership with Gulf Works Lab and MorganHR.

Primary domain
podcast.lauramariehenderson.com
Custom domains
letsgetrealpodcast.com
www.letsgetrealpodcast.com

2. Tech stack

Framework
TanStack Start v1 + TanStack React Router
UI library
React 19
Language
TypeScript
Build tool
Vite 8
Styling
Tailwind CSS v4 + custom CSS variables
UI primitives
Radix UI + shadcn-style components
Forms
React Hook Form + Zod
Backend
Lovable Cloud / Supabase
Server logic
createServerFn RPC
Email
Lovable managed email API
Email templates
React Email
Hosting
Lovable / Cloudflare Workers edge runtime

3. Site structure

RoutePurpose
/Homepage: hero, show positioning, hosts, anchor sponsors, guest form
/episodesEpisode listing with show notes and guest profiles (hidden from main nav)
/specThis technical specification page
/sitemap.xmlAuto-generated XML sitemap

4. Key features

  • Guest-speaker form collects name, email, LinkedIn, business function, 1-3 discussion topics, and two open-ended questions.
  • Submissions persist to the guest_speaker_submissions table and trigger email notifications to the hosts.
  • SEO-ready with unique titles, descriptions, canonical URLs, Open Graph tags, and JSON-LD structured data.
  • Branded UI using Deep Navy, Coral, Morgan Green, Warm Sand, Sage, and Slate, with Poppins and Source Sans 3 typography.

5. Data model

Guest pitches are stored in the guest_speaker_submissions table.

ColumnTypeNotes
idUUIDPrimary key
created_at / updated_attimestampAuto-generated
namestringRequired
emailstringRequired
linkedinstringOptional
sidestringBusiness function
topicsstring[]1-3 selected topics
misunderstoodstringRequired, min 10 chars
solutionstringRequired, min 10 chars
statusstringDefaults to pending

Access model: anonymous users can INSERT new submissions; reads, updates, and deletes are private behind authenticated backend access.

6. Email infrastructure

Sender domain
notify.letsgetrealpodcast.com
From address
Let's Get Real <noreply@notify...>
Recipients
guest@letsgetrealpodcast.com
sfenner@morganhr.com
Platform
Lovable managed email API

The guest@ mailbox is a real inbox; Cloudflare email routing forwards it to Laura and Stacy's accounts. Delivery, suppression, retries, and rate-limiting are handled by Lovable.

7. Integrations and external services

  • Lovable Cloud / Supabase for data persistence
  • Lovable managed email API for transactional sends
  • Cloudflare for domain DNS, SSL, and email forwarding
  • Google Search Console connector configured; OAuth verification pending

8. Deployment and hosting

EnvironmentURL
Previewid-preview--12eddffe-05b7-4bdd-8e27-50620be6e922.lovable.app
Published (Lovable)podcast-palace-launch.lovable.app
Custom domainsletsgetrealpodcast.com
podcast.lauramariehenderson.com

Publishing: backend changes deploy automatically; frontend changes require clicking Update in the Lovable Publish dialog. Custom domains serve content only after the project is published.

9. Security and privacy

  • No third-party trackers, analytics cookies, or ad pixels
  • Server-side Zod validation on all guest form submissions
  • Row Level Security enabled; anonymous INSERT only, private reads/edits/deletes
  • Supabase service role keys are never exposed to the browser
  • Recent dependency/security scans reported no high or critical vulnerabilities

10. Current limitations and next steps

ItemNext step
Episodes pageRe-enable nav link when Season 1 launches
Reviews sectionRe-enable after first episodes air
Sponsorship sectionRe-enable when sponsorship is open
Listen platformsAdd real platform URLs at launch
Google Search ConsoleComplete OAuth verification
Episode contentReplace placeholders with real titles and links
Sponsor workflowAutomate or add inquiry form if needed