The Applied Go Weekly Newsletter logo

The Applied Go Weekly Newsletter

Archives
Subscribe
January 18, 2026

Hidden Gems • The Applied Go Weekly Newsletter 2026-01-18

AppliedGoNewsletterHeader640.png

Your weekly source of Go news, tips, and projects

2026-01-18-hidden-gems.png

Hidden Gems

Hi ,

How many times have you invoked go run, go build, go test and other Go tools? Every time, you can trust the toolchain to do its job. Reliably, predictably, and insanely fast.

The toolchain feels so easy, but don't confuse "easy" with "simple". Compiler toolchains are complicated systems that require careful engineering to become user-friendly, capable, and efficient at the same time, just as the Go toolchain is today.

The great thing is, as a Go user, you don't have to think much about the internals of the Go toolchain, it Just Works™. But still, it's worth lifting the hood and take a closer look at the mechanics that make the toolchain work so smoothly, you might discover a few hidden gems.

(More in the first featured article.)

–Christoph

Featured articles

The Go Build System: Optimised for Humans and Machines

On the many little design decisions that make the Go toolchain a delight for developers without compromising on power.

What Happens When You Don’t Rate Limit Your API (and How Token Buckets Fix It)

Author: "What clicked for me was how well [the Token Bucket algorithm] fits Go’s concurrency primitives.Timers, goroutines, and channels make the logic surprisingly clean."

Project of the week: NGINX Visualizer

A log visualizer... in Defend the Castle style!

(Watch the demo video)

Podcast corner

Cup o' Go | 3️⃣3️⃣3️⃣ Security patches for 3 Go versions, 3 meetups, planning our 3 year anniversary!

Is 3 a magic number? For this episode, it is!

How to Know If your Software Is Overcomplicated or Oversimplified? | Three Dots Labs blog

The maximalist: "We need an architecture with ten layers! Microservices! Triple-redundant caches! Everything on Kubernetes!" The minimalist: "Monolith with SQLite on systemd."

Robert and Milosz from Three Dot Labs are on a quest for the sweet spot between these two extremes in software design.

More articles, videos, talks

Golang Panic Recovery | DoltHub Blog

When code panics, the app crashes. Unless there is a recover() call in the call chain. Learn the basics of panic recovery, but also read this comment from *u/etherealflaim.

Building a Robot to Find the Satellite I Helped Launch - YouTube

Redditor u/PrintAndPanic built a satellite tracker and discovered that Go lets him treat hardware like microservices.

On database-backed functionality testing in Go — segfaultmedaddy.com

When databases meet parallel testing, changes are you might run into nasty issues like db-level data races or timeouts. This article presents a library that makes parallel testing of PostgreSQL interactions more reliable.

Are Atomic Operations Faster and Better Than a Mutex? It Depends - Latency Slayer

Comparing mutexes and atomic operations seems like comparing apples and oranges, but the point is to become aware of the particular use cases, pros, and cons of each.

Kafkafka: How I built Kafka from Scratch in Golang

Ehab Hosam wanted to learn how Kafka works and practice Go development. The result is Kafkafka, and in this article, Ehab shares his learnings.

Projects

Libraries

GitHub - charmbracelet/fantasy: Build AI agents with Go. Multiple providers, multiple models, one API 🧙

Not quite new anymore (ie, not released this week), but maybe still worth sharing: Fantasy is the "engine" of Crush, the agentic AI client from Charm_ that you might already have heard of. With Fantasy, you can build agents in Go, compiled to native binaries rather than being interpreted and requiring pre-installed runtime environments.

GitHub - kreuzberg-dev/kreuzberg: A polyglot document intelligence framework with a Rust core. Extract text, metadata, and structured information from PDFs, Office documents, images, and 50+ formats. Available for Rust, Python, Ruby, Java, Go, PHP, Elixir, C#, TypeScript (Node/Bun/Wasm/Deno) —or use via CLI, REST API, or MCP server.

It rarely happens that I list a Rust library here, but hey, it has Go bindings! Also worth noting: It's a rewrite of a mature Python project, so it's already quite feature rich.

GitHub - mrjoshuak/go-openexr: Pure Go implementation of the OpenEXR high dynamic range image file format

Will Go finally conquer the movie and game industry? OpenEXR might be a small step in this direction.

GitHub - m-mizutani/gollem: Go framework for agentic AI app with MCP and built-in tools

Announced just recently but already quite advanced: Gollem offers useful features for building LLM-based apps and workflows, including session management, custom and MCP tooling, middleware support, structured output, and streaming support.

Not to be confused with golangast/gollemer.

Tools and applications

GitHub - gigagrug/schema: All in one CLI tool for the database | Migration, Studio, LSP

A quite unusual combination of database tools: schema migration, TUI DB explorer, and language server for your editor. Maybe not the same as full-blown, standalone tools, but it surely fits in your back pocket to be there when you need it.

GitHub - rshelekhov/lazymake: Modern TUI for Makefiles with interactive target selection, dependency visualization, and command safety analysis

The Makefile syntax is tricky, and large Makefiles can become messy. Lazymake makes using, editing, and debugging Makefiles more intuitive. Maybe you'll even fall in love with Makefiles (again)?

Flagged It - Learn Countries Through Fun Guessing Games

Guess countries by flag, shape, capitol, and other attributes. The backend is written in Go, source code here

GitHub - BlackVectorOps/semantic_firewall: Generate deterministic semantic fingerprints for Go functions. Detect xz-style backdoors and verify semantic equivalence using Static Single Assignment (SSA) analysis and Scalar Evolution.

Safeguard your Go code against malicious changes. Semantic Firewall determines semantic equivalence between original and changed code. Version 1.1.0 refines the check so much that it could count as a new tool compared to 1.0.0.

GitHub - danielecanzoneri/lucky-boy: 🍀 Lucky Boy - A simple but accurate Game Boy and Game Boy Color emulator written in Go.

Whether you want to play old Nintendo games or want to see how a Z80 CPU emulator is written, this repo is worth a look.

GitHub - lite-quests/go-quests: Hands-on practice for go

For Go newcomers: Pursue these quests to become more familiar with Go.

Setup | SimpleDMS

The author of SimpleDMS open sourced their project this week. This document management system is built with Go, HTMX, and SQLite. From a user's perspective the main differentiator to common DMSs is that SimpleDMS preserves exisitng file structures (whereas typical DMSs copy everthing into their own storage system).

GitHub - surge-downloader/surge: Surge is an open-source download manager

I have a feeling that running your tasks entirely through TUI apps becomes more and more possible. Here is another TUI app, a download manager.

Happy coding! ʕ◔ϖ◔ʔ

Questions or feedback? Drop me a line. I'd love to hear from you.

Best from Munich, Christoph

Not a subscriber yet?

If you read this newsletter issue online, or if someone forwarded the newsletter to you, subscribe for regular updates to get every new issue earlier than the online version, and more reliable than an occasional forwarding. 

Find the subscription form at the end of this page.

How I can help

If you're looking for more useful content around Go, here are some ways I can help you become a better Gopher (or a Gopher at all):

On AppliedGo.net, I blog about Go projects, algorithms and data structures in Go, and other fun stuff.

Or visit the AppliedGo.com blog and learn about language specifics, Go updates, and programming-related stuff. 

My AppliedGo YouTube channel hosts quick tip and crash course videos that help you get more productive and creative with Go.

Enroll in my Go course for developers that stands out for its intense use of animated graphics for explaining abstract concepts in an intuitive way. Numerous short and concise lectures allow you to schedule your learning flow as you like.

Check it out.


Christoph Berger IT Products and Services
Dachauer Straße 29
Bergkirchen
Germany

Don't miss what's next. Subscribe to The Applied Go Weekly Newsletter:
Share this email:
Share on Twitter Share on LinkedIn Share on Hacker News Share on Reddit Share via email Share on Mastodon Share on Bluesky
https://c.im/@c...
LinkedIn
Powered by Buttondown, the easiest way to start and grow your newsletter.