Photo by Alexander Shatov on Unsplash

During the pandemic, Discord has increased its user base dramatically. While many servers go with a general-purpose bot, writing your own can be the real changing point for your servers.

Discord bots are very handy tools, making a user’s life on Discord much easier and more enjoyable. While there are many great bots like YAG, MEE6, etc around, writing your own from scratch has many benefits. So let’s explore how to create a Discord bot in JavaScript.


We will create a simple Discord bot that allows you to enter messages into a logbook, which can be read by other users.

Apple has finally accepted the proposal for the async paradigm in Swift. While it is currently only in the development trunk of the language, it will soon be available in the final release. Let’s have a look at what we can expect.

Sidenote: This article is mainly for showcasing async code in Swift. In order to use async programming now, you have to download the beta toolchain and make XCode use that version, instead of the official one. I do not cover setup in this article as the language feature will soon be released in the official branch.

The old way: Closures

Before async code existed in Swift, we could easily end up with a closure hell, looking like this:

Maintaining software quality is not an easy task. As Software gets more complex and requirements on the quality increase, keeping code quality up high has never been as important. And yet, fulfilling these needs is easy if done right.

The Tools

Jest is one of the most used JavaScript test-frameworks and is developed by Facebook, making it a reliable choice for any project. It features an easy-to-follow convention, making tests self-explanatory to read and write. Additionally, it can output code coverage in several formats, making it the ideal choice for all test-related tasks your software needs.

CodeClimate is a cloud service used…

In the last couple of years, several new patterns emerged, all praising to make a developer’s life as easy as never before. By separating certain parts of the codebase, each of these patterns tries to make code more readable, easier to test, and eventually more maintainable.

Handling unmaintainable code. Credits: Giphy(

This tutorial assumes a basic understanding of RxSwift, RxCocoa, Databindings, and how to use Cocoapods. Thus I won’t go into detail regarding these topics. Prior knowledge about other MVI* patterns does help but is not required.

MVI(Model-View-Intent) isn’t an entirely new pattern. Instead, it is built upon existing principles…

Marcel Kulina

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store