#​559 — June 25, 2025

Unsub  |  Web Version

Together with  Frontend Masters logo

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 pprof profiling tool can show the difference between two profiles to highlight where one run slowed down. Dolt used it to pinpoint a wrongly hard-coded parameter that forced expensive system-table generation.

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) AssemblyGo’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 deadcode tool to identify unreachable code.

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 dot).

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:

  • 🕹️ SSHTron (above) is a multiplayer Tron-style 'lightcycle' game that runs over SSH. You can run it for yourself or try ssh sshtron.zachlatta.com and see if anyone else is around..

  • Mochi is a small embeddable language targeting AI and agentic use-cases that compiles to bytecode that runs on a VM built in Go.

  • Dizer is a custom DNS server written in Go. Its homepage even breaks down most of the source code so you can more easily understand how it works.

  • GUItignore is a Web-based tool for creating .gitignore files covering one or more dev ecosystems of your choice, including Go.

  • Parser is a new Go library for filtering slices of structs using an SQL-like query language. We hope to feature this again as it progresses, it looks cool.

  • lazycontainer is a new BubbleTea-powered 'fancy terminal UI' for Apple Containers, as currently in macOS Tahoe Beta.

  • AGL (AnotherGoLang) is a Go-esque language that compiles to Go.