Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

FertiliTEA Website

A modern podcast website for FertiliTEA with Dr. D - Real Talk on Fertility, Family Building, and Reproductive Health.

Features

  • πŸŽ™οΈ Podcast RSS feed integration with custom audio player
  • πŸ” Episode search and topic filtering
  • πŸ“ Blog powered by Sanity CMS
  • πŸ’Œ Newsletter integration with Buttondown
  • πŸ“Š Analytics with Supabase
  • 🎨 Fully responsive design
  • ⚑ Built with Next.js 15 and TypeScript

Tech Stack

  • Framework: Next.js 15 with App Router
  • Language: TypeScript
  • Styling: Tailwind CSS
  • CMS: Sanity
  • Database: Supabase
  • Newsletter: Buttondown
  • Deployment: Vercel

Getting Started

Prerequisites

  • Node.js 18+ installed
  • npm or yarn package manager
  • Sanity account (free tier)
  • Supabase account (free tier)
  • Buttondown account ($9/mo)

Installation

  1. Clone the repository:
git clone <your-repo-url>
cd FertiliTEA
  1. Install dependencies:
npm install
  1. Set up environment variables:
cp .env.local.example .env.local

Edit .env.local and add your credentials:

# Sanity CMS
NEXT_PUBLIC_SANITY_PROJECT_ID=your_project_id_here
NEXT_PUBLIC_SANITY_DATASET=production

# Supabase
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url_here
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key_here

# Buttondown
BUTTONDOWN_API_KEY=your_buttondown_api_key_here

# Analytics (Optional)
NEXT_PUBLIC_GA_ID=your_google_analytics_id_here

Setting up Sanity CMS

  1. Create a new Sanity project:
cd sanity
npm create sanity@latest
  1. Follow the prompts to create your project

  2. Copy your project ID and add it to .env.local

  3. Deploy Sanity Studio:

npm run dev
  1. Access Sanity Studio at: http://localhost:3000/studio

Setting up Supabase

  1. Create a new project at supabase.com

  2. Run the SQL schema from supabase-schema.sql in the SQL Editor:

    • Go to SQL Editor in your Supabase dashboard
    • Copy the contents of supabase-schema.sql
    • Run the query
  3. Get your project URL and anon key from Settings > API

  4. Add them to .env.local

Setting up Buttondown

  1. Create an account at buttondown.email

  2. Go to Settings > Programming

  3. Copy your API key

  4. Add it to .env.local

Development

Run the development server:

npm run dev

Open http://localhost:3000 in your browser.

Project Structure

β”œβ”€β”€ app/                  # Next.js app directory
β”‚   β”œβ”€β”€ api/             # API routes
β”‚   β”œβ”€β”€ blog/            # Blog pages
β”‚   β”œβ”€β”€ studio/          # Sanity Studio
β”‚   └── page.tsx         # Home page
β”œβ”€β”€ components/          # React components
β”‚   β”œβ”€β”€ ui/             # shadcn/ui components
β”‚   └── ...             # Custom components
β”œβ”€β”€ lib/                # Utility functions
β”œβ”€β”€ sanity/             # Sanity configuration
β”‚   β”œβ”€β”€ schemas/        # Content schemas
β”‚   └── lib/            # Sanity client
β”œβ”€β”€ img/                # Static images
└── public/             # Public assets

Deployment

Deploy to Vercel

  1. Push your code to GitHub

  2. Import your repository on Vercel

  3. Add your environment variables in the Vercel dashboard

  4. Deploy!

Deploy Sanity Studio

The Sanity Studio is embedded at /studio and will be deployed with your Next.js app.

Content Management

Adding Blog Posts

  1. Go to /studio in your browser
  2. Click "Blog Post"
  3. Fill in the title, content, and other fields
  4. Publish

Managing Testimonials

  1. Go to /studio
  2. Click "Testimonial"
  3. Add new testimonials with ratings and text
  4. Mark as "Featured" to show in the carousel

Managing Topics

  1. Go to /studio
  2. Click "Topic"
  3. Add topics with custom colors for filter pills

Key Components

  • Hero: Podcast introduction with platform links
  • AudioPlayer: Custom audio player with controls
  • EpisodesSection: Dynamic episode grid with search
  • SearchFilter: Search bar and topic filter pills
  • SubmitSection: Listener question submission form
  • NewsletterSection: Email signup with Buttondown
  • TestimonialsCarousel: Auto-playing testimonial carousel

API Routes

  • /api/submit-question: Handle listener question submissions
  • /api/newsletter-subscribe: Handle newsletter subscriptions

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

License

Copyright Β© 2025 FertiliTEA with Dr. D. All rights reserved.

Support

For questions or issues, contact: fertiliteawithdrd@gmail.com

About

Fertility Podcast Website

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages