User
- discord_id
- plan
- stripe_subscription_id
- grace_ends_at
- 1—n DiscordServer
- 1—n PlanHistory
One Discord bot, six plugins configured per server from a web dashboard.
A Discord server admin who wants a welcome message, reaction roles, tickets and invite tracking ends up stacking different bots, each with its own permissions, settings and reliability. The project started as a subscription bot marketplace; that model never worked end to end, and an audit found inconsistencies in the one-process-per-bot architecture.
Let admins run a full set of server tools without hosting or configuring a bot themselves.
A single platform bot, connected to every authorised server and driven from a Laravel dashboard. The bot receives Discord events and asks Laravel what to do; plugins are PHP classes that return a list of actions, which the bot carries out. All business logic stays in Laravel, tested in PHP, and the bot only executes.
Six plugins enabled server by server, a Free plan (three servers) or Pro plan (unlimited), monthly or yearly, live logs over Reverb and a searchable action history. Nearly 800 PHP tests run in CI, alongside Node tests run against the real discord.js library.
Founder & full-stack developer
Users
Application
External services
The user signs in with Discord, then authorises the bot on a server; their plan quota is checked before authorisation and on return.
They enable a plugin in the dashboard and set its options, validated against the plugin’s schema.
A Discord event — a member joining, a reaction, a command — reaches the bot worker.
The bot calls the Laravel API with its token; the relevant PHP plugin returns the list of actions to perform.
The executor carries out the actions with discord.js: send a message, add a role, open a ticket channel…
Each action’s result goes back to Laravel, which logs it and streams it live to the dashboard.
The main entities, their key fields and their relations.
Custom messages when members join and leave.
A role granted or removed depending on the reaction.
Categories, claiming and transcripts.
Who invited whom, suspicious invites flagged, top 10.
Written in a Discord modal.
Bulk message deletion.
ProblemThe code called v14 APIs on the installed v13, and every error was silently swallowed.
FixMigrated to v14, with Node tests run against the real discord.js in CI.
ProblemThe Free plan limit only existed in the UI.
FixServer-side check, before authorisation and on the OAuth return.
ProblemCarbon 3 returns a signed difference: a disconnected bot appeared to have been offline for a negative duration.
FixDifference computed the right way round, covered by a test.
ProblemA plugin could hold a PHP worker for up to five minutes.
FixDelayed sends handed to a queued job.
ProblemThe table pointed to a table dropped during the redesign.
FixForeign key fixed and new registration routes.
Taken from the project’s source code and Git history on 8 October 2026. No usage or revenue figures are published.
Available for PHP / Laravel / WordPress / Silverstripe missions in Belgium and remote EU.