
The Go HTTP Client and Why the Default Is Dangerous
The zero value http.Client and http.Get have no timeout, lose connections when a body is not drained and read unlimited data. See each failure and its fix.
Everything you need to level up your coding skills.

The zero value http.Client and http.Get have no timeout, lose connections when a body is not drained and read unlimited data. See each failure and its fix.

Use templ components with the standard mux, chi, gin and echo: templ.Handler, path parameters, 404 pages, status codes and the differences between routers.

Compare the Go 1.22 standard library mux with chi, gin, echo, gorilla mux and httprouter on routing speed, 405 handling and trailing slashes.

Implement long polling in Go with a cursor, a wait that ends on publish, timeout or disconnect, and learn when it beats WebSockets and server sent events.

Build a blog engine in Go that embeds Markdown files, parses front matter, hides drafts and scheduled posts and serves index, tag and post pages.

Publish counters and gauges from a Go service with the standard library expvar package, mount its handler safely and see when Prometheus is the better choice.

Write a first templ component and read the Go it generates: string chunks, escaped expressions, error positions and how a failed render behaves over HTTP.

Use httptest.NewServer to stand in for an upstream API in Go tests: scripted responses, slow servers for timeouts, TLS servers and request recording.

Build a small templ component library with typed props, accessible defaults, a generic table and tests that parse the output to check labels, ids and roles.
We send one email when a new article is published. No spam.