SnapPDF + Discord
Bot that compresses any PDF uploaded to a channel above 10MB.
The SnapPDF Discord bot is currently in private preview (shipping Q3 2026). Install it to a server, give it read permissions on the channels where PDFs are shared, and it auto-compresses any PDF above a configurable threshold (default 10MB). Also exposes slash commands for ad-hoc ops. Biggest use case: education Discords where students share massive scanned textbooks.
What you can build
- Auto-compress PDFs above threshold.
- Slash commands: /snappdf compress|merge|ocr.
- Per-channel config — different thresholds per channel.
- Ephemeral responses (private to invoker) for sensitive ops.
- Rate-limited to Discord's 50 req/s per bot token.
Setup
- 01Request preview accessEmail preview@snappdf.dev with your Discord server ID and intended use.
- 02Install the botPreview invite link is sent individually; public invite TBD at launch.
- 03Configure threshold/snappdf config threshold 10MB — per-channel or per-server.
- 04Test with a large uploadUpload a 20MB PDF. Bot reacts, compresses, replies with compressed version.
Code example
Illustrative bot handler (the actual bot is more involved).
client.on('messageCreate', async msg => {
for (const att of msg.attachments.values()) {
if (!att.name?.endsWith('.pdf')) continue;
if (att.size < THRESHOLD) continue;
await msg.react('⏳');
const { pdf } = await snap.pdf.compress({
fileUrl: att.url,
level: 'high',
stripMetadata: true,
});
await msg.reply({
content: `Compressed ${att.name} (${fmt(att.size)} → ${fmt(pdf.byteLength)})`,
files: [{ attachment: pdf, name: att.name.replace('.pdf', '-compressed.pdf') }],
});
await msg.reactions.removeAll();
}
});Known limits
- · Preview-only access until Q3 2026.
- · Discord CDN URLs expire after 24h; process quickly.
Pricing notes
Preview is free. At GA, available on Starter+ for production use.
Available from the Starter plan.
FAQ
When will it launch publicly?
Q3 2026, targeting August.
Why preview-only?
Discord bot verification takes 6-8 weeks. We want 100 private servers running cleanly before applying for verified status.
Can I self-host the bot?
Not yet. The code will open-source at GA under MIT so you can fork.
Discord's own limits?
Discord caps bot uploads at 25MB (non-Nitro servers) and 500MB (Boost level 3). SnapPDF compress brings big files under these limits.
GDPR?
We process only files explicitly in channels the bot is invited to. No message content is stored.