The first bot hosting platform built specifically for Discord's serverless architecture. Deploy slash command bots to Cloudflare's edge network — free forever.
Features • Why Discord? • Getting Started • Pricing • Contributing
BotFortress makes Discord bot hosting actually free by leveraging the serverless nature of Discord's slash commands. Built on Cloudflare's edge network, we offer:
- ✅ Free tier: 3 Discord bots, 100k requests/day per bot (really free, forever)
- ✅ Open source: Full transparency, community-driven development
- ✅ Serverless-first: Zero cold starts, <10ms response times, 300+ global locations
- ✅ Security-focused: JWT auth, GDPR/CCPA compliant, automated cleanup
- ✅ Sustainable: Freemium model with optional ads for free users, one-time $29 Pro upgrade
Here's the economics: Discord bots using slash commands don't need to run 24/7. When someone types /hello, Discord sends a webhook to your bot, it responds in milliseconds, done. No persistent connection. No idle servers burning money.
Cloudflare Workers are perfect for this:
- 🌍 300+ global edge locations — your bot feels instant worldwide
- ⚡ <10ms response times — faster than any traditional server
- 💰 100k requests/day free — most Discord bots use <1,000/day
- 📈 Instant scaling — 1 user or 1 million, same performance
- 🔒 Zero cold starts — always ready, unlike AWS Lambda
The result: Your Discord bot costs us $0.0000 to run. So we give you 3 bots free. Forever. No catch.
- 🛡️ User accounts with JWT authentication & bcrypt password hashing
- 🤖 Multi-bot support (3 free, 99 with Pro)
- 📊 Bandwidth tracking with configurable caps
- ✍️ In-browser code editor with syntax highlighting
- 💻 Live deployment to Cloudflare Workers
- 🎴 Modern dashboard with deck-style cards
- 🔄 Version control via draft/deploy workflow
| Type | Setup | Monthly |
|---|---|---|
| First bot | $49 (90 days included) | $19/mo |
| Additional bots | $9.80 (80% off) | $3.80/mo |
| Grace period | — | 50% off renewal in first 30 days |
Bandwidth: 10GB/month included per bot. Set daily caps to prevent runaway usage.
# 1. Copy env file
cp .env.example .env
# 2. Run with direct port access
docker compose -f docker-compose.dev.yml up --build# 1. Configure environment
cp .env.example .env
# Edit .env:
# DOMAIN=yourdomain.com
# JWT_SECRET=$(openssl rand -hex 32)
# 2. Run (Caddy auto-provisions HTTPS)
docker compose up -d --build- Site: https://yourdomain.com
- Sign up at
/signup(free, no card) - Create bot → pick name + runtime
- Write code in browser editor
- Save Draft → stored in DB
- Deploy → writes to workspace
- Start/Stop + monitor bandwidth
cd apps/api
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8000cd apps/web
npm install
NEXT_PUBLIC_API_BASE=http://localhost:8000 npm run dev- ✅ JWT authentication on all protected endpoints
- ✅ User ownership checks (can only see/edit your own bots)
- ✅ Path traversal protection on file operations
- ✅ Bandwidth caps prevent runaway costs
- ✅ HTTPS via Caddy (automatic Let's Encrypt)
⚠️ Add rate limiting for high-traffic deployments
apps/
web/ → Next.js 15 (landing + dashboard)
api/ → FastAPI (auth, bots, files, billing)
agent/ → Background daemon (container execution, v1)
infra/
caddy/ → Reverse proxy + HTTPS
| Endpoint | Method | Description |
|---|---|---|
/auth/register |
POST | Create account |
/auth/login |
POST | Get JWT token |
/auth/me |
GET | Current user |
/bots |
GET/POST | List/create bots |
/bots/{id} |
GET/PATCH/DELETE | Bot CRUD |
/bots/{id}/start |
POST | Start bot |
/bots/{id}/stop |
POST | Stop bot |
/bots/{id}/draft |
GET/POST | Draft code |
/bots/{id}/deploy |
POST | Deploy to workspace |
/bots/{id}/logs |
GET | Bot output |
- Stripe checkout integration
- GitHub App for repo provisioning
- Agent: run Docker containers per bot
- Agent: capture stdout/stderr to logs
- Agent: track bandwidth via container stats
- WebSocket for live terminal streaming
Design intent: minimal, straight-to-the-point, profitable from day one.