• OPENDEV HUB V1.0• API STATUS: 100% OPERATIONAL• CLIENT ENGINE: LOADED & CACHED• TRENDING TECH: TAILWIND V4, NEXT.JS 16, RUST, GO• ZERO AUTH REQUIRED
OPENDEVHUB

Command Palette

Search for a command to run...

DEVELOPER RELEASES

DEVELOPER NEWS STREAM

Direct logs, engine updates, and framework notifications parsed from curated RSS feeds and announcements, updated hourly.

Your Go struct already describes your API. Let it write the docs too.
go2026-06-07
Tran Long AnTran Long An

Your Go struct already describes your API. Let it write the docs too.

Your Go struct already describes your API. Let it write the docs too. If you build HTTP...

html/template in Go: The Auto-Escaping That Stops XSS (When You Let It)
go2026-07-03
Gabriel AnhaiaGabriel Anhaia

html/template in Go: The Auto-Escaping That Stops XSS (When You Let It)

Go's html/template escapes XSS for you based on context. Here's how string concatenation and template.HTML quietly turn it off.

bufio.Scanner in Go: The Default Buffer Limit That Truncates Your Lines
go2026-07-03
Gabriel AnhaiaGabriel Anhaia

bufio.Scanner in Go: The Default Buffer Limit That Truncates Your Lines

bufio.Scanner silently caps lines at 64KB and stops. Here is why it happens, how Buffer() lifts the ceiling, and when to drop Scanner for Reader.

database/sql in Go: NullString, Contexts, and Connection Lifecycle
go2026-07-03
Gabriel AnhaiaGabriel Anhaia

database/sql in Go: NullString, Contexts, and Connection Lifecycle

The three database/sql habits that separate a Go service that survives a traffic spike from one that pools out: sql.Null types, QueryContext, and pool tuning.

time.Ticker and time.Timer in Go: The Reset and Leak Traps
go2026-07-03
Gabriel AnhaiaGabriel Anhaia

time.Ticker and time.Timer in Go: The Reset and Leak Traps

Stop your tickers, stop leaking time.After in loops, and learn why Go 1.23 quietly deleted the drain-before-Reset dance.

Custom JSON in Go: Marshaler, Unmarshaler, and the omitempty Traps
go2026-07-03
Gabriel AnhaiaGabriel Anhaia

Custom JSON in Go: Marshaler, Unmarshaler, and the omitempty Traps

MarshalJSON, UnmarshalJSON, and the omitempty rules that surprise Go developers: zero values, nested structs, and the pointer-vs-value call.

Go's time Package: Monotonic Clocks and the Bugs They Prevent
go2026-07-03
Gabriel AnhaiaGabriel Anhaia

Go's time Package: Monotonic Clocks and the Bugs They Prevent

How Go's monotonic clock makes Sub immune to NTP jumps, why marshaling silently strips it, and the timing bugs that follow.

json.RawMessage in Go: Deferring Decode Until You Know the Type
go2026-07-03
Gabriel AnhaiaGabriel Anhaia

json.RawMessage in Go: Deferring Decode Until You Know the Type

Decode polymorphic JSON in Go without interface{} soup. Read a discriminator field first, then unmarshal the payload into the right struct.

io.Pipe, io.TeeReader, io.LimitReader: Go Stream Composition Toolkit
go2026-07-03
Gabriel AnhaiaGabriel Anhaia

io.Pipe, io.TeeReader, io.LimitReader: Go Stream Composition Toolkit

Three tiny io helpers that let Go stream, hash, and cap payloads without ever buffering the whole thing in memory.

Buffered vs Unbuffered Channels in Go: How the Size Changes Behavior
go2026-07-03
Gabriel AnhaiaGabriel Anhaia

Buffered vs Unbuffered Channels in Go: How the Size Changes Behavior

In Go, a channel's buffer size is not a tuning knob. It changes what the channel means. Here is when to use each, and why a buffer of 1 is a signal.

Go 1.22 ServeMux: Method and Wildcard Routing Without a Framework
go2026-07-03
Gabriel AnhaiaGabriel Anhaia

Go 1.22 ServeMux: Method and Wildcard Routing Without a Framework

Go 1.22 gave the standard library method-aware routing and path wildcards. Here is how PathValue, precedence, and {$} actually behave.

Mutex Contention in Go: Finding It Before It Finds You
go2026-07-03
Gabriel AnhaiaGabriel Anhaia

Mutex Contention in Go: Finding It Before It Finds You

Turn on Go's mutex profiler, read the contention report, and fix a hot lock with RWMutex or sharding before it caps your throughput.

Rate Limiting in Go With golang.org/x/time/rate
go2026-07-03
Gabriel AnhaiaGabriel Anhaia

Rate Limiting in Go With golang.org/x/time/rate

Token bucket done right in Go: Limiter with Allow, Wait, and Reserve, per-key limiters, and the burst value almost everyone sets wrong.

select and default in Go: Non-Blocking Sends, Receives, and Polling
go2026-07-03
Gabriel AnhaiaGabriel Anhaia

select and default in Go: Non-Blocking Sends, Receives, and Polling

The default case turns a blocking channel op into a try. It also invites a busy loop that pins a CPU core. Here is how to use it right.

Coordinating Graceful Shutdown Across Goroutines in Go
go2026-07-03
Gabriel AnhaiaGabriel Anhaia

Coordinating Graceful Shutdown Across Goroutines in Go

Shut a Go service down without dropping in-flight work: a done signal, draining, ordered dependent stops, and a deadline that always exits.

Fan-Out, Fan-In in Go: Parallelizing Work With Channels
go2026-07-03
Gabriel AnhaiaGabriel Anhaia

Fan-Out, Fan-In in Go: Parallelizing Work With Channels

Distribute work across N goroutines and merge results with channels: worker pools, WaitGroup close coordination, and keeping order when it matters.