#559 — June 25, 2025 |
|
Go Weekly |
![]() |
JSON Evolution in Go: From V1 to V2 — A good look into the practicalities of using the JSON v2 package which lands in Go 1.25 (final release due in August) with new field tags, updated marshal defaults, streaming APIs, and other niceties. Highlights include joined custom marshalers and up to 10× faster unmarshaling. Anton Zhiyanov |
Finding Performance Problems by Diffing Two Go Profiles — Go’s Zach Musgrave (DoltHub) |
![]() Fullstack without Frameworks — Maximiliano Firtman combines vanilla JavaScript and Go to create high-performance apps from scratch. Follow along in this video course and learn more about web components, dynamic client-side routing, authentication, logging and everything in between. Frontend Masters sponsor |
Cloud66's Go Stack in 2025 — One Go team shares a little background to its packages of choice, covering configuration management, CLI framework, HTTP framework, ORM, and dependency injection and lifecycle management. Khash Sajadi |
How to Store Go Pointers from (Go) Assembly — Go’s assembler is an interesting, deep part of the Go toolchain for writing low-level routines and interfacing directly with Go’s runtime. Few Go developers need to go this deep, but it’s handy to have such a writeup. Francesco |
'Go Should Be More Opinionated' — “Go should be more opinionated about the application layout.” This is just one developer’s opinion, but app layout and architecture posts are always popular in this newsletter. Elton Minetto |
Eliminating Dead Code in Go Projects — Back in 2023, the Go team released a Matheus Mina |
📄 How and Why Grab Rewrote a Go Microservice in Rust – Not necessarily a happy ending for gophers, but it’s interesting to hear about their experience. Grab Engineering 📄 Comparing Rust, JavaScript and Go for Authoring WASM Components Obelisk 📄 Calling Go from Elixir with a CNode (in Crystal!) – “We needed to connect a new Elixir Phoenix LiveView app to an existing Go backend. This is how we did it.” Karl Matthias 📄 Don't Mock the Database: Data Fixtures are Parallel Safe and Fast Brandur Leach (Crunchy Data) 📄 Compressing for the Browser in Go – Comparing gzip, Brotli and zstd compression. Krzysztof Kowalczyk |
🛠 Code & Tools |
![]() |
Charm Fang: A CLI Starter Kit for Cobra Apps — A new Charm release is always worth a look – they create fantastic, well-thought-out libraries. Fang is a layer on top of Cobra, adding fancy output/errors, man pages, completions, and other out-of-the-box UX improvements for CLI apps. It’s new so the docs are limited for now, but this example code will point you in the right direction. Charm |
Unregistry: Push Docker Images Directly to Remote Servers — A lightweight container image registry that stores and serves images directly from your Docker daemon’s storage. Even one of Docker’s creators said they thought it was cool. Pasha Sviderski |
Open Source Outbound Webhooks Infrastructure — Built in Go. Features: Event Destinations, retries, topic subscription, OpenTelemetry, failure alerts, user portal. Outpost sponsor |
makefile-graph: Turn a Makefile into a Graph — Usable as both a library and CLI tool, this parses Makefiles and generates graphs representing the relationships between the file’s targets (to then be rendered by Graphviz Marin Atanasov Nikolov |
BillionMail 3.0: Open Source Email Marketing Platform — A Go-powered mail server and newsletter/email sending service. AGPL licensed. GitHub repo. aaPanel |
💡 Listmonk is another Go-powered option to consider in this space. |
|
👀 New and Quirky Projects |
A few projects have appeared on our radar recently which aren't necessarily things you'd introduce into your own apps but which you might find interesting or fun: |
![]() |
|