tinyauth
https://github.com/steveiliop56/tinyauth
Tinyauth is a simple authentication middleware that adds a simple login screen or OAuth with Google, Github and any provider to all of your docker apps. It supports all the popular proxies like Traefik, Nginx and Caddy.
https://github.com/steveiliop56/tinyauth
Pure vs. impure iterators in Go
https://jub0bs.com/posts/2025-05-29-pure-vs-impure-iterators-in-go/
TL;DR
- Go has now standardised iterators.
- Iterators are powerful.
- Being functions under the hood, iterators can be closures.
- The classification of iterators suggested by the documentation is ambiguous.
- Dividing iterators into two categories, “pure” and “impure”, seems to me preferrable.
- Whether iterators should be designed as “pure” whenever possible is unclear.
https://jub0bs.com/posts/2025-05-29-pure-vs-impure-iterators-in-go/
A JavaScript Developer's Guide to Go
https://prateeksurana.me/blog/guide-to-go-for-javascript-developers
After spending five years as a JavaScript developer building both frontend and backend systems, I spent the last year transitioning to Go for server-side code. During that time I couldn't help but notice the differences between syntax, fundamentals, practices, and runtime environments between the languages and the effects they had on actual runtime performance and developer productivity.
https://prateeksurana.me/blog/guide-to-go-for-javascript-developers
Cool Golang slog.Logger tricks
https://djwong.net/2025/05/28/cool-go-slog-tricks.html
For years in Go, I’ve used many different logging libraries, from logrus to zap. After the release of slog into Go standard library, I immediately embraced it. It’s clever design made it so versatile and easy to use, and has already accumulated an enormous amount of libraries in the ecosystem.
https://djwong.net/2025/05/28/cool-go-slog-tricks.html
Cross-compiling C and Go via cgo with Bazel
https://popovicu.com/posts/cross-compile-cgo-bazel/
Go offers an exceptional language and an impressive ecosystem of tools. However, it presents a notable challenge when integrating with C code via cgo. While building and distributing pure Go binaries across various platforms is straightforward — often requiring just a few parameter adjustments — the process becomes considerably more complex when C dependencies are introduced.
https://popovicu.com/posts/cross-compile-cgo-bazel/
Announcing GoReleaser v2.10
- New Homebrew Casks support - Replaces the old
- Easy migration - Most users just need to rename
- Experimental MCP server - Adds Model Context Protocol support for AI tools like Claude Desktop (just run
https://carlosbecker.com/posts/goreleaser-v2.10
- New Homebrew Casks support - Replaces the old
brews
section which was incorrectly using Homebrew Formulas for pre-built binaries. The new homebrew_casks
section does it properly.- Easy migration - Most users just need to rename
brews
to homebrew_casks
in their config- Experimental MCP server - Adds Model Context Protocol support for AI tools like Claude Desktop (just run
goreleaser mcp
)https://carlosbecker.com/posts/goreleaser-v2.10
Go should be more opinionated
TL;DR:
The author argues that Go should provide more opinionated guidance on application structure and project layout. While Go excels at having "one way to do things" for language features (formatting, loops, etc.), it lacks official guidance for organizing larger projects.
Key points:
- Go's simplicity makes it easy to learn, but structuring real-world projects becomes challenging
- Teams spend significant time researching and deciding on project structure
- Official templates for common patterns (CLIs, APIs, microservices) would help
- Similar to how
- Would especially benefit teams migrating from opinionated frameworks like Spring Boot or Laravel
Bottom line: Go needs official project scaffolding tools (like
https://eltonminetto.dev/en/post/2025-06-19-go-more-opinated
TL;DR:
The author argues that Go should provide more opinionated guidance on application structure and project layout. While Go excels at having "one way to do things" for language features (formatting, loops, etc.), it lacks official guidance for organizing larger projects.
Key points:
- Go's simplicity makes it easy to learn, but structuring real-world projects becomes challenging
- Teams spend significant time researching and deciding on project structure
- Official templates for common patterns (CLIs, APIs, microservices) would help
- Similar to how
go mod
solved dependency management fragmentation- Would especially benefit teams migrating from opinionated frameworks like Spring Boot or Laravel
Bottom line: Go needs official project scaffolding tools (like
go new
) to extend its opinionated philosophy beyond language syntax to application architecture.https://eltonminetto.dev/en/post/2025-06-19-go-more-opinated
Gist of Go: Race conditions
https://antonz.org/go-concurrency/race-conditions
Preventing data races with mutexes may sound easy, but dealing with race conditions is a whole other matter. Let's learn how to handle these beasts!
https://antonz.org/go-concurrency/race-conditions
Benchmark of Go SQLite libraries
https://gitlab.com/cznic/sqlite-bench
github.com/mattn/go-sqlite3
vs modernc.org/sqlite
vs github.com/ncruces/go-sqlite3
https://gitlab.com/cznic/sqlite-bench
OpenTelemetry for Go: measuring the overhead
https://coroot.com/blog/opentelemetry-for-go-measuring-the-overhead
Everything comes at a cost — and observability is no exception. When we add metrics, logging, or distributed tracing to our applications, it helps us understand what’s going on with performance and key UX metrics like success rate and latency. But what’s the cost?
https://coroot.com/blog/opentelemetry-for-go-measuring-the-overhead
Why I Made Peace With Go’s Date Formatting
https://preslav.me/2025/06/11/golang-date-formatting-is-fine
https://preslav.me/2025/06/11/golang-date-formatting-is-fine
Things You Never Wanted To Know About Go Interfaces
https://mcyoung.xyz/2024/12/12/go-abi
Lately I’ve been finding myself writing a bit of Go, and I’ve picked up various fun “layout secrets” that help inform how I write code to minimize hidden allocations, and generally be kind to the optimizer. This article is a series of notes on the topic.
This post is about Go implementation details, so they can probably break you at any time if you rely on it. On the other hand, Hyrum’s law is a bitch, so taking your chances may not be that bad. After all, they’re probably never going to be able to properly clean up the mess people made with //go:linkname with runtime symbols…
As with many of my other posts, I’ll assume a basic familiarity with being able to read assembly. I’m using x86 for this post, but it’s worth looking at my RISC-V post for a refresher.
https://mcyoung.xyz/2024/12/12/go-abi
netpoll
https://github.com/cloudwego/netpoll
Netpoll is a high-performance non-blocking I/O networking framework, which focused on RPC scenarios, developed by ByteDance.
https://github.com/cloudwego/netpoll
Building static binaries with Go on Linux
https://eli.thegreenplace.net/2024/building-static-binaries-with-go-on-linux
https://eli.thegreenplace.net/2024/building-static-binaries-with-go-on-linux