Go is my hammer, and everything is a nail

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  1. kubernetes

    Production-Grade Container Scheduling and Management

    - Kubernetes, one of the biggest public-facing Go projects, uses the 3-block style https://github.com/kubernetes/kubernetes/blob/master/pkg/con...

  2. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  3. tidb

    TiDB is built for agentic workloads that grow unpredictably, with ACID guarantees and native support for transactions, analytics, and vector search. No data silos. No noisy neighbors. No infrastructure ceiling.

  4. minio

    Discontinued MinIO is a high-performance, S3 compatible object store, open sourced under GNU AGPLv3 license.

    - MinIO uses 2-block https://github.com/minio/minio/blob/master/internal/grid/con...

    In all of those cases if you make a change and just run 'go fmt' it very well could inject any new imports in the first block, which would be wrong and you wouldn't know until project CI picks it up.

  5. rebar

    A biased barometer for gauging the relative speed of some regex engines on a curated set of tasks.

    The C#'s regex engine would have ran circles around Go's here though while doing so :)

    https://github.com/BurntSushi/rebar?tab=readme-ov-file#summa...

  6. starlark-go

    Starlark in Go: the Starlark configuration language, implemented in Go

  7. starlark-rust

    A Rust implementation of the Starlark language

  8. vos

    Vinix is an effort to write a modern, fast, and useful operating system in the V programming language

  9. logrus

    Structured, pluggable logging for Go.

    For an internal-only dependency it's possible. But if you've got a lot of active branches, or long-lived feature branches, it'll create chaos in merge conflicts. Even worse if you've got multiple supported versions of a product on release branches (e.g., `main-v1.0`, `main-v1.1`, `main-v1.2`, and `main` itself for the yet-to-be-released `v1.3`) you either make backports awful (by only changing the import path on `main`) or have to change even more things (by changing the import path on the release branches too).

    It's effectively impossible for pubic-facing dependencies. Imagine if https://github.com/sirupsen/logrus wanted to change their Go modules import path, for example to move to another git hosting provider. (Logrus is great by the way, I'm only 'picking' on it as a popular Go library that's used everywhere.) GitHub tells me that almost 200,000 Go projects depend on it (https://github.com/sirupsen/logrus/network/dependents), so all of them would need to change every source file they do logging in (probably most of them) in order to handle that.

    GitHub seems like it's going to be eternal for now, but when the industry moves on in 10 years time every single Go project is going to break. This would be a problem for any source dependency management solution of course, it's not like any of the others are immune to this issue. But because Go has you encode the Git path in every source file you import it into, the level of change to fix it is an order of magnitude higher.

  10. go-app

    A package to build progressive web apps with Go programming language and WebAssembly.

    I like using this great library to build progressive web apps using Declarative Syntax https://github.com/maxence-charriere/go-app

  11. lwt

    OCaml promises and concurrent I/O

    > Also, didn't OCaml have weak support for concurrency? Has that changed recently?

    OCaml has had Lwt for concurrent IO for long enough that it is now being deprecated in favor of Eio[1]:

    https://github.com/ocsigen/lwt

    [1] https://github.com/ocaml-multicore/eio

  12. datasets

    🤗 The largest hub of ready-to-use datasets for AI models with fast, easy-to-use and efficient data manipulation tools

    This is my (current) favorite list comprehension: https://github.com/huggingface/datasets/blob/871eabc7b23c27d... Someone was feeling awfully clever that day. (Not that I'm not occasionally guilty myself.)

  13. script

    Making it easy to write shell-like scripts in Go

  14. purego

    A library for calling C functions from Go without Cgo

    https://ebitengine.org/en/documents/install.html

    For anything other than windows:

    > Installing a C compiler

    > A C compiler is required as Ebitengine uses not only Go but also C.

    I mean, even on platforms without cgo, it's it working magically?

    No; it's using https://github.com/ebitengine/purego, which is:

    > A library for calling C functions from Go without Cgo.

    Like... I mean.... okaaaay, it's not cgo, but it's basically cgo? ...but it's no cgo so you can say 'no cgo' on your banner page?

    Seems kind of like... this is maybe not the right hammer for gamedev.

  15. go

    The Go programming language

    There was a detailed proposal to introduce encoding/json/v2 last year but I don't know how far it's progressed since then (which you probably already know about but mentioning it here for others):

    https://github.com/golang/go/discussions/63397

  16. mapstructure

    Discontinued Go library for decoding generic map values into native Go structures and vice versa.

    Well, one used to have https://github.com/mitchellh/mapstructure which assisted here, but the lib then got abandoned.

  17. go-d3d

    Implements some d3d11 and dxgi interfaces for use with e.g. IDXGIOutputDuplication

    Also anything that requires interop/FFI, syscalls, and lower level stuff. It's extremely hard to record your screen on Go, for example. On Rust this is much more doable and there even are crates for it

    It's not impossible with Go, though. There's an amazing windows impl here: https://github.com/kirides/go-d3d

    ...but if you look at the code, it's clear that you have to work against the language in some capacity

  18. initializr

    A quickstart generator for Spring projects

    that might just be inherent complexity when have to deal with a webservice. personally I dislike have to configure security

    So basically go to Spring Initializr (https://start.spring.io/) pick the latest LTS Java&Maven (or Kotlin&Gradle-Kotlin) and You're off to the races.

  19. SDKMan

    The SDKMAN! Command Line Interface

  20. apimachinery

    Its more like 20 lines of code without the prints. However, one generally should code generic functions for this. The k8s apimachinery module has helper functions which is useful for this sort of stuff. Ex: `NestedFieldNoCopy` and its wrapper functions.

    https://github.com/kubernetes/apimachinery/blob/95b78024e3fe...

  21. mapstructure

    Go library for decoding generic map values into native Go structures and vice versa. (by go-viper)

  22. ergo

    An actor-based Framework with network transparency for creating event-driven architecture in Golang. Inspired by Erlang. Zero dependencies.

    I haven't looked too deeply into it but I came across https://github.com/ergo-services/ergo not too long ago and thought it could be pretty interesting to try using OTP in Golang

    Packaging a Go service in Docker and dumping it into k8s is probably the easier/better understood path but also deploying Go services onto an Erlang node just sounds more fun

  23. dnadesign

    A lua package for designing DNA.

    For me, this is very true. Most bioinformatics is done in python, but over the last ~4 years I've ported everything I do over to Go: https://github.com/koeng101/dnadesign

    I'm just massively more productive, and the fact that I can read code I wrote years ago and fully understand what I was thinking at the time is amazing, and I haven't experienced that in other languages. I've learned other languages quite in depth, but with Go it is simple enough that when I write code, I'm not thinking about code, it is purely the problem being solved, and the code just comes out onto the keyboard.

    Ironically enough, I've recently started porting my entirely-go bioinformatics package to be a python package, mainly because I realize I'm not gonna convince everyone else in my field that Go > python

  24. Silk.NET

    The high-speed OpenGL, OpenCL, OpenAL, OpenXR, GLFW, SDL, Vulkan, Assimp, WebGPU, and DirectX bindings library your mother warned you about.

  25. megaparsec

    Industrial-strength monadic parser combinator library

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • What will make me happy, as a #hacktoberfest maintainer

    3 projects | dev.to | 5 Oct 2020
  • Kubernetes testing w/ Dagger.io

    4 projects | dev.to | 14 May 2026
  • Discussion on Fsnotify Maintainer Removal

    3 projects | news.ycombinator.com | 7 May 2026
  • Vibe Coding an MCP Server (with ToolHive)

    3 projects | dev.to | 30 May 2025
  • wait-for VS Wait4X - a user suggested alternative

    2 projects | 19 Mar 2025

Did you know that Go is
the 4th most popular programming language
based on number of references?