v0.1.2 — Now on PyPI

Drop in.
Scale up.

A Discord framework that upgrades your bot without rewriting it. Change one line, get production-ready features instantly.

before — discord.py
import discord

bot = discord.Client(
    intents=discord.Intents.default()
)

@bot.command()
async def ping(ctx):
    await ctx.send("Pong!")

bot.run("TOKEN")
after — SoSad
import sosad.compat as discord

bot = discord.Bot(
    intents=discord.Intents.default()
)

@bot.command(name="ping")
async def ping(ctx):
    await ctx.send("Pong!")

bot.run("TOKEN")

What you get for free

Just change the import. Everything else is automatic.

Auto Rate Limiting

Per-route bucket tracking. Never see HTTP 429 again.

🛡️

Error Pipeline

Typed exceptions, catch handlers, graceful recovery.

🔧

FastAPI-style DI

Auto-resolve from type annotations. No inject() needed.

🔗

ASGI Middleware

Pipeline middleware, not before/after events.

🧩

Auto Plugin Discovery

Drop files in plugins/. Done.

📊

Structured Logging

Every request logged with timing and context.

🎨

View/Modal Builders

Build components dynamically, not with decorators.

⚙️

Settings

class Config(sosad.Settings) + auto .env loading.

discord.py vs SoSad

Same code. Better backend.

Feature discord.py SoSad
Rate Limiting Manual ✓ Auto
Error Handling try/except ✓ Pipeline
Dependency Injection None ✓ FastAPI-style
Middleware Before/After ✓ ASGI Pipeline
Plugins Manual load ✓ Auto-discover
Type Safety Partial ✓ Full strict
Config Manual .env ✓ Settings class
Components Class Views ✓ Builders

Get started in 30 seconds

$ pip install sosad

Read the Quick Start →