Khai NguyenSoftware engineer, web and mobile. This is just the start of my journey.

Projects / 2 of 9

Bluetick

Personal project· December 2022 - 2025

Discord Bots Manager (Website)

Discord Bot Admin Dashboard with various features

Discord Bot and Bot Admin Manager - Web Application

TL;DR

This is a personal project aiming to ease Discord server owners and admins in server managing tasks with entertainment-related features.

Techs:

My Work

  • Developed a functional and responsive website for Discord Bot management, actively used by 20 servers with over 10,000 members in total.
  • Ensured bot scalability and uptime through deployment on AWS EC2 with Docker containers.
  • Optimized MySQL database structures and caching, reducing cloud database costs by 80% by self-hosting MySQL within an EC2 instance.

What I Learned

  • Reduced users’ tokens usage by caching non-personal (Discord guild, channel, emoji, etc.) data to optimize performance.
  • Introduced cache to both frontend and backend to increase performance by reducing unnecessary database requests.
  • Built and deployed Node.js applications using Docker containers, ensuring portability and scalability.
  • Handled OAuth authentication flows and securely managing user tokens.
  • Deployed and configured web applications, APIs, and services on AWS EC2 instances and Vercel.
  • Configured Cross-Origin Resource Sharing (CORS) to enable secure cross-domain communication for APIs.
  • Managed DNS settings and domain and subdomain configurations for hosting web applications and services.
  • Ensured high availability and uptime for web applications and services through scalable deployment strategies.
  • Collaborated with server owners and understanding user requirements for the Discord Bot itself and the management platform.

About Bluetick

How it all started

Bluetick originated from my desire to create a Discord bot for my server, where my friends and I could enjoy entertainment and engage in casual conversations. Inspired by bots managing gaming servers, I started with a simple Python bot using the nextcord library.

As the bot grew with new features based on feedback from my group of active users, I transitioned to the more actively maintained DiscordJS library to keep up with the Discord API updates. However, JavaScript’s unpredictable errors proved challenging, leading me to migrate to TypeScript, a decision I’ve never regretted.

Why we need a website/platform

With the bot’s expanding feature set, managing everything through Discord commands became increasingly complex. Drawing inspiration from well-established bots like Dyno, which had a dedicated website for comprehensive control, I recognized the need for a dedicated web application to streamline bot management across multiple servers.

The development process

Bluetick evolved into a full-fledged web application built with modern technologies like Next.js, NextAuth, tailwindcss, shadcn/ui, and TypeScript for the frontend, complemented by NestJS, TypeScript, and Rust for the backend.

The development journey involved iterative phases, including initially using React and Material-UI for the frontend, before migrating to Next.js with tailwindcss and shadcn/ui for more customizable UI components. The bot’s features grew based on current user requests and popular features from other bots that I wanted to develop myself.

The name

Why Bluetick? Bluetick’s name is a combination of my Discord username, blue and its core feature: creating tickets within Discord servers. These tickets are dedicated channels or threads tailored to serve various purposes based on each server’s unique needs, such as customer support, user support for gaming servers, or application processes for joining gaming groups, all with just a click of a button.

The product

Bluetick now provides Discord server owners and admins with a user-friendly platform to manage their servers and enjoy a range of entertainment-related features, combining a robust Discord bot with a feature-rich web application.

Demonstration

Older notes Earlier write-ups from this project's old channels

Project's Overview

Discord bot dashboard with many extensive features

This is a personal project aiming to ease Discord server owners and admins in server managing tasks with entertainment-related features.

What I Did

  • Developed responsive website for Discord bot management, actively used by 6 servers with over 2,000 members each, incorporating user feedback through Agile-like approach.

  • Ensured scalability and high uptime by deploying on AWS EC2 with Docker containers, optimizing MySQL database structures and caching mechanisms.

  • Reduced cloud database costs by 80% by self-hosting MySQL server within an EC2 instance, enabling efficient resource utilization.

  • Configured secure cross-domain communication, managed DNS settings and configurations for 4 subdomains hosting 4 microservices powering the project.

  • Implemented caching strategies for non-personal Discord data, optimizing performance and reducing excessive token usage.

Hosting with AWS

Use NGINX for hosting

Read the full guide: using nginx

Hosting with AWS

nginx with Docker

Read the full guide: nginx with docker

Project's Overview

What I've Learned

Things I've learned throughout the project development process

Frontend

  • Developed a functional and responsive website: Leveraging technologies like Next.js, NextAuth, tailwindcss, shadcn/ui, and TypeScript.

  • Introduced cache to increase performance: Reduced unnecessary database requests by caching data in the frontend.

  • Cross-Origin Resource Sharing (CORS) configuration: Enabled secure cross-domain communication for APIs.

Backend

  • Optimized MySQL database structures and caching: Reduced cloud database costs by 20% and improved backend performance.

  • Built and deployed applications using Docker containers: Focused on Node.js for backend development, enhancing portability and scalability.

  • Handled OAuth authentication flows and securely managed user tokens: Implemented secure user authentication and token management systems.

  • Configured backend services on AWS EC2 & VPC: Deployed and managed backend APIs and services on cloud platforms.

DevOps

  • Managed DNS settings and domain/subdomain configurations: Configured domains for hosting the web application and services.

  • Ensured high availability and uptime through scalable deployment strategies: Implemented strategies to maintain service reliability and scalability.

  • Collaborated with server owners: Understood user requirements to ensure the infrastructure met the needs of the Discord Bot and management platform.

  • Switched from using database services to self-hosting MySQL database on EC2: Reduced database storage costs by more than 80%

About the Project

About Bluetick

Some information about Bluetick

How it all started

Bluetick originated from my desire to create a Discord bot for my server, where my friends and I could enjoy entertainment and engage in casual conversations. Inspired by bots managing gaming servers, I started with a simple Python bot using the nextcord library. As the bot grew with new features based on feedback from my group of active users, I transitioned to the more actively maintained DiscordJS library to keep up with the Discord API updates. However, JavaScript's unpredictable errors proved challenging, leading me to migrate to TypeScript, a decision I've never regretted.

Why we need a website/platform

With the bot's expanding feature set, managing everything through Discord commands became increasingly complex. Drawing inspiration from well-established bots like Dyno, which had a dedicated website for comprehensive control, I recognized the need for a dedicated web application to streamline bot management across multiple servers.

The development process

Bluetick evolved into a full-fledged web application built with modern technologies like Next.js, NextAuth, tailwindcss, shadcn/ui, and TypeScript for the frontend, complemented by NestJS, TypeScript, and Rust for the backend.

The development journey involved iterative phases, including initially using React and Material-UI for the frontend, before migrating to Next.js with tailwindcss and shadcn/ui for more customizable UI components. The bot's features grew based on current user requests and popular features from other bots that I wanted to develop myself.

Current product

Bluetick now provides Discord server owners and admins with a user-friendly platform to manage their servers and enjoy a range of entertainment-related features, combining a robust Discord bot with a feature-rich web application.

Open original