Crowdis facilitates an bridge between Crowdin webhooks and Discord channels.
strings.json
file as it's made with the default structure in mind! (see #1)
I have an worker at https://crowdis.amarox.workers.dev/
in your Webhook Details menu you can use for testing Crowdis. Be aware this worker has an limit of 100.000 daily requests.
You can deploy your own Cloudflare Worker by clicking the button below.
You can start using Crowdis by replacing https://discord.com/api/webhooks/
with your worker's URL (or the hosted worker's URL: https://crowdis.amarox.workers.dev/
) in your Webhook Details menu.
Crowdis is an complete rewrite of c2d, which is an fork of crowdin-discord-webhooks by the Switchblade team. The goal of c2d was to fix the countless issues with crowdin-discord-webhooks, like:
- ⌨️ Hard to deploy to CF Workers: Crowdis allows quick self deployment with its deploy button, with one click you can have your own instance running in Cloudflare Workers.
- 🤨 Missing event types: Crowdis added the missing event types, reported in SwitchbladeBot/crowdin-discord-webhooks#1.
- 📷 Missing profile picture: Crowdis now uses Crowdin own brand assets instead of an Twitter image as seen here.
- 🗂️ Didn't support bundled events: Crowdis is made from the ground up to support and operate with bundled events.
While it solved these issues, it had issues of its own:
- 🍜 Spaghetti code: It was pretty hard to understand c2d's code, which made bug fixing
hardimpossible. - 🗄️ Hard to keep updated: New event types had to be hard-coded in, and there was no consistency for event handling.
- 🔨 Hard-coded values: Because I didn't know the patterns in the Crowdin webhook payloads, it had a lot of redundant and unnecessary variables, like project URLs, language names and more, this was fixed by using the payload over hard-coded values!
- 🩹 A mess overall: I abandoned the project and left it to its own luck for quite a long time, sorry! Crowdis is made to be as robust as possible, adjusting to Crowdin updates should be as easy as changing
strings.json