Set sail on an audio adventure! Your ultimate destination for discovering, streaming, and managing podcasts.
Pod Pirate is a modern, full-stack podcast platform that combines powerful content creation tools with an elegant listening experience. Whether you're a podcast enthusiast, content creator, or platform administrator, Pod Pirate provides everything you need in one seamless application.
For Listeners
- Stream your favorite podcasts with a beautiful, responsive audio player
- Discover new content through an intuitive browse and search interface
- Enjoy seamless playback with our mini-player that follows you across pages
- Install as a Progressive Web App for offline listening
For Creators
- Publish and manage your podcast shows with ease
- Upload episodes with rich metadata and artwork
- Track your content with a dedicated creator dashboard
- Reach your audience with professional-grade tools
For Administrators
- Comprehensive user management dashboard
- Content moderation and platform oversight
- System monitoring and health checks
- Role-based access control
- Advanced audio player with playback controls
- Mini-player mode for continuous listening
- Seamless navigation without interrupting playback
- Support for large audio files (up to 1GB)
- Secure JWT-based authentication
- Email verification and password reset
- Role-based access (Listener, Creator, Admin)
- Protected routes and API endpoints
- Create and manage podcast shows
- Upload episodes with metadata and artwork
- Browse and discover public podcasts
- Search and filter capabilities
- Clean, responsive design
- Dark mode support
- Progressive Web App (PWA) capabilities
- Optimized for mobile and desktop
- Azure Blob Storage for media files
- Secure, time-limited upload URLs
- CDN-ready content delivery
- Scalable infrastructure
Pod Pirate is built as a full-stack application with a clear separation between frontend and backend:
βββββββββββββββββββββββββββββββββββββββββββββββ
β π΄ββ οΈ Pod Pirate Platform β
βββββββββββββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββ΄βββββββββββββ
β β
βΌ βΌ
ββββββββββββββββ ββββββββββββββββ
β Frontend β ββββββββΊ β Backend β
β Next.js β REST β Spring Boot β
β React 19 β API β Java 21 β
β TypeScript 5 β β MongoDB β
ββββββββββββββββ ββββββββββββββββ
β β
β βΌ
β ββββββββββββββββ
β β Storage β
β β Azure β
β β Blob Storage β
β ββββββββββββββββ
β
βΌ
ββββββββββββββββ
β Users β
β Browsers β
β Mobile β
ββββββββββββββββ
Frontend - Modern web interface built with Next.js and React
Backend - RESTful API built with Spring Boot and Java
Database - MongoDB for flexible data storage
Storage - Azure Blob Storage for media files
-
Clone the repository
git clone https://github.com/berlinbruno/pod-pirate.git cd pod-pirate -
Set up the Backend
cd pod-pirate-backend # See pod-pirate-backend/README.md for detailed setup
-
Set up the Frontend
cd pod-pirate-frontend # See pod-pirate-frontend/README.md for detailed setup
- Node.js 20.x or higher
- Java JDK 21 or higher
- MongoDB 6.0+ (local or Atlas)
- Azure Storage Account
- SMTP server for emails
- π± Frontend Setup - Next.js web application
- π§ Backend Setup - Spring Boot API
- π Deployment Guide - Production deployment
- Next.js 16 - React framework with App Router
- React 19 - UI library
- TypeScript - Type-safe development
- Tailwind CSS - Utility-first styling
- NextAuth.js - Authentication
- shadcn/ui - UI components
- Java 21 - Modern programming language
- Spring Boot 3.4 - Application framework
- MongoDB - NoSQL database
- Spring Security - Authentication & authorization
- JWT - Token-based auth
- Maven - Build automation
- Azure Blob Storage - Media file storage
- SMTP - Email delivery
- RESTful API - Communication protocol
pod-pirate/
βββ pod-pirate-frontend/ # Next.js web application
β βββ app/ # Next.js App Router pages
β βββ components/ # React components
β βββ actions/ # Server actions
β βββ lib/ # Utilities and API clients
β βββ package.json
β
βββ pod-pirate-backend/ # Spring Boot API
β βββ src/
β β βββ main/
β β β βββ java/ # Java source code
β β β βββ resources/ # Configuration files
β β βββ test/ # Test files
β βββ pom.xml
β
βββ README.md # This file
Both applications require environment variables. Create .env.local files in respective directories:
Frontend Environment
NEXT_BACKEND_URL=http://localhost:8080
NEXTAUTH_URL=http://localhost:3000
AUTH_SECRET=<generate-secret>
NEXT_IMAGES_REMOTE_PATTERN=<azure-hostname>
NEXT_PUBLIC_SITE_URL=http://localhost:3000Backend Environment
MONGODB_URI=mongodb://localhost:27017/podpirate
AZURE_STORAGE_CONNECTION_STRING=<azure-connection>
AZURE_STORAGE_CONTAINER_NAME=podcasts
SMTP_USER=<email>
SMTP_PASSWORD=<password>
ALLOWED_ORIGINS=http://localhost:3000
FRONTEND_BASE_URL=http://localhost:3000
ADMIN_EMAIL=<admin-email>
JWT_SECRET=<generate-secret>For detailed configuration, see individual README files in each directory.
Frontend
- Vercel (recommended for Next.js)
- Netlify
- AWS Amplify
- Azure Static Web Apps
Backend
- Azure App Service
- AWS Elastic Beanstalk
- Heroku
- Docker + Kubernetes
| Feature | Frontend | Backend | Status |
|---|---|---|---|
| User Authentication | β NextAuth.js | β JWT + Spring Security | β Complete |
| Podcast Management | β CRUD UI | β REST API | β Complete |
| Episode Management | β Upload & Browse | β Azure Integration | β Complete |
| Audio Player | β Custom Player | β Secure URLs | β Complete |
| Admin Dashboard | β Admin UI | β Admin Endpoints | β Complete |
| Email Service | β Templates | β SMTP Integration | β Complete |
| PWA Support | β Manifest + SW | N/A | β Complete |
| Dark Mode | β Theme Toggle | N/A | β Complete |
- Advanced analytics dashboard
- Social features (comments, likes, shares)
- Playlist creation and management
- Episode transcripts with search
- Multi-language support
- Podcast RSS feed import
This project is licensed under the MIT License.
Berlin Bruno
- GitHub: @berlinbruno
For questions or support:
- π Check the Frontend README
- π Check the Backend README
- π Open an issue on GitHub
Built with β€οΈ using Next.js, React, Spring Boot, and Java
β Star this repo if you find it useful!