I've written and self-published two books on building web applications and APIs with Go. Both take a learn-by-doing approach and walk you through building a working application — which I think is a nice way to connect the theory to real-world functionality and code patterns.
Right now I'm also working on a third book, focused on the practicalities of developing and maintaining Go codebases. I hope to release it in the first half of 2026.
Let's Go
This book teaches the fundamentals of creating production-ready web applications in Go. We walk through building a simple snippet-sharing app (a bit like Pastebin), starting with essentials like routing, middleware, error handling, logging, and configuration. Then we cover practicalities such as working with SQL databases, HTML templates, form validation, and session management, finishing with secure user authentication/authorization and best-practice testing patterns.
You can read a free sample and buy it online or check out the reviews on Goodreads.

Let's Go Further
Like the name suggests, this is a follow-up to the first book 😊 In it we build a fully functional JSON API for accessing a database of movies. We start with the practicalities of working with JSON, then move on to advanced topics including SQL migrations, background tasks, partial updates and using optimistic locking, permission-based authorization, CORS requests, graceful server shutdown, exposing application metrics and automating build and deployment steps.
You can read a free sample and buy it online or see the reviews on Goodreads.

Go: Beyond the Syntax
Coming soon: What every new Gopher needs to know about working on real projects in Go. This book will cover topics like editor setup and useful developer tooling, maintaining your codebase, good coding practices (and bad ones to avoid), what's normal in Go and what other Gophers expect, and external resources to consult when you get stuck. In short, the important stuff that books and tutorials on syntax don't teach you.