(This project currently uses Render's free tier, so both the chatbot and site services must be woken up independently. Visiting either one will redirect you to the other when appropriate/needed.)
- Website: https://rafflebot-site.onrender.com
- Chatbot: https://rafflebot-chatbot.onrender.com
- Video Demo: https://youtu.be/7ylFb5CqVsI
RaffleBot is a comprehensive Twitch giveaway platform consisting of two integrated applications:
- Main Web Application - Allows streamers to create, manage, and monitor giveaways
- Twitch Chatbot - Connects to Twitch chat to handle viewer entry and prize distribution
- Secure Twitch OAuth authentication
- Create and customize giveaways with different frequency and threshold settings
- Easily manage item inventory for each giveaway
- Real-time giveaway management through Twitch chat
- Automatic winner selection based on configurable criteria
- View your winnings as a viewer
- Security features including rate limiting and protection against common web vulnerabilities
- Backend: Flask (Python)
- Database: SQLAlchemy with PostgreSQL
- Authentication: Twitch OAuth
- Twitch Integration: TwitchIO
- Deployment: Render
- Python 3.8+
- PostgreSQL (optional, SQLite for local development)
- Twitch Developer Account (for API credentials)
- Clone the repository
- Install dependencies:
pip install -r requirements.txt - Set up the database:
python models.py - Start the main application:
python app.py - Start the chatbot in a separate terminal:
python chatbot.py
- Log in with your Twitch account
- Create a new giveaway from the dashboard
- Add items to the giveaway
- Start the giveaway to activate the chatbot in your channel
- The chatbot will automatically select winners based on your settings
- Join a stream where the RaffleBot is active
- Type
!enterin the chat to participate - If you win, log in to the RaffleBot website to claim your prize
!enter- Enter the active giveaway!startgiveaway- (Streamer only) Start a giveaway!endgiveaway- (Streamer only) End the active giveaway!listgiveaways- (Streamer only) List available giveaways