labs@atheron:~/work/community-bots$ cat community-bots.md
Community bots
One service, three jobs.
Moderation, verification, roles, cases and appeals for a Discord server and a Telegram group, from one set of rules. The same service is being wired to post our announcements and take in support requests, because Discord lets only one process hold a bot connection and Telegram allows only one webhook.
// what it does
- Manages servers and groups: automatic moderation, verification, roles, cases and appeals.
- Spots scams, impersonation and lookalike names, and puts a captcha at the door.
- Treats a raid as an event: moderators are told, every arrival meets a captcha, and it ends by itself.
- Keeps standing, points and a rewards catalogue, worded the same in both rooms.
- Is being wired to post our announcements to both rooms, each one approved by a person in the team portal first.
- Is being wired to take in support requests: a post in the support channel will open a thread, and a slash command a private one.
- Is run from the team portal, so a moderator can do everything the bots can.
// how we built it
- No bot framework: the Discord gateway client and the Telegram API calls are our own, so a platform change is ours to fix.
- One shared core holds the rules, so the two platforms never disagree about what is allowed.
- One front door, because the platforms allow only one: moderation, posting and support intake all belong in this one service, and support requests go on to our live chat product over an internal call.
- The permissions are granted channel by channel rather than across the server, and each job uses its own derived secret for that internal call.
- Property-based tests on the moderation rules, so an input nobody thought of is still tried.
- The bots sign in to the database as their own login and cannot reach pay or applicants.
- A member's standing is asked of the portal, so there is one definition of the score.
// the size of it
- jobs
- Three in one service: moderation, running today; our announcements and support intake, being wired in
- platforms
- Discord and Telegram, from one core
- test files
- More than 60, with property-based tests on the rules
- frameworks
- None: the gateway client and the API calls are ours
- run from
- The team portal, with the same actions as the bots
// stack
- TypeScript
- Node.js
- Discord gateway
- Telegram Bot API
- PostgreSQL
- fast-check
// where it stands
Running in our own server and group, with moderation actions written to a log the community can read, and our announcements posted through them. Taking in support requests is being wired into it now.
// a comparable build
- Build
- ≈ US$30,300 to US$46,400, within 10 weeksCAD 43,200 to 66,100
- Hosting
- ≈ US$176 a monthCAD 250 a month
- Support
- ≈ US$2,500 a monthCAD 3,565 a month
Prices in your currency are estimates from today's Bank of Canada rate. All invoicing is in CAD or USD.
the effort in it
- Development
- 251 to 384 h
- Senior backend developer
- 26 to 40 h
- Senior engineer
- 24 to 37 h
- Backend developer
- 22 to 34 h
- Frontend developer
- 20 to 30 h
- In all
- 457 to 698 h
what this price covers
One service as one build: the shared moderation core, the two platform clients, the posting queue, the support intake, the verification and appeals paths, and the portal screens it is run from.
An estimate for a build like this one, worked out from our rate card as you read it. It is not a quote. Yours changes with your scope, and we write a real one after a call.
Open this in the estimator →// the rest
The other projects.
// start
Want one built like this?
The same team, the same tests, the same care. Tell us what you need, or price it yourself first.