Technologies

This document provides an overview of the technologies and libraries used in our service.


Frontend Technologies

Bot Studio uses SSR (Server Side Rendering) method which allows for faster initial loading and better SEO optimization. The frontend of our website is built using the following technologies:

JavaScript Libraries

  • Bootstrap: Bootstrap is a popular CSS framework used for creating responsive and mobile-first websites. It provides a wide range of pre-built components and utilities to make designing easier.
  • jQuery: jQuery is a JavaScript library that simplifies HTML document traversal, event handling, animation, and Ajax interactions for rapid web development.
  • Vue.js: Vue.js is a progressive JavaScript framework used for building user interfaces. It allows developers to create dynamic and reactive components with ease.
  • Chart.js: Chart.js is a JavaScript library used for creating interactive and customizable charts on web pages. It supports various chart types such as bar, line, pie, and more.
  • ScrollReveal: ScrollReveal is a JavaScript library used for animating elements as they enter the viewport. It adds a smooth and modern touch to website designs.
  • SweetAlert 2: SweetAlert 2 is a JavaScript library used for creating beautiful and customizable alert messages. It provides a more user-friendly alternative to the default browser alerts.
  • QRious: QRious is a JavaScript library used for generating QR codes on web pages. It supports various customization options and can be easily integrated into any website.
  • Pace.js: Pace.js is a JavaScript library used for adding loading progress bars to web pages. It automatically detects and displays the progress of page loads, making for a smoother user experience.
  • Intro.js: Intro.js is a JavaScript library used for creating step-by-step introductions or tutorials on web pages. It provides an easy way to guide users through new features or processes.
  • Highlight.js: Highlight.js is a JavaScript library used for syntax highlighting on web pages. It supports a wide range of programming languages and can be easily integrated into any website.
  • Datatables: Datatables is a JavaScript library used for creating interactive and customizable data tables on web pages. It supports various features such as sorting, searching, and pagination.
  • D3.js: D3.js is a JavaScript library used for creating dynamic and interactive data visualizations on web pages. It supports various types of charts and graphs, making it a popular choice for data-driven websites.
  • Ace Editor: Ace Editor is a JavaScript library used for creating code editors on web pages. It supports syntax highlighting, auto-completion, and other features commonly found in code editors.
  • Rete.js: Rete.js is a JavaScript library used for creating visual programming interfaces on web pages. It allows users to create and connect nodes to build complex logic and workflows.

CSS Libraries

  • Animate: Animate is a CSS library used for adding animations to web pages. It provides a simple and lightweight way to add visual effects without the need for complex JavaScript code.
  • Bootstrap: Bootstrap is a popular CSS framework used for creating responsive and mobile-friendly websites. It includes a wide range of pre-designed components and styles, making it easy to create professional-looking websites.
  • Font Awesome: Font Awesome is a CSS library used for adding icons to web pages. It offers a large collection of customizable icons that can be easily integrated into any website.

Backend Technologies

Programming Languages

  • JavaScript: JavaScript is a popular programming language used for creating dynamic and interactive web pages. It is the primary language used for client-side scripting, but it can also be used on the server-side with Node.js.
  • TypeScript: TypeScript is a superset of JavaScript that adds static typing and other features to the language. It is often used in larger projects to help catch errors and improve code organization.
  • Shell: Shell is a command-line language used for automating tasks and managing operating systems. It is often used in server-side scripting to automate tasks such as database backups or file management.
  • Python: Python is a versatile programming language used for web development, data analysis, and many other applications. It is known for its simple syntax and large standard library.
  • Markdown: Markdown is a lightweight markup language used for creating formatted text documents. It is often used in documentation and README files.
  • YAML: YAML is a human-readable data serialization language often used for configuration files and in applications that require structured data.
  • JSON: JSON (JavaScript Object Notation) is a lightweight data interchange format commonly used for web APIs and configuration files.
  • TOML: TOML (Tom’s Obvious, Minimal Language) is a minimal configuration file format that aims to be easy to read and write.
  • Go: Go is the programming language used to develop Bot Studio. It is fast, efficient, and has a large community for support.

Libraries and Frameworks

  • Node.js: Node.js is a popular JavaScript runtime environment that allows developers to run JavaScript code on the server-side.
  • Express: Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications.
  • chalk: chalk is a library for styling command-line output with colors and formatting. It is often used in Node.js projects to make console logs more visually appealing.
  • clone-deep: clone-deep is a library for creating deep copies of JavaScript objects and arrays. It is useful when working with complex data structures that need to be manipulated without affecting the original data.
  • compression: compression is a middleware for Node.js that compresses HTTP responses to improve performance and reduce bandwidth usage.
  • cookie-parser: cookie-parser is a middleware for Node.js that parses cookies from HTTP requests and makes them available in the request object.
  • dotenv: dotenv is a zero-dependency module that loads environment variables from a .env file into process.env. It is often used in development environments to keep sensitive information, such as API keys, out of version control.
  • cors: cors is a middleware for Node.js that enables cross-origin resource sharing. It allows servers to specify which origins are allowed to access their resources.
  • discord.js: discord.js is a powerful library for creating Discord bots and applications. It provides an easy-to-use interface for interacting with the Discord API.
  • express-rate-limit: express-rate-limit is a middleware for Node.js that limits the number of requests a client can make to an API within a specified time period. This helps prevent abuse and improves server performance.
  • express-useragent: express-useragent is a middleware for Node.js that parses user agent strings from HTTP requests and makes them available in the request object. This can be useful for determining what type of device or browser the client is using.
  • mailersend: mailersend is a Node.js library for sending transactional emails. It provides an easy-to-use interface for integrating email functionality into applications.
  • python-shell: python-shell is a Node.js library that allows for the execution of Python scripts from within a Node application. This can be useful for integrating machine learning or data analysis capabilities into an application.
  • telegraf: telegraf is a Node.js library for creating Telegram bots. It provides an easy-to-use interface for handling incoming messages, sending replies, and managing bot commands.
  • velocedb: Velocedb is a Node.js local JSON database created by Absyro to be used as the default database of Bot Studio.
  • whatsapp-web.js: whatsapp-web.js is a Node.js library for interacting with WhatsApp’s web interface. It allows for automation of sending and receiving messages, as well as other actions such as creating groups and managing contacts.
  • PM2: PM2 is a process manager for Node.js applications. It allows for easy deployment and management of multiple instances of an application, as well as monitoring and automatic restarts in case of crashes.
  • Nodemon: Nodemon is a utility that monitors changes in your Node.js application and automatically restarts the server when changes are detected. This makes development and testing much easier, as you don’t have to manually restart the server every time you make a change.
  • Build Manager: Build Manager is a tool created by Absyro to automate the process of building and deploying Bot Studio applications. It handles tasks such as minifying code and bundling dependencies.
  • Prettier: Prettier is a code formatting tool that helps maintain consistent and readable code. It can be integrated into various editors and IDEs, making it easy to format your code with just a few clicks.
  • xss: xss is a module used to filter input from users to prevent XSS attacks.
  • response-time: This module creates a middleware that records the response time for requests in HTTP servers.
  • @slack/web-api: The @slack/web-api package contains a simple, convenient, and configurable HTTP client for making requests to Slack’s Web API.
  • Playwright: Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API. Playwright is built to enable cross-browser web automation that is ever-green, capable, reliable and fast.

Other Tools

  • Hugo: Hugo is a static site generator used for creating the Bot Studio hub. It allows for easy organization and customization of content.
  • GitHub Pages: GitHub Pages is used to host the Bot Studio hub. It integrates seamlessly with Hugo and allows for easy updates and version control.
  • Git: Git is used for version control and collaboration on the Bot Studio codebase. It allows for easy tracking of changes and merging of code from multiple contributors.
  • VS Code: Visual Studio Code is the preferred code editor for Bot Studio development. It has a wide range of features and extensions that make coding easier and more efficient.
  • GitHub Handler: GitHub Handler uses GitHub’s official webhooks. Each time a modification is made to your GitHub repository, GitHub dispatches a webhook request to the server where the GitHub Handler operates. The GitHub Handler then processes the incoming webhook and carries out your specified commands to manage alterations and events within your GitHub repositories.
  • Google Fonts: Google Fonts provides a wide range of free and open-source fonts that can be easily integrated into web projects. Bot Studio uses Google Fonts to ensure consistent and visually appealing typography across all platforms.
  • Ubuntu: Ubuntu is the preferred operating system for Bot Studio development. It is a free and open-source Linux distribution that provides a stable and secure environment for coding.
  • Cloudflare: Cloudflare is a content delivery network and security service that Bot Studio uses to optimize website performance and protect against cyber attacks.
  • Canva: Canva is a graphic design platform that Bot Studio uses to create visually appealing and professional-looking graphics for social media, marketing materials, and more.
  • GitHub: GitHub is a code hosting platform that Bot Studio uses for version control and collaboration on projects. It also provides a platform for open-source contributions and community involvement.
  • Freepik: Freepik is a website that provides free and premium graphic resources for designers. Bot Studio uses Freepik to find high-quality images, icons, and illustrations for various projects.