# Introduction


If you're reading this, you probably want to create Discord bots! Who doesn't agree these bots can do cool stuff, but hey - how exactly do we go about making these? It's simple, or maybe not! Depends on how you take it. Many people start programming with Discord bots - and me too, honestly. First off, if you already know a language which is not JavaScript/TypeScript, you should consider using the library for that language, yes for real. It would be easier for you to get started, else, this guide is absolutely for you!

Here's a list of libraries for Discord API (opens new window). If you couldn't find one for you, let's continue! JavaScript (or TypeScript) aren't hard to learn.

What exactly is Harmony? It's an easy to use, and advanced Discord API Library, for Deno. It's designed to be easy to use, as well as to offer everything an advanced developer may need. If you don't know about Deno (opens new window) yet, in a nutshell, it's a secure JavaScript/TypeScript runtime made in Rust. You can call it new, or better Node.

In this guide, you'll learn about various concepts, but here's an overview

  • How to get a bot up and running from scratch
  • How to keep your code organized
  • Learn about best practices
  • More advanced concepts
  • ... and much more.

# Before you begin...

It's possible that you want to get started with bot development, but don't know any programming language. However, we recommend you to learn basics else you'll be tackling with problems with are actually so small! It doesn't take much time, here are some good resources to get started with JavaScript...

However, it's worth considering that Harmony is made using TypeScript (opens new window), which is a subset of JavaScript, but strongly-typed, and we are also using TypeScript throughout the guide for code examples. It helps you write more concise, less error prone code, and also adds on some new features! At the end, it compiles (transpiles!) to normal JavaScript. We recommend using TypeScript for its great features and Deno's built-in TypeScript! Here are some resources,

If you have never used Deno (opens new window) before, you might want to consider reading Deno Manual (opens new window) and a gentle introduction to the runtime and it's features.