Introduction to the Course

Get an idea about what to expect from this course.

Web apps in Go

It’s impossible to not interact with web apps in today’s world. We have apps on our phones, and we use them on our laptops through a browser. They are used in all walks of life, from checking the time on waking up to keeping track of our health, ordering food and groceries, getting to the office, and finally coming home and enjoying our favorite shows on streaming platforms. This course will introduce us to how these apps are actually developed, how we are able to interact with them, and what it takes to keep them running. And we will do this in one of the most efficient languages out there: Go.

Press + to interact
The Go mascot
The Go mascot

Course overview

This course is a beginner’s guide to Go concepts that concern the backend development of an app. It is structured as follows.

At the start, we’ll look at the main concepts of HTTP and the basics of Go. We’ll also learn what makes Go such a popular choice for modern software.

Next, we’ll start building our app from scratch. This involves setting up the environment, structuring the app, and managing dependencies with Go modules. We'll briefly look at the many frameworks available in Go. Then, we'll pick Gin to write an HTTP server that is capable of handling requests efficiently and serving HTML.

No software should be released before it's thoroughly tested. So, we will discuss how we can write unit tests around functions, even ones that involve web server components, and make sure we release bug-free and resilient software. We will also cover table-driven tests, which are a more structured way of writing unit tests.

Since easy, stress-free deployment is the key to maintaining and improving an app, we’ll learn about containers and how they make managing apps super easy. This will include building an image for our Go app, running it, and managing the app's configuration. We will also see how we can leverage Docker Compose for local development. After that, we will build Docker images for our app. Docker images are small in size and quick to build.

And finally, we'll conclude the course by discussing the good practices that make an app easy to debug, analyze, and understand. Business logic alone is not enough to write a good piece of software. It should be easily debuggable. Keeping that in mind, we will see how we can add useful logs to the app to make a note of critical functionalities and errors. We will see how log levels and structured logging make sifting easier.

Target audience

If you’re a developer who’s keen on learning how to create backends for web apps, or if you’re a college student graduating and looking for a modern language to work with, this course is for you. If you’ve found it difficult to code a production-level app in Go that interacts with the UI and integrates well with a CI/CD system, this course will give you the knowledge that you need to become a future expert.

Press + to interact

If you’re already a Go developer, you’ll find some valuable tips and best practices here. In other words, this course is designed to explain in detail web development with Go, regardless of your current level of experience with it.


This course is for beginner-level web developers in Go. To get the most out of this course, you should have some basic knowledge of Go and what web apps are. In addition, you should have an entry-level understanding of software development. Any experience in other languages will also help you out. You don’t need to be an expert in any of the topics listed above because we’ll start from scratch.