Member-only story
Go Buffalo is a mess
In the last couple of months I’ve decided to use Go to build a new background service, with a RESTful API to control it (at this point it’s around 90% complete, but it’s already in my GitHub repo if you’re curious!). Despite a few bumps at the beginning, picking up the language was relatively easy; choosing a web framework, however, not so much.
Compared with what’s available to JavaScript developers, the choice of frameworks for Go is quite limited. Most importantly, there isn’t yet something “standard” that all or most developers use. I followed some advice from friends and colleagues and decided to go with Buffalo.
I had high hopes and high expectations. With many high-profile gophers advocating for Buffalo too, how would I not?
Turns out: all that glitters is not gold.
In short: Buffalo is a sort of a mess. Two months into the development, when the project was already in an almost complete state, I scrapped Buffalo and replaced it with the far more mature Gin.
My experience
Some thoughts from my experience building a RESTful API with Buffalo:
The documentation is terrible
…with lots of things missing or very poorly documented. For example, getting Pop (the built-in ORM to connect to the database, a rather critical component) to work was a painful process. The best documentation for Pop was actually an unofficial book, which was not always up to date either.