Project ideas from Hacker News discussions.

Go 1.27

📝 Discussion Summary (Click to expand)

Summary of the four most common themes in the discussion

Theme Representative quote
1️⃣ First‑class UUID support “I’m so glad the new uuid package landed - it’s overdue but a very welcome addition! I’ve already replaced github.com/google/uuid with uuid in several projects.” – patabyte
2️⃣ Generics gaining traction “Generic methods finally landing is huge. Having to write a separate typed method for every integer type was one of the most annoying boilerplate patterns in Go.” – Xeoncross
3️⃣ Desire for algebraic data types / ergonomics “You might want to follow this proposal, if you aren’t already. It’s the most recent one, and it’s supported by quite a few ‘core members’ of the Go Team.” – ainar‑g
4️⃣ Performance & tooling highlights “The SIMD stuff is incredible. I have been having lots of fun with it.” – drivebyhooting

These four themes capture the most‑frequently expressed opinions: excitement over the standard uuid package, the impact of generic methods, ongoing interest in algebraic data types, and appreciation for recent performance‑oriented language and tooling improvements.


🚀 Project Ideas

GoADT – Codegen for Algebraic Data Types

Summary

  • Generates discriminated union (tagged union) types, String() methods, and exhaustive Switch code from a simple YAML/JSON spec using go generate.
  • Core value: lets Go developers write safe, expressive algebraic data types without waiting for language‑level support.

Details

Key Value
Target Audience Go developers who currently use manual interface{} or external libraries for ADTs.
Core Feature Parses a spec file and outputs Go source that includes type definitions, MarshalJSON/UnmarshalJSON, and a Match helper for exhaustive pattern matching.
Tech Stack Go 1.27, generics, go/ast, go/parser, go/format, goplugin for go generate.
Difficulty Medium
Monetization Hobby

Notes

  • HN commenters repeatedly ask for discriminated unions and better error‑handling ergonomics, making this a direct response.
  • Could be packaged as a VS Code extension for instant preview, sparking community discussion.

go-embedcheck – Safe Embedding Linter & Auto‑Fixer

Summary

  • Detects ambiguous promotions when initializing struct literals with embedded types and offers auto‑fixes via go fix.
  • Core value: prevents subtle bugs introduced by Go 1.27’s enhanced embedded‑field initialization.

Details

Key Value
Target Audience Go teams using struct embedding, especially those adopting Go 1.27 field‑initialization shortcuts.
Core Feature vet‑compatible plugin + CLI that scans code, reports overlapping field usage, and rewrites code to explicit field names.
Tech Stack Go, go/token, go/ast, golang.org/x/tools/go/analysis, text/template for fixes.
Difficulty Low
Monetization Revenue-ready: Subscription: $5/mo per repo (self‑hosted) or $0.01 per scan on CI.

Notes

  • Commenters complained about bugs from overlapping Burrow fields; this tool directly addresses that pain.
  • Integration with CI could become a standard lint rule, encouraging adoption.

uuid-migrate – Automated Migration from google/uuid to std/uuid

Summary

  • Scans a codebase, replaces github.com/google/uuid imports, updates struct literals, and rewrites DB NullScanner/valuer implementations to use the standard uuid.UUID type.
  • Core value: makes adopting the new std library painless and safe.

Details

Key Value
Target Audience Go developers using UUIDs, especially in Kubernetes, cloud services, and DB layers.
Core Feature go run github.com/yourorg/uuid-migrate@latest with --fix performs import rewrite, string‑to‑UUID conversion, and adds migration unit tests.
Tech Stack Go, go/ast, go/parser, go/format, gopkg.in/yaml.v3 for config.
Difficulty Medium
Monetization Hobby

Notes

  • The HN thread mentions the go fix issue and Kubernetes migration plans; a dedicated tool would delight those users.
  • Could be distributed as a GitHub Action for CI pipelines, encouraging adoption.

go-opt-result – Typed Option/Result Wrapper with Exhaustive Handling

Summary

  • Provides generic Option[T] and Result[E, T] types that integrate with Go 1.27 generics, supporting functional‑style chaining and compile‑time exhaustiveness checks via a Match helper.
  • Core value: adds expressive, safe error‑propagation patterns without external dependencies.

Details

Key Value
Target Audience Go developers who wish to use Option/Result patterns but dislike boilerplate or lack of pattern matching.
Core Feature Option[T].Else(func(T) Option[U]), Result[E, T].Map(func(T) T2).Unwrap() (T, error), plus aMatch` function that enforces covering all variants when used with ADT‑like enums.
Tech Stack Go 1.27, generics, golang.org/x/exp/constraints, unit tests with go test.
Difficulty High
Monetization Revenue-ready: Commercial license for enterprise teams; free OSS for hobbyists.

Notes

  • Users lamented missing algebraic data types and better error‑handling ergonomics; this library fills those gaps.
  • Could be showcased in a blog post linking to the HN discussion, encouraging community adoption.

Read Later