/ METADATA
name:Astro
release date:4/11/2020
links:
/ DESCRIPTION

Astro has been my first project, and unexpectedly also really successful.

Currently used by ~10k users per day, this has been the project that thanks to its challenges teached me most of what I know about programming.

It's a simple Discord bot that adds to your server temporary voice channels, which was a popular feature in TeakSpeak that Discord didn't copy for some reason.

The current tech stack is composed of 4 microservices, all written in Kotlin, running on my kubernetes cluster:

  • the main bot application, uses JDA to interact with Discord and serves a small SpringBoot API to allow communication with the other services
  • the SpringBoot API which serves all the data needed by the frontend dashboard
  • a small app which is deployed as a daily job
  • another bot application, that helps me manage the Support Server of Astro

I have implemented CI/CD so that everytime I commit some code I get all the microservice images built and a simple button to deploy them to the cluster.

The cluster is managed using Terraform thanks to the amazing terraform-hcloud-kube-hetzner project.
I then have an IaC setup that installs ArgoCD, and sets up everything via that.

Then there is the frontend dashboard, with which users can manage the settings of the bot for their server.
That is built in Nuxt and I'm really proud of the UX/UI that I came up with (took inspiration from the atlas bot).

You can find the source code of the backend, frontend and IaC on GitHub.

For a fully story of the project instead check the related article below!