User
- discord_id
- plan
- stripe_subscription_id
- grace_ends_at
- 1—n DiscordServer
- 1—n PlanHistory
Un bot Discord, six plugins configurés par serveur depuis un tableau de bord web.
Un administrateur de serveur Discord qui veut un message de bienvenue, des rôles par réaction, des tickets et un suivi des invitations empile des bots différents, chacun avec ses permissions, sa configuration et sa fiabilité. Le projet est né comme une place de marché de bots à l’abonnement ; ce modèle n’a jamais fonctionné de bout en bout et un audit a relevé des incohérences dans l’architecture à un processus par bot.
Offrir aux administrateurs une boîte à outils complète sans héberger ni configurer de bot eux-mêmes.
Un seul bot, la plateforme, connecté à tous les serveurs autorisés et piloté depuis un tableau de bord Laravel. Le bot reçoit les événements Discord et demande à Laravel quoi faire ; les plugins sont des classes PHP qui renvoient une liste d’actions, que le bot exécute. Toute la logique métier reste ainsi côté Laravel, testée en PHP, et le bot ne fait qu’exécuter.
Six plugins activables serveur par serveur, une offre Free (trois serveurs) ou Pro (illimitée) au mois ou à l’année, des journaux en temps réel via Reverb et une recherche dans l’historique des actions. Près de 800 tests PHP tournent en CI, avec des tests Node exécutés contre la vraie bibliothèque discord.js.
Fondateur et développeur full-stack
Utilisateurs
Application
Services externes
L’utilisateur se connecte avec Discord, puis autorise le bot sur un serveur ; le quota de son offre est vérifié avant l’autorisation et au retour.
Il active un plugin dans le tableau de bord et règle ses options, validées par le schéma du plugin.
Un événement Discord — arrivée d’un membre, réaction, commande — arrive dans le worker du bot.
Le bot appelle l’API Laravel avec son jeton ; le plugin PHP concerné renvoie la liste des actions à effectuer.
L’exécuteur réalise les actions avec discord.js : envoyer un message, ajouter un rôle, ouvrir un salon de ticket…
Le résultat de chaque action remonte à Laravel, qui le journalise et le diffuse en direct au tableau de bord.
Les entités principales, leurs champs clés et leurs relations.
Messages personnalisés à l’arrivée et au départ des membres.
Un rôle attribué ou retiré selon la réaction choisie.
Catégories, prise en charge et transcriptions.
Qui a invité qui, invitations douteuses repérées, top 10.
Rédigées dans une fenêtre modale Discord.
Suppression de messages par lot.
ProblèmeLe code appelait des API de la v14 sur la v13 installée, et chaque erreur était avalée sans bruit.
SolutionMigration vers la v14 et tests Node exécutés contre le vrai discord.js en CI.
ProblèmeLa limite de l’offre Free n’existait qu’à l’affichage.
SolutionContrôle côté serveur, avant l’autorisation et au retour d’OAuth.
ProblèmeCarbon 3 renvoie un écart signé : un bot déconnecté semblait l’être depuis une durée négative.
SolutionÉcart calculé dans le bon sens, couvert par un test.
ProblèmeUn plugin pouvait immobiliser un worker PHP jusqu’à cinq minutes.
SolutionEnvoi différé confié à un job en file.
ProblèmeLa table pointait vers une table supprimée lors de la refonte.
SolutionClé étrangère corrigée et nouvelles routes d’enregistrement.
Relevé dans le code source et l’historique Git du projet le 8 octobre 2026. Aucun chiffre d’usage ou de revenu n’est publié.
Disponible pour missions PHP / Laravel / WordPress / Silverstripe en Belgique et remote EU.