# Announcing The New Go Store
18 Jul 2019
Summary: Unfortunately, the Go store is offline.

Cassandra Salisbury

##

**October 1, 2019, Update:** _The Go Store is currently offline._
_We are sorry for any inconvenience._
_We will update this post with any status changes._

We are excited to launch the new 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.
[GoBridge](https://github.com/gobridge/about-us) 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 **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 plan on adding stock to current items and bringing on new ones to the store.
If we are out of stock when you go to place an order, check back again soon.
Follow the [Twitter account](https://twitter.com/golang) for updates, we plan on adding new goodies for all our Go fans out there, so keep an eye out!

Happy shopping!
