Announcing The New Go Store
18 Jul 2019

Cassandra Salisbury

* Introduction

We are excited to launch the new [[https://go-store.io][Go official swag and merch store]] shipping worldwide.
We are even more excited to announce that *100%*of*the*proceeds* from the Go store go directly to GoBridge.
[[https://github.com/gobridge/about-us][GoBridge]] is a non-profit organization focused on building bridges to educate underrepresented groups by teaching technical skills and fostering diversity in the Go community.

.image store/gophers.jpg

At the [[https://go-store.io][*Go*store*]] you’ll find our beloved gopher plushies and vinyls as well as new merchandise.
Visit the store for 20% off with code *Gopher20* through Sunday, July 21st at 11:59 PM PST.

We will be regularly adding stock on each any every color and item in the [[https://go-store.io][store]].
If we are out of stock when you go to place an order, check back again soon.
Follow the [[https://twitter.com/golang][Twitter account]] for updates, we plan on adding new goodies for all our Go fans out there, so keep an eye out!

If you find any issues, please [[https://github.com/golang/go/issues/new?title=GoStore:][submit an issue prefixed with “GoStore”]] and we will aim to remedy it as soon as we can.

Happy shopping!

