
Design and Build a JSON API in Go That Stays Maintainable
Build a JSON API in Go from a written contract: standard routing, one error format, strict decoding, validation, cursor paging, PATCH, auth and tests.
Everything you need to level up your coding skills.

Build a JSON API in Go from a written contract: standard routing, one error format, strict decoding, validation, cursor paging, PATCH, auth and tests.

Build a WebSocket hub in Go with gorilla/websocket: origin checks, read limits, ping and pong, per client send queues and a rule for slow consumers.

Build a pastebin in Go on SQLite with unguessable IDs, expiry, burn after read that survives link previews, delete tokens and output that cannot run scripts.

Serve net/http/pprof from a separate loopback listener with a token, avoid the DefaultServeMux trap, and fix the WriteTimeout error on CPU profiles.

A practical templ tutorial for Go: write components in .templ files, generate Go code, compose layouts, serve them over HTTP and test the output.

How Go's HTTP client reads HTTP_PROXY, HTTPS_PROXY and NO_PROXY, which hosts it never proxies, why runtime changes are ignored, and how to set one yourself.

Build an admin dashboard in Go with templ, HTMX and Tailwind classes: a shell, stat cards, a sortable paged table, role aware buttons and server side checks.

Build a URL shortener in Go on SQLite with random base62 codes, collision retries, custom aliases, expiry, hit counting and tests for the awkward cases.

Route api, admin and www hosts to different handlers with one http.ServeMux by putting the host in the pattern, and learn how it treats ports and case.

Build a dashboard in Go with html/template and HTMX: fragments chosen by the HX-Request header, polling cards, filters, a retry button and HX-Trigger.

Walk through every http.Transport field that matters in production, with the default value, what changing it does and measured effects of connection limits.

Test templ components with golden HTML files and an update flag, add structural checks that parse the output with x/net/html, and read a failure message.
We send one email when a new article is published. No spam.