Discord Analytics
Introduction
Aussi étonnant que cela puisse paraître, lorsque que j’ai lancé avec , presque aucun service ne proposait des statistiques pour les bots Discord, alors que cela est très répandu pour les serveurs.
Nous avons donc décidé de lancer Discord Analytics : un service de statistiques destiné à fournir tout un tas de données utiles sur les bots Discord pour permettre à leurs développeurs de les rendre meilleurs.
Discord Analytics propose différents types des statistiques sur les interactions, les serveurs, les utilisateurs, les langues et même les votes !
La stack
Depuis le lancement du projet, nous avons pu expérimenter différentes stack, pour finir par trouver celle que nous avons aujourd’hui.
Dans un premier temps, nous avons utilisé pour le back (nous l'avons gardé pendant environ 1 an) avec une base de données et / pour le front.
Au moment où j'écris cet article (août 2024), Discord Analytics utilise pour le back, et Vue.js, et pour le front.
Rust nous permet d’avoir une API rapide et qui consomme très peu de performances (40 Mo de RAM et moins de 1 % de 2 vCPU). Néanmoins, cela n’est pas sans concessions, car nous avons rencontré plusieurs problèmes avec :
- Tout d’abord, Rust met énormément de temps à build, ce qui nous fait perdre beaucoup de temps lorsque nous développions,
- Notre API une fois build dans son image docker pèse 3 Go (contre 1 Go avant),
- Le build de l' était tellement gourmand en ressources qu’on a été obligés de l’externaliser sur ,
- Et enfin, si vous n’avez pas une bonne gestion des erreurs, Rust fera tout simplement planter toute votre machine.
Viennent ensuite les choix côté front :
- Vue était un choix déjà fait, car c’est le framework que nous maitrisons le mieux.
- J’avais eu l’occasion d’essayer Tailwind sur un autre projet, et ayant trouvé que les classes me venaient naturellement (sans avoir à consulter la documentation) et me faisais économiser beaucoup de lignes de CSS, j’ai donc décidé de l’utiliser aussi sur Discord Analytics.
- Et enfin sur cette version, nous ne pouvions pas faire sans un UI Kit au vu de nos compétences déplorables en design (voir évolutions ci-dessous), nous avons choisi un port de shadcn/ui vers Vue qui proposait les graphiques (ils n’étaient pas disponibles sur la version React à l’époque).
Évolution des interfaces
En exclusivité, vous allez pouvoir découvrir l’évolution des interfaces de certaines pages de Discord Analytics ainsi que les premières ébauches de ce à quoi ressemblait Discord Analytics avant sa sortie (heureusement qu’on ne les a pas gardées 😥).
Ébauches
Mot de fin
Vous avez aimé ce projet ? Je vous invite à venir le découvrir dès maintenant car vous n'en avez vu qu'une petite partie !