The Go Blog details how to export Go functions and values to JavaScript when compiling to WebAssembly, enabling seamless interoperability between Go and web applications. This tutorial walks through the new //go:wasmimport and //go:wasmexport directives, illustrating practical use cases for building richer browser-based experiences.
https://go.dev/blog/wasmexport
https://go.dev/blog/wasmexport
go.dev
Extensible Wasm Applications with Go - The Go Programming Language
Go 1.24 enhances WebAssembly capabilities with function export and reactor mode
Alex Edwards explains how Go 1.24's go tool directive streamlines the management of tool dependencies, replacing older approaches like tools.go files. This walkthrough demonstrates how the new system makes it easier to track, install, and update development tools alongside your Go modules.
https://www.alexedwards.net/blog/how-to-manage-tool-dependencies-in-go-1.24-plus
https://www.alexedwards.net/blog/how-to-manage-tool-dependencies-in-go-1.24-plus
www.alexedwards.net
How to manage tool dependencies in Go 1.24+ - Alex Edwards
Go's new SwissTable implementation brings a high-performance, memory-efficient hash map to the language's runtime. In this announcement, the Go team explains how adopting SwissTable improves map iteration speed, reduces memory usage, and enhances overall performance for Go developers.
https://go.dev/blog/swisstable
https://go.dev/blog/swisstable
go.dev
Faster Go maps with Swiss Tables - The Go Programming Language
Go 1.24 improves map performance with a brand new map implementation
Michael Stapelberg's walkthrough provides practical strategies for diagnosing and debugging hanging Go programs, from identifying goroutine leaks to using runtime profiling tools. The guide emphasizes reproducible techniques to help developers quickly pinpoint and resolve deadlocks or stalls in their code.
https://michael.stapelberg.ch/posts/2025-02-27-debug-hanging-go-programs/
https://michael.stapelberg.ch/posts/2025-02-27-debug-hanging-go-programs/
Michael Stapelberg
Tips to debug hanging Go programs
I was helping someone get my gokrazy/rsync implementation set up to synchronize RPKI data (used for securing BGP routing infrastructure), when we discovered that with the right invocation, my rsync receiver would just hang indefinitely.
This was a quick problem…
This was a quick problem…
❤1
This technical analysis by jub0bs investigates the performance cost of using Go's panic and recover mechanisms for error handling. By benchmarking real-world scenarios, the post reveals the significant overhead of panics and offers recommendations for when to use them judiciously.
https://jub0bs.com/posts/2025-02-28-cost-of-panic-recover/
https://jub0bs.com/posts/2025-02-28-cost-of-panic-recover/
Jub0Bs
The cost of Go's panic and recover
TL;DR ¶ Some of the wisdom contained in Josh Bloch’s Effective Java book is relevant to Go. panic and recover are best reserved for exceptional circumstances. Reliance on panic and recover can noticeably slow down execution, incurs heap allocations, and precludes…
In this blogpost, Alex Edwards guides Go developers through the enhanced tool dependency management features introduced in version 1.24 and beyond. He demonstrates how to pin, update, and audit third-party utilities to maintain consistent and reproducible builds.
https://www.alexedwards.net/blog/how-to-manage-tool-dependencies-in-go-1.24-plus
https://www.alexedwards.net/blog/how-to-manage-tool-dependencies-in-go-1.24-plus
www.alexedwards.net
How to manage tool dependencies in Go 1.24+ - Alex Edwards
In this tutorial, Pliutau guides developers through recreating the classic Minesweeper game in Go using the raylib-go bindings. He demonstrates how raygui handles UI elements while raylib configures the game window and detects mouse input for an authentic Minesweeper experience.
https://pliutau.com/minesweeper-in-golang-raylib/
https://pliutau.com/minesweeper-in-golang-raylib/
Pliutau
Minesweeper with Raylib Go Bindings
A brief post on building a classic Minesweeper game in Go using raylib-go
SQL query builder and ORM/Factory generator for Go with support for PostgreSQL, MySQL and SQLite
https://github.com/stephenafamo/bob
https://github.com/stephenafamo/bob
GitHub
GitHub - stephenafamo/bob: SQL query builder and ORM/Factory generator for Go with support for PostgreSQL, MySQL and SQLite
SQL query builder and ORM/Factory generator for Go with support for PostgreSQL, MySQL and SQLite - stephenafamo/bob
In this guide, AppliedGo presents a comprehensive roadmap for debugging Go applications, covering everything from writing clear, test-driven code to strategic and ad-hoc logging. It also demonstrates how to leverage tools like Delve, GoTutor, and git bisect to isolate and resolve bugs effectively.
https://appliedgo.net/debug/
https://appliedgo.net/debug/
Applied Go
Beyond the Debugger: A Comprehensive Guide to Debugging Go Applications
Debugging starts way before starting the debugger. Here is a rundown of debugging techniques for Go apps.
In this walkthrough, Akash Joshi shows how to wrap OpenAI’s Whisper speech recognition model into a streamlined command-line interface written in Go . He outlines chaining ffmpeg preprocessing steps, leveraging GoReleaser for cross-platform builds, and distributing the resulting “better-whisper” tool via Homebrew .
https://appliedgo.net/whisper-cli/
https://appliedgo.net/whisper-cli/
franz-go contains a feature complete, pure Go library for interacting with Kafka from 0.8.0 through 4.0+. Producing, consuming, transacting, administrating, etc.
https://github.com/twmb/franz-go
https://github.com/twmb/franz-go
GitHub
GitHub - twmb/franz-go: franz-go is a feature complete, pure Go library for Kafka from 0.8.0 through 4.1+. Producing, consuming…
franz-go is a feature complete, pure Go library for Kafka from 0.8.0 through 4.1+. Producing, consuming, transacting, administrating, etc. - twmb/franz-go
In “From Java to Go,” Philip narrates his transition from Java and Kotlin to Go, revealing dramatic gains in startup speed and resource efficiency . This article compares JVM tooling and Go’s AOT compilation, dependency management, and IDE support to demonstrate why Go empowers the team’s Distr platform on Kubernetes .
https://glasskube.dev/blog/from-java-to-go/
https://glasskube.dev/blog/from-java-to-go/
glasskube.dev
We switched from Java to Go and don't regret it | Glasskube
I always told people memory is cheap, black magic is OK and efficiency doesn't matter, but I was wrong.
In this post, Vishnu Bharathi explores the behavior of nil channels in Go, detailing how they block operations and shape concurrency patterns. He offers clear code examples to illustrate common pitfalls and effective strategies for handling nil channels in real-world applications.
https://vishnubharathi.codes/blog/nil-channels-in-go/
https://vishnubharathi.codes/blog/nil-channels-in-go/
Vishnu Bharathi
Nil channels in Go
A friend from work messaged me today that they had a hard time because they had used var c chan int instead of c := make(chan int) in their Go code. I responded by saying that I usually have one rule
In this feature, Liam Manesh introduces the GOOS=none proposal to enable bare-metal Go, bypassing any OS layer. He explores how the Tamago project underpins this change, supplying runtime hooks for firmware, bootloaders, and microVMs on AMD64, ARM, and RISC-V.
https://golangnugget.com/p/go-without-an-os-meet-goos-none
https://golangnugget.com/p/go-without-an-os-meet-goos-none
Golang Nugget
Go Without an OS? Meet GOOS=none
A wild new proposal could let you write low-level code—like boot managers or firmware—directly in Go. No OS needed. Seriously.
❤2
In this analysis, “Pure vs. impure iterators in Go” examines Go’s new iterator standardisation in versions 1.23+ and advocates for clear terminology distinguishing stateless “pure” functions from stateful “impure” closures. It walks through examples—from Fibonacci generators to strings.Lines—and weighs performance implications against consistency across related iterator factories.
https://jub0bs.com/posts/2025-05-29-pure-vs-impure-iterators-in-go/
https://jub0bs.com/posts/2025-05-29-pure-vs-impure-iterators-in-go/
Jub0Bs
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”…
A Go implementation of the Model Context Protocol (MCP), enabling seamless integration between LLM applications and external data sources and tools.
https://github.com/mark3labs/mcp-go
https://github.com/mark3labs/mcp-go
GitHub
GitHub - mark3labs/mcp-go: A Go implementation of the Model Context Protocol (MCP), enabling seamless integration between LLM applications…
A Go implementation of the Model Context Protocol (MCP), enabling seamless integration between LLM applications and external data sources and tools. - mark3labs/mcp-go
In this primer, Prateek Surana highlights key contrasts between Go and JavaScript, walking through syntax differences, runtime models, and type systems that shape performance and developer experience. Drawing from his years in JavaScript and recent focus on Go for server-side development, he offers code comparisons and practical tips for a smooth transition.
https://prateeksurana.me/blog/guide-to-go-for-javanoscript-developers/
https://prateeksurana.me/blog/guide-to-go-for-javanoscript-developers/
prateeksurana.me
A JavaScript Developer's Guide to Go
A guide for JavaScript developers learning Go through direct comparisons of fundamental concepts between both languages.
In this essay, Fillmore Labs examines how pointers to zero-sized types can lead to unexpected behavior in Go runtimes. The Perils of Pointers in the Land of the Zero-Sized Type reveals how escape analysis and shared heap optimizations undermine direct pointer comparisons for zero-sized types.
https://blog.fillmore-labs.com/posts/zerosized-1/
https://blog.fillmore-labs.com/posts/zerosized-1/
🔥 ~6x faster, stricter, configurable, extensible, and beautiful drop-in replacement for golint
https://github.com/mgechev/revive
https://github.com/mgechev/revive
GitHub
GitHub - mgechev/revive: 🔥 ~6x faster, stricter, configurable, extensible, and beautiful drop-in replacement for golint
🔥 ~6x faster, stricter, configurable, extensible, and beautiful drop-in replacement for golint - mgechev/revive