Quick Start
Quick Start
Section titled “Quick Start”Get a production-ready podcast website running in under 10 minutes. This guide will walk you through creating a new podcast site from scratch.
Prerequisites
Section titled “Prerequisites”Before you begin, make sure you have:
- Node.js 18+ installed (download here)
- Git installed (download here)
- A Sanity account (free - sign up at sanity.io)
Step 1: Create Project
Section titled “Step 1: Create Project”Use the Podcast Framework CLI to create a new project:
npm create @rejected-media/podcast-framework my-podcastThe CLI will prompt for a short description (or press Enter to use the default). That’s it!
This will:
- ✅ Create project structure
- ✅ Generate configuration files
- ✅ Set up with all features enabled (newsletter, search, contributions)
- ✅ Create a
.env.templatefile
Step 2: Navigate to Project
Section titled “Step 2: Navigate to Project”cd my-podcastStep 3: Create Sanity Project
Section titled “Step 3: Create Sanity Project”Create a new Sanity project at sanity.io/manage:
- Click “Create project”
- Enter project name:
my-podcast - Choose “Production” dataset
- Write down your Project ID - you’ll need it next!
Step 4: Add Your Project ID
Section titled “Step 4: Add Your Project ID”Update sanity.config.ts with your project ID:
export default defineConfig({ name: 'default', title: 'my-podcast',
projectId: 'abc123xyz', // ← Replace with your actual Project ID dataset: 'production',
// ...});Also create a .env file:
cp .env.template .envAdd your project ID to .env:
PUBLIC_SANITY_PROJECT_ID="abc123xyz" # Your Project ID from Step 3PUBLIC_SANITY_DATASET="production"PUBLIC_SANITY_API_VERSION="2024-01-01"
SANITY_TOKEN="your_write_token" # Optional: for RSS importStep 5: Install Dependencies
Section titled “Step 5: Install Dependencies”npm installStep 6: Start Development Servers
Section titled “Step 6: Start Development Servers”Start both the Astro dev server and Sanity Studio:
# Terminal 1: Astro dev servernpm run dev
# Terminal 2: Sanity Studio (in a new terminal)npm run dev:sanityYour podcast site is now running at:
- Website: http://localhost:4321
- Sanity Studio: http://localhost:3333
Step 7: Add Your First Episode
Section titled “Step 7: Add Your First Episode”- Open Sanity Studio at http://localhost:3333
- Click “Podcast” in the sidebar
- Fill in your podcast information:
- Name
- Tagline
- Description
- Links (Spotify, Apple Podcasts, etc.)
- Click “Publish”
- Click “Episode” in the sidebar
- Click “Create new Episode”
- Fill in episode details:
- Title
- Episode number
- Publish date
- Duration
- Description
- Links (Spotify, Apple, YouTube)
- Click “Publish”
Step 8: Add Your First Guest (Optional)
Section titled “Step 8: Add Your First Guest (Optional)”- Click “Guest” in the sidebar
- Click “Create new Guest”
- Fill in guest details:
- Name
- Slug (auto-generated from name)
- Bio
- Photo (upload)
- Social links (Twitter, LinkedIn, Website)
- Click “Publish”
- Go back to your episode
- Add the guest to the episode’s “Guests” field
- Click “Publish”
Step 9: Customize Your Theme
Section titled “Step 9: Customize Your Theme”- In Sanity Studio, click “Theme” in the sidebar
- Customize colors:
- Primary color (links, buttons)
- Background color
- Text colors
- Select fonts (Google Fonts integration)
- Choose layout options
- Click “Publish”
Refresh your website to see the changes!
What You’ve Built
Section titled “What You’ve Built”In 10 minutes, you now have:
- ✅ Beautiful homepage with featured episodes
- ✅ Episode archive with search functionality
- ✅ Individual episode pages with Spotify embeds
- ✅ Guest directory with photos and bios
- ✅ Guest profile pages with all their episodes
- ✅ About page (CMS-configurable)
- ✅ Newsletter signup (ready for ConvertKit integration)
- ✅ Contribution form (ready for Resend integration)
- ✅ Custom theme (your colors and fonts)
- ✅ Fully responsive (mobile, tablet, desktop)
- ✅ Type-safe (TypeScript with strict mode)
- ✅ SEO optimized (meta tags, sitemaps)
Next Steps
Section titled “Next Steps”Now that your site is running, you can:
- Deploy to production - Go live in 5 minutes
- Customize components - Make it yours
- Set up email - Enable newsletter and contributions
- Add analytics - Track your visitors
Common Next Steps
Section titled “Common Next Steps”Import Existing Episodes
Section titled “Import Existing Episodes”If you have an existing podcast RSS feed:
# Set RSS_FEED_URL in .envecho 'RSS_FEED_URL="https://feeds.transistor.fm/your-show"' >> .env
# Import episodes (includes images)npm run import:episodes
# Or use command directly with optionspodcast-framework import-rss --feed https://feeds.transistor.fm/your-show --verboseSupported podcast hosts: Transistor (more coming soon)
Set Up Newsletter
Section titled “Set Up Newsletter”- Create a ConvertKit account (free)
- Get your API key and Form ID
- Add to
.env:
CONVERTKIT_API_KEY="your-api-key"CONVERTKIT_FORM_ID="your-form-id"Newsletter signups now work!
Set Up Contributions
Section titled “Set Up Contributions”- Create a Resend account (free tier available)
- Get your API key
- Add to
.env:
RESEND_API_KEY="your-api-key"Contribution form now sends emails!
Deploy to Production
Section titled “Deploy to Production”Deploy to Cloudflare Pages in 5 minutes:
# Build the sitenpm run build
# Deploy (follow prompts)npx wrangler pages deploy distOr use the Cloudflare Pages dashboard for automatic deployments on git push.
Getting Help
Section titled “Getting Help”Stuck? Here’s where to get help:
- GitHub Discussions - Ask questions
- GitHub Issues - Report bugs
- Documentation - Read the full docs
- Examples - See example projects
Troubleshooting
Section titled “Troubleshooting””Module not found: @rejected-media/podcast-framework-core”
Section titled “”Module not found: @rejected-media/podcast-framework-core””Make sure dependencies are installed:
npm install“Sanity client error: Project not found”
Section titled ““Sanity client error: Project not found””Check your .env file - PUBLIC_SANITY_PROJECT_ID must match your Sanity project ID.
”Build failed: Type error”
Section titled “”Build failed: Type error””Make sure you’re using Node.js 18 or higher:
node --version # Should show v18.0.0 or higherEpisode images not showing
Section titled “Episode images not showing”Images must be uploaded to Sanity. In Sanity Studio:
- Go to your episode
- Click the “Cover Image” field
- Upload an image
- Click “Publish”
What’s Next?
Section titled “What’s Next?”Continue learning:
- Project Structure - Understand the file layout
- Configuration - Configure your site
- Components - Learn about the components
- Deployment - Deploy to production
🎉 Congratulations! You’ve created your first podcast website with Podcast Framework. Now go make it yours!