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/)
* [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/)
* [Aliaksandr Pliutau's Golang Blog](http://pliutau.com/)

## Portuguese

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

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