{
  "schemaVersion": 1,
  "updated": "2026-10-21",
  "presets": [
    {
      "id": "gmail",
      "name": "Gmail",
      "category": "email",
      "limitMB": 25,
      "encoding": "base64",
      "note": "Gmail's 25 MB limit counts the attachment after email (Base64) encoding, so the real file must be about 18 MB.",
      "source": "https://support.google.com/mail/answer/6584",
      "checked": "2026-10-20"
    },
    {
      "id": "outlook",
      "name": "Outlook",
      "category": "email",
      "limitMB": 20,
      "encoding": "base64",
      "note": "Outlook.com and Microsoft 365 default to 20 MB per message including encoding overhead.",
      "source": "https://support.microsoft.com/en-us/office/file-size-limits-for-attachments-in-outlook-com-f1ddf61b-3e4a-4cf9-8a3b-63a6ee1d8f37",
      "checked": "2026-10-20"
    },
    {
      "id": "yahoo",
      "name": "Yahoo Mail",
      "category": "email",
      "limitMB": 25,
      "encoding": "base64",
      "note": "25 MB per message including encoding overhead.",
      "source": "https://help.yahoo.com/kb/SLN5673.html",
      "checked": null
    },
    {
      "id": "icloud",
      "name": "iCloud Mail",
      "category": "email",
      "limitMB": 20,
      "encoding": "base64",
      "note": "Messages up to 20 MB; larger attachments switch to Mail Drop links.",
      "source": "https://support.apple.com/en-us/102198",
      "checked": null
    },
    {
      "id": "discord",
      "name": "Discord",
      "category": "chat",
      "limitMB": 20,
      "encoding": "none",
      "note": "Free accounts: 20 MB per file since August 2026 (was 10 MB from 2024).",
      "source": "https://support.discord.com/hc/en-us/articles/25444343291031-File-Attachments-FAQ",
      "checked": "2026-10-21"
    },
    {
      "id": "discord-nitro-basic",
      "name": "Discord Nitro Basic",
      "category": "chat",
      "limitMB": 50,
      "encoding": "none",
      "note": "Nitro Basic and Level 2 boosted servers: 50 MB per file.",
      "source": "https://support.discord.com/hc/en-us/articles/25444343291031-File-Attachments-FAQ",
      "checked": "2026-10-21"
    },
    {
      "id": "discord-nitro",
      "name": "Discord Nitro",
      "category": "chat",
      "limitMB": 500,
      "encoding": "none",
      "note": "Full Nitro: 500 MB per file.",
      "source": "https://support.discord.com/hc/en-us/articles/25444343291031-File-Attachments-FAQ",
      "checked": "2026-10-21"
    },
    {
      "id": "whatsapp",
      "name": "WhatsApp (inline video)",
      "category": "chat",
      "limitMB": 16,
      "encoding": "none",
      "note": "16 MB plays inline everywhere, including older apps and the Business API. Newer apps may allow 64–100 MB depending on connection.",
      "source": "https://faq.whatsapp.com/",
      "checked": null
    },
    {
      "id": "messenger",
      "name": "Facebook Messenger",
      "category": "chat",
      "limitMB": 25,
      "encoding": "none",
      "note": "25 MB per attachment.",
      "source": "https://www.facebook.com/help/messenger-app",
      "checked": null
    },
    {
      "id": "signal",
      "name": "Signal",
      "category": "chat",
      "limitMB": 100,
      "encoding": "none",
      "note": "100 MB per attachment.",
      "source": "https://support.signal.org/",
      "checked": null
    },
    {
      "id": "upload-10",
      "name": "Upload form · 10 MB",
      "category": "upload",
      "limitMB": 10,
      "encoding": "none",
      "note": "Common limit for job applications, school portals and support forms.",
      "source": null,
      "checked": null
    },
    {
      "id": "upload-50",
      "name": "Upload form · 50 MB",
      "category": "upload",
      "limitMB": 50,
      "encoding": "none",
      "note": "Common limit for assignment and submission portals.",
      "source": null,
      "checked": null
    },
    {
      "id": "upload-100",
      "name": "Upload form · 100 MB",
      "category": "upload",
      "limitMB": 100,
      "encoding": "none",
      "note": "Common limit for LMS and cloud forms.",
      "source": null,
      "checked": null
    }
  ]
}
