diff --git a/content/11years.article b/content/11years.article
new file mode 100644
index 0000000..97943f7
--- /dev/null
+++ b/content/11years.article
@@ -0,0 +1,232 @@
+# Eleven Years of Go
+12:01 10 Nov 2020
+
+Russ Cox, for the Go team
+
+##
+
+Today we celebrate the eleventh birthday of the Go open source release.
+The parties we had for
+[Go turning 10](https://blog.golang.org/10years)
+seem like a distant memory.
+It’s been a tough year, but
+we’ve kept Go development moving forward
+and accumulated quite a few highlights.
+
+In November, we launched [go.dev and pkg.go.dev](https://blog.golang.org/go.dev)
+shortly after Go’s 10th birthday.
+
+In February, the [Go 1.14 release](https://blog.golang.org/go1.14)
+delivered the first officially “production-ready” implementation of Go modules,
+along with many performance improvements,
+including
+[faster defers](https://golang.org/design/34481-opencoded-defers)
+and
+[non-cooperative goroutine preemption](https://golang.org/design/24543/conservative-inner-frame)
+to reduce scheduling
+and garbage collection latency.
+
+In early March, we launched a
+[new API for protocol buffers](https://blog.golang.org/protobuf-apiv2),
+[google.golang.org/protobuf](https://pkg.go.dev/google.golang.org/protobuf),
+with much-improved support for protocol buffer reflection and custom messages.
+
+<img src="11years/gophermask.jpg" height="450" width="300" align="right" style="border: 2px solid black; margin: 0 0 1em 1em;">
+
+When the pandemic hit, we decided to pause any public announcements
+or launches in the spring,
+recognizing that everyone’s attention rightly belonged elsewhere.
+But we kept working, and one of our team members joined the
+Apple/Google collaboration on
+[privacy-preserving exposure notifications](https://www.google.com/covid19/exposurenotifications/)
+to support contact tracing efforts all over the world.
+In May, that group launched the
+[reference backend server](https://github.com/google/exposure-notifications-server),
+written in Go.
+
+We continued to improve [gopls](https://www.youtube.com/watch?v=EFJfdWzBHwE),
+which enables advanced
+[Go-aware support](https://github.com/golang/tools/blob/master/gopls/doc/user.md)
+in many editors.
+In June, the
+[VSCode Go extension officially joined the Go project](https://blog.golang.org/vscode-go)
+and is now maintained by the same developers who work on gopls.
+
+Also in June, thanks to your feedback, we open-sourced
+[the code behind pkg.go.dev](https://blog.golang.org/pkgsite)
+as part of the Go project as well.
+
+Later in June, we
+[released the latest design draft for generics](https://blog.golang.org/generics-next-step),
+along with a prototype tool and [generics playground](https://go2goplay.golang.org/).
+
+In July, we published and discussed three new design drafts for future changes:
+[new `//go:build` lines for file selection](https://golang.org/design/draft-gobuild),
+[file system interfaces](https://golang.org/design/draft-iofs),
+and
+[build-time file embedding](https://golang.org/design/draft-embed).
+(We’ll see all of those in 2021, as noted below.)
+
+In August, the [Go 1.15 release](https://blog.golang.org/go1.15)
+delivered mainly optimizations and bug fixes rather than new features.
+The most significant was the start of a rewrite of the linker,
+making it run 20% faster and use 30% less memory
+on average for large builds.
+
+Last month, we ran our [annual Go user survey](https://blog.golang.org/survey2020).
+We will post results on the blog once we’ve analyzed them.
+
+The Go community has adapted to “virtual-first” along with everyone else,
+and we saw many virtual meetups and over a dozen virtual Go conferences this year.
+Last week, the Go team hosted
+[Go day at Google Open Source Live](https://opensourcelive.withgoogle.com/events/go)
+(videos at the link).
+
+## Going Forward
+
+We’re also incredibly excited about what’s in store for Go’s 12th year.
+Most immediately, this week Go team members will
+be presenting eight events at
+[GopherCon 2020](https://www.gophercon.com/).
+Mark your calendars!
+
+- “Typing [Generic] Go”,
+  a talk by Robert Griesemer,\
+  [Nov 11, 10:00 AM (US Eastern)](https://www.gophercon.com/agenda/session/233094);
+  [Q&A at 10:30 AM](https://www.gophercon.com/agenda/session/417935).
+- “What to Expect When You’re NOT Expecting”,
+  a live taping of the Go time podcast with a panel of expert debuggers,
+  including Hana Kim,\
+  [Nov 11 12:00 PM](https://www.gophercon.com/agenda/session/2334490).
+- “Evolving the Go Memory Manager's RAM and CPU Efficiency”,
+  a talk by Michael Knyszek,\
+  [Nov 11 1:00 PM](https://www.gophercon.com/agenda/session/233086);
+  [Q&A at 1:50 PM](https://www.gophercon.com/agenda/session/417940).
+- “Implementing Faster Defers”,
+  a talk by Dan Scales,\
+  [Nov 11 5:10 PM](https://www.gophercon.com/agenda/session/233397);
+  [Q&A at 5:40 PM](https://www.gophercon.com/agenda/session/417941).
+ - “Go Team - Ask Me Anything”,
+  a live Q&A with Julie Qiu, Rebecca Stambler, Russ Cox, Sameer Ajmani, and Van Riper,\
+  [Nov 12 3:00 PM](https://www.gophercon.com/agenda/session/420539).
+- “Pardon the Interruption: Loop Preemption in Go 1.14”,
+  a talk by Austin Clements,\
+  [Nov 12 4:45 PM](https://www.gophercon.com/agenda/session/233441);
+  [Q&A at 5:15 PM](https://www.gophercon.com/agenda/session/417943).
+- “Working with Errors”,
+  a talk by Jonathan Amsterdam,\
+  [Nov 13 1:00 PM](https://www.gophercon.com/agenda/session/233432);
+  [Q&A at 1:50 PM](https://www.gophercon.com/agenda/session/417945).
+- “Crossing the Chasm for Go: Two Million Users and Growing”,
+  a talk by Carmen Andoh,\
+  [Nov 13 5:55 PM](https://www.gophercon.com/agenda/session/233426).
+
+## Go Releases
+
+In February, the Go 1.16 release will include the new
+[file system interfaces](https://tip.golang.org/pkg/io/fs/)
+and
+[build-time file embedding](https://tip.golang.org/pkg/embed/).
+It will complete the linker rewrite, bringing additional performance improvements.
+And it will include support for the new Apple Silicon (`GOARCH=arm64`) Macs.
+
+In August, the Go 1.17 release will no doubt bring more features and improvements,
+although it’s far enough out that the exact details remain up in the air.
+It will include a new register-based calling convention for x86-64
+(without breaking existing assembly!),
+which will make programs faster across the board.
+(Other architectures will follow in later releases.)
+One nice feature that will definitely be included is the
+[new `//go:build` lines](https://golang.org/design/draft-gobuild),
+which are far less error-prone than the
+[current `//` `+build` lines](https://golang.org/cmd/go/#hdr-Build_constraints).
+Another highly anticipated feature we hope will be ready for beta testing next year
+is
+[support for fuzzing in the `go test` command](https://golang.org/design/draft-fuzzing).
+
+## Go Modules
+
+Over the next year, we will continue to work on developing support for Go modules
+and integrating them well into the entire Go ecosystem.
+Go 1.16 will include our smoothest Go modules experience yet.
+One preliminary result from our recent survey is that 96% of users
+have now adopted Go modules (up from 90% a year ago).
+
+We will also finally wind down support for GOPATH-based development:
+any programs using dependencies other than the standard library will need a `go.mod`.
+(If you haven’t switched to modules yet, see the
+[GOPATH wiki page](https://golang.org/wiki/GOPATH)
+for details about this final step in the journey from GOPATH to modules.)
+
+From the start, the [goal for Go modules](https://research.swtch.com/vgo-intro)
+has been “to add the concept of package versions to the working vocabulary
+of both Go developers and our tools,”
+to enable deep support for modules and versions throughout the Go ecosystem.
+The [Go module mirror, checksum database, and index](https://blog.golang.org/modules2019)
+were made possible by this ecosystem-wide understanding of what a package version is.
+Over the next year, we will see rich module support added to more tools and systems.
+For example, we plan to investigate new tooling to help module authors publish new versions
+(`go release`)
+as well as to help module consumers update their code to migrate away from
+deprecated APIs (a new `go fix`).
+
+As a larger example,
+[we created gopls](https://github.com/golang/tools/blob/master/gopls/README.md)
+to reduce many tools used by editors for Go support,
+none of which supported modules, down to a single one that did.
+Over the next year,
+we’ll be ready to make the VSCode Go extension use `gopls` by default,
+for an excellent module experience out of the box,
+and we’ll release gopls 1.0.
+Of course, one of the best things about gopls is that it is editor-neutral:
+any editor that understands the
+[language server protocol](https://langserver.org/)
+can use it.
+
+Another important use of version information is tracking whether
+any package in a build has a known vulnerability.
+Over the next year, we plan to develop a database of known vulnerabilities
+as well as tools to check your programs against that database.
+
+The Go package discovery site
+[pkg.go.dev](https://pkg.go.dev/)
+is another example of a version-aware system enabled by Go modules.
+We’ve been focused on getting the core functionality and user experience right,
+including a
+[redesign launching today](https://blog.golang.org/pkgsite-redesign).
+Over the next year,
+we will be unifying godoc.org into pkg.go.dev.
+We will also be expanding the version timeline for each package,
+showing important changes in each version,
+known vulnerabilities, and more,
+following the overall goal of surfacing what you need to make
+[informed decisions about adding dependencies](https://research.swtch.com/deps).
+
+We’re excited to see this journey from GOPATH to Go modules
+nearing completion and all the excellent dependency-aware tools
+that Go modules are enabling.
+
+## Generics
+
+The next feature on everyone’s minds is of course generics.
+As we mentioned above, we published the
+[latest design draft for generics](https://blog.golang.org/generics-next-step)
+back in June.
+Since then, we’ve continued to refine rough edges and have turned our
+attention to the details of implementing a production-ready version.
+We will be working on that throughout 2021, with a goal of having
+something for people to try out by the end of the year,
+perhaps a part of the Go 1.18 betas.
+
+## Thank You!
+
+Go is far more than just us on the Go team at Google.
+We are indebted to the contributors who work with us with the Go releases and tools.
+Beyond that, Go only succeeds because of all of you who work in
+and contribute to Go’s thriving ecosystem.
+It has been a difficult year in the world outside Go.
+More than ever, we appreciate you taking the time
+to join us and help make Go such a success.
+Thank you.
+We hope you are all staying safe and wish you all the best.
+
diff --git a/content/11years/gophermask.jpg b/content/11years/gophermask.jpg
new file mode 100644
index 0000000..d6fc456
--- /dev/null
+++ b/content/11years/gophermask.jpg
Binary files differ
diff --git a/content/pkgsite-redesign.article b/content/pkgsite-redesign.article
new file mode 100644
index 0000000..b071d6a
--- /dev/null
+++ b/content/pkgsite-redesign.article
@@ -0,0 +1,78 @@
+# Pkg.go.dev has a new look!
+12:00 10 Nov 2020
+
+Julie Qiu
+
+##
+
+Since launching pkg.go.dev, we’ve received a lot of great feedback on
+design and usability.
+In particular, it was clear that the way information was organized confused
+users when navigating the site.
+
+Today we’re excited to share a redesigned pkg.go.dev,
+which we hope will be clearer and more helpful.
+This blog post presents the highlights. For details,
+see [Go issue 41585](https://golang.org/issue/41585).
+
+## Consistent landing page for all paths
+
+The main change is that the pkg.go.dev/\<path> page has been reorganized
+around the idea of a path.
+A path represents a directory in a particular version of a module.
+Now, regardless of what’s in that directory,
+every path page will have the same layout,
+with the goal of making the experience consistently useful and predictable.
+
+<div class="image">
+<img src="pkgsite-redesign/path.png" width="800" height="513" alt="Landing page for cloud.google.com/go/storage" style="border: 1px solid black;">
+</div>
+
+The path page will display the README at that path if there is one.
+Previously, the overview tab only showed the README if present at the module root.
+This is one of many changes we’re making to place the most important information up front.
+
+## Documentation navigation
+
+The documentation section now displays an index along with a sidenav.
+This gives the ability to see the full package API,
+while having context as they are navigating the documentation section.
+There is also a new Jump To input box in the left sidenav,
+to search for identifiers.
+
+
+<div class="image">
+<img src="pkgsite-redesign/nav.png" width="800" height="530" alt="Jump To feature navigating net/http" style="border: 1px solid black;">
+</div>
+
+See [Go issue 41587](https://golang.org/issue/41587) for details on changes in the documentation section.
+
+## Metadata on main page
+
+The top bar on each page now shows additional metadata,
+such as each package’s “imports” and “imported by” counts.
+Banners also show information about the latest minor and major versions of a module.
+See [Go issue 41588](https://golang.org/issue/41588) for details.
+
+<div class="image">
+<img src="pkgsite-redesign/meta.png" width="800" height="145" alt="Header metadata for github.com/russross/blackfriday" style="border: 1px solid black;">
+</div>
+
+## Video Walkthrough
+
+Last week at [Google Open Source Live](https://opensourcelive.withgoogle.com/events/go),
+we presented a walkthrough of the new site experience in our talk,
+[Level Up: Go Package Discovery and Editor Tooling](https://www.youtube.com/watch?v=n7ayE29b7QA&feature=emb_logo).
+
+.iframe https://www.youtube.com/embed/n7ayE29b7QA 400 650
+
+## Feedback
+
+We’re excited to share this updated design with you.
+As always, please let us know what you think via the “Share Feedback”
+and “Report an Issue” links at the bottom of every page of the site.
+
+And if you’re interested in contributing to this project, pkg.go.dev is open source! Check out the
+[contribution guidelines](https://go.googlesource.com/pkgsite/+/refs/heads/master/CONTRIBUTING.md)
+to find out more.
+
diff --git a/content/pkgsite-redesign/meta.png b/content/pkgsite-redesign/meta.png
new file mode 100644
index 0000000..7999934
--- /dev/null
+++ b/content/pkgsite-redesign/meta.png
Binary files differ
diff --git a/content/pkgsite-redesign/nav.png b/content/pkgsite-redesign/nav.png
new file mode 100644
index 0000000..efdf372
--- /dev/null
+++ b/content/pkgsite-redesign/nav.png
Binary files differ
diff --git a/content/pkgsite-redesign/path.png b/content/pkgsite-redesign/path.png
new file mode 100644
index 0000000..3af7fba
--- /dev/null
+++ b/content/pkgsite-redesign/path.png
Binary files differ
