_content/blog: add Go 1.27 release post

Change-Id: I8a5a926f9df89776188298a8e7b540d96a6a6964
Reviewed-on: https://go-review.googlesource.com/c/website/+/806840
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Nicholas Husin <husin@google.com>
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Jonathan Amsterdam <jba@google.com>
diff --git a/_content/blog/go1.27.md b/_content/blog/go1.27.md
new file mode 100644
index 0000000..2c8e674
--- /dev/null
+++ b/_content/blog/go1.27.md
@@ -0,0 +1,123 @@
+---
+title: Go 1.27 is released
+date: 2026-08-19
+by:
+- Nicholas Husin, on behalf of the Go team
+summary: Go 1.27 adds generic methods, encoding/json/v2 package, uuid package, faster memory allocation, goroutine leak profiles, and more.
+---
+
+Today the Go team is pleased to release Go 1.27. You can find its binary
+archives and installers on the [download page](/dl/).
+
+Go 1.27 brings major enhancements across the language, toolchain, runtime, and
+standard library. Below are some of the key highlights.
+
+## Language changes
+
+Go 1.27 introduces three notable updates to the
+[language specification](/doc/go1.27#language).
+
+First, generic methods are now supported. For example, see
+[`math/rand/v2.Rand`](/pkg/math/rand/v2#Rand):
+
+```go
+// Prior to Go 1.27, a separate method on Rand had to be added for each type
+// (unsigned integer methods omitted for brevity).
+func (r *Rand) Int32N(n int32) int32
+func (r *Rand) Int64N(n int64) int64
+func (r *Rand) IntN(n int) int
+
+// Go 1.27 adds a new generic method that works for all integer types.
+func (r *Rand) N[Int intType](n Int) Int
+```
+
+Second, a key in a [struct literal](/ref/spec#Composite_literals) may now be any
+valid [field selector](/ref/spec#Selectors) for the struct type, allowing fields
+in nested or embedded structs to be initialized directly:
+
+```go
+type Habitat struct {
+    Burrow string
+}
+
+type Gopher struct {
+    Name    string
+    Habitat // Embedded struct.
+}
+
+// Go 1.27 allows using Burrow as a key directly.
+g := Gopher{
+    Name:   "Gopher",
+    Burrow: "Burrow #42",
+}
+```
+
+Finally, function type inference has been generalized to apply in all assignment
+contexts. Generic functions can now be used without explicit type arguments in
+composite literals, type conversions, and channel sends:
+
+```go
+func GenericFormatter[T any](v T) string {
+    return fmt.Sprintf("value: %v", v)
+}
+
+type IntFormatter func(int) string
+
+// Go 1.27 infers T = int in composite literals, conversions, and channel sends.
+formatters := []IntFormatter{GenericFormatter}
+fn := IntFormatter(GenericFormatter)
+ch := make(chan IntFormatter, 1)
+ch <- GenericFormatter
+```
+
+## Tool improvements
+
+-   [`go fix`](/doc/go1.27#go-fix) includes several new
+    [modernizers](/pkg/golang.org/x/tools/go/analysis/passes/modernize):
+    `atomictypes`, `embedlit`, `slicesbackward`, and `unsafefuncs`.
+-   [`go doc`](/doc/go1.27#go-doc) now supports `package@version` queries such
+    as `go doc example.com/pkg@v1.2.3`.
+-   [`go mod tidy`](/doc/go1.27#go-mod-tidy) now automatically consolidates
+    multiple `require` blocks in `go.mod` into a standard direct and indirect
+    two-block structure.
+
+## Performance and runtime
+
+-   [Size-specialized memory allocation](/doc/go1.27#faster-memory-allocation)
+    reduces small object (<80B) allocation costs by up to 30%, improving overall
+    performance by ~1% for allocation-heavy programs.
+-   The [`goroutineleak`](/doc/go1.27#goroutineleak-profiles) profile in
+    [`runtime/pprof`](/pkg/runtime/pprof) is now generally available, allowing
+    automatic detection of permanently blocked goroutines.
+
+## Standard library additions
+
+-   [`encoding/json/v2`](/doc/go1.27#jsonv2) provides high-level JSON processing
+    with configurable options and stricter defaults, alongside
+    [`encoding/json/jsontext`](/doc/go1.27#jsonv2) for low-level streaming. The
+    existing [`encoding/json`](/pkg/encoding/json) package is now backed by the
+    v2 implementation for faster unmarshaling while maintaining backwards
+    compatibility.
+-   [`crypto/mldsa`](/doc/go1.27#crypto_mldsa) implements the post-quantum
+    ML-DSA signature scheme (FIPS 204), integrated into
+    [`crypto/x509`](/pkg/crypto/x509) and [`crypto/tls`](/pkg/crypto/tls).
+-   [`uuid`](/doc/go1.27#uuid) provides native support for generating and
+    parsing UUIDs.
+-   [`simd`](/doc/go1.27#simd) and architecture-specific
+    [`simd/archsimd`](/doc/go1.27#archsimd) provide experimental SIMD support.
+-   [`net/http/httptest`](/doc/go1.27#nethttphttptestpkgnethttphttptest) adds
+    [`NewTestServer`](/pkg/net/http/httptest#NewTestServer), providing an
+    in-memory fake network suitable for use with the
+    [`testing/synctest`](/pkg/testing/synctest) package.
+
+Please read the [Go 1.27 release notes](/doc/go1.27) for the complete list of
+changes and details.
+
+Over the next few weeks, follow-up blog posts will cover some of the topics
+relevant to Go 1.27 in more detail. Check back later to read those posts.
+
+Thanks to everyone who contributed to this release by writing code, filing bugs,
+trying out experimental additions, and testing release candidates. As always, if
+you notice any problems, please [file an issue](/issue/new).
+
+We hope you enjoy using Go 1.27!