---
description: DiscordKit might seem like black magic, but we're here to demystify that!
---

# What's in the box?

The pages in this category will (attempt to) break down some of the code powering DiscordKit, as well as take a brief look at its general architectural.

Those pages are written with a more experienced developer in mind, and might not be as beginner-friendly as the other pages in this guide. Hence, if you're just looking to build your own Discord bot and don't really care about what's going on in the box, these pages might not be for you.

If you prefer to explore the code on your own, feel free to check out the `bot-support` branch in DiscordKit's GitHub repository below:

{% embed url="https://github.com/SwiftcordApp/DiscordKit/tree/bot-support" %}

### A Note on DiscordKit's Bot Support

As you may be able to tell from the fact that all the bot support code lives in its own branch, DiscordKit's bot support is still in its very early stages. It was originally created to serve as a bot library for Swiftcord, a native Discord client for macOS built in SwiftUI. As the project progressed, it became clear that the code for supporting Discord's API (which was all built from scratch due to the lack of maintained Discord libraries for Swift) was becoming a project on its own. The code was moved to its own package and given a name, thus DiscordKit was born!

Since DiscordKit was (and still is as of writing) the only maintained Swift library for interacting with the REST and Gateway APIs, there was demand for bot support in DiscordKit. Eventually, I bit the bullet and decided to embark on the mission to refactor and add bot support to DiscordKit. That leads us to where we are today, with a minimal Swift API you can actually build a Discord bot with!

Linux support, which might be even tougher than bot support, is also coming Soon™!
