A deliberately stupid, rage-baiting desktop app that interrupts you with full-screen memes and brutally savage AI-generated roasts. Built for hackathons and pure chaos.
Master Baiter is an Electron desktop app that:
- Lurks in the background waiting to ratio you
- Triggers full-screen popups at random intervals (5-30 minutes)
- Shows dank memes from your local collection
- Generates AI-powered rage bait about your interests using OpenAI GPT-4o-mini
- Says completely untrue things that will absolutely trigger you
- Includes an AI Troll chat where you can argue back (and lose)
- Tracks your L counter β how many times you've been ratio'd
- Test mode for demos (5-15 second intervals)
β οΈ Warning: This is a parody project. Use responsibly and don't run it on someone else's computer without permission!
β
Electron.js desktop shell
β
Express backend API for memes and savage roasts
β
OpenAI integration for brutal, personalized rage bait
β
Random popup scheduler with test mode
β
Full-screen blocking popups (5-second duration)
β
AI Troll chat window (argue and take L's)
β
Modern meme/troll aesthetic (Discord colors, gradient text, trendy UI)
β
Local JSON data storage for interests and L counter
β
Meme manager (serves random images from /assets/memes/)
β
Says completely untrue things designed to trigger you
- Node.js (v16 or higher)
- npm (comes with Node.js)
- OpenAI API key (optional but recommended)
-
Clone or navigate to the project:
cd master-baiter -
Install dependencies:
npm install
-
Set up environment variables:
cp .env.example .env
Edit
.envand add your OpenAI API key:OPENAI_API_KEY=sk-your-actual-api-key-hereNote: The app will work without an API key using fallback insults, but AI-generated roasts won't be available.
-
Add meme images (optional but recommended):
- Place
.jpg,.png,.gif, or.webpmeme images in/assets/memes/ - The app includes a placeholder image by default
- Place
Start both backend and Electron app:
npm startThis will:
- Start the Express backend on
http://localhost:3000 - Launch the Electron desktop app
Alternative (separate terminals):
# Terminal 1: Backend
npm run backend
# Terminal 2: Electron
npm run electron- The app will ask for your top 3 interests (e.g., Drake, Blue Jays, Toronto)
- These are used to generate brutal, personalized rage bait
- Click "π₯ Let's Get Ratio'd" to proceed
- π₯ Start Getting Cooked: Begin the random popup scheduler
- π I Give Up: Stop the scheduler
- Test Mode: Enable for faster popups (5-15 sec) β great for demos
- π¬ Fight the AI (You'll Lose): Launch the chat window to argue with the AI
- β‘ Get Ratio'd Right Now: Trigger a popup immediately
- Appear full-screen and block all input
- Display a random meme + savage AI-generated roast
- Show completely untrue statements about your interests
- Auto-close after 5 seconds
- Update your "times ratio'd" stat
- Open from the main window
- Chat with a brutal AI that says mean, untrue things
- Uses your interests to trigger you specifically
- Disagrees with everything you say
- Type and press Enter to send messages (and take L's)
master-baiter/
βββ main.js # Electron main process
βββ preload.js # Preload script (IPC bridge)
βββ package.json # Dependencies and scripts
βββ .env.example # Environment template
βββ .gitignore # Git ignore rules
βββ README.md # This file
β
βββ src/
β βββ frontend/
β β βββ index.html # Main window UI
β β βββ popup.html # Full-screen popup UI
β β βββ trollbot.html # Trollbot chat UI
β β βββ style.css # Horror-themed styling
β β βββ script.js # Frontend logic
β β
β βββ backend/
β βββ server.js # Express API server
β βββ insults.js # OpenAI insult generation
β βββ memeManager.js # Meme file handling
β βββ scheduler.js # Popup timing logic
β
βββ assets/
β βββ memes/ # Meme image storage
β β βββ README.md # Meme instructions
β β βββ placeholder.png # Default meme
β βββ icon.png # App icon
β
βββ data/
βββ user.json # User interests and stats
- Electron.js: Desktop shell and window management
- Node.js + Express: Backend API server
- OpenAI API: GPT-4o-mini for insult generation
- Pure CSS: Horror-themed styling with animations
- Vanilla JavaScript: No frontend frameworks
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/meme |
Get random meme URL |
| GET | /api/insult |
Generate AI insult based on interests |
| GET | /api/user |
Get user data (interests, stats) |
| POST | /api/user/interests |
Update user interests |
| POST | /api/stats/increment |
Increment popup counter |
| POST | /api/trollbot/chat |
Chat with AI trollbot |
- Production mode: 5-30 minute random intervals
- Test mode: 5-15 second random intervals
- Uses
EventEmitterto trigger popups - Automatically reschedules after each popup
User data is stored in /data/user.json:
{
"interests": ["Drake", "Blue Jays", "Toronto"],
"rageStats": {
"popupsShown": 42,
"popupsSurvived": 42,
"lastPopup": "2025-11-02T15:30:00.000Z"
},
"createdAt": "2025-11-02T00:00:00.000Z"
}The app uses a modern meme/troll aesthetic:
- Colors: Discord purple (#5865F2), hot pink (#EB459E), yellow (#FEE75C)
- Effects: Rainbow gradients, smooth animations, modern UI
- Font: System fonts (Segoe UI, San Francisco, etc.)
- Vibe: Trendy, savage, internet troll culture
- Make sure port 3000 is available
- Check that Node.js is installed:
node --version
- Ensure the backend is running (
http://localhost:3000) - Check the console for errors
- Try clicking "π§ͺ Test Popup Now"
- Verify your
OPENAI_API_KEYin.env - Check your OpenAI API quota/balance
- Fallback insults will be used if API fails
- Add image files to
/assets/memes/ - Supported formats:
.jpg,.jpeg,.png,.gif,.webp
npm run devnpm run backendnpm run electronThis project demonstrates:
- Electron IPC (inter-process communication)
- Express REST API design
- OpenAI API integration
- Event-driven architecture
- CSS animations and effects
This is a hackathon/parody project, but feel free to:
- Add more fallback insults
- Create meme templates
- Improve the UI
- Add sound effects
- Make it even more annoying
MIT License - Do whatever you want with this.
This is a parody project for entertainment purposes only.
- Don't use this to actually harass people
- Get consent before running on shared computers
- Not responsible for rage-induced damages
- Use at your own risk
Built with chaos in mind. Inspired by the internet's love for trolling.
Made with β€οΈ and π for hackathons
Having issues? Remember: that's kind of the point. π
But seriously, check the console logs or open an issue if something's broken.
Now go forth and rage! ππ₯