A set of blogs dedicated to Go.

NOTE: Please don't add individual blog entries to this page. Those belong in [articles](Articles) instead.

## English

* [The official Go Blog](https://blog.golang.org) - For in depth posts by the Go team
* [Gopher Academy Blog](http://blog.gopheracademy.com/)
* [Dave Cheney's Blog](http://dave.cheney.net)
  * [Dave Cheney's Resources for Go Programmers](http://dave.cheney.net/resources-for-new-go-programmers)
* [spf13's Go Blog](http://spf13.com/post/)
* [Katrina Owen's Blog](http://whipperstacker.com/)
* [Mat Ryer's Medium Blog](https://medium.com/@matryer)
* [Matt Aimonetti's Blog](http://matt.aimonetti.net/)
* [Marcio.io](http://marcio.io/)
* [whizdumb](http://whizdumb.me/)
* [Carlos Becker's Blog](http://carlosbecker.com/)
* [Ardan Studios Going Go](http://www.goinggo.net/)
* [The Golang Weekly](http://golangweekly.com/)
* [Alex Edward's Golang Posts](http://www.alexedwards.net/blog/category/golang)
* [GoLang Tutorials](http://golangtutorials.blogspot.com/)
* [Mathias Lafeldt's Blog](https://mlafeldt.github.io/)
* [Marcelo Magallon's Blog](http://blog.ksub.org/bytes/)
* [Mina Andrawos's Golang Posts](http://www.minaandrawos.com/category/golang-2/)

## Portuguese

* [Eduardo Nunes Pereira](https://medium.com/@eduardonunespereira)

## Spanish
* [Golang Argentina](https://golang.com.ar)