LinguaDeep is a Discord bot that translates messages using your own DeepL API key (BYOK). It supports quick translations (to your preferred/client locale) and an interactive "choose language" flow, per-user encrypted key storage, and message caching for interactive UI.
How it works
BYOK model: users register their DeepL key via
/key set- keys are encrypted before being stored in the database and only used to call DeepL on the user's behalf.Per-user config: preferences (preferred language, chosen DeepL version Free/Pro) are stored in Cloudflare D1 (because it's so simple).
Translation client: uses the official
deepl-nodeclient; supports Free & Pro endpoints and fetches usage viagetUsage().Interactive UI: message-context translation uses ephemeral responses and Discord components (selects & buttons). Select menus are chunked to respect Discord's 25-choice limit (please kill me that was so annoying to do with discord-hono).
Caching: selected message text is cached in a Durable Object so interactive selection can happen without re-fetching the message content.
Safety & UX: responses are ephemeral by default; translation embeds include detected source language and billed character counts
Huge thanks to discord-hono - the framework made building interactions and components very easy once I got the hang of it, and the maintainer was extremely responsive and helpful when I reported issues.