What does HackerNews think of buffalo?

Rapid Web Development w/ Go

Language: Go

#5 in Framework
#23 in Go
#13 in Go
#3 in Rails
#4 in Laravel
You should probably stop because this is not a Go-way. And you wan't find anything with "batteries" other than https://github.com/gobuffalo/buffalo and https://github.com/beego/beego

Haven't see anyone actually using them in production though.

Skip javascript entirely. Pynecone (https://pynecone.io/), htmx (https://htmx.org/), Vaadin (https://vaadin.com/), Buffalo (https://github.com/gobuffalo/buffalo) all exist and can help you avoid some of the mess that is web/JS development.
Every month or so I look around to see if there's a monolithic web framework in languages I'm interested that are effectively equivalents of Django, Rails, Laravel, etc. I've done a lot of non-webapp stuff with Go, for example, and would like to build full fledged webapps with a Django-like framework in Go. But nothing like that truly exists. I've found projects like Buffalo [0] that promise this monolithic experience, but they're still very much works in progress. Even Node lacks such a true monolithic web framework from what I can tell.

[0]: https://github.com/gobuffalo/buffalo

FWIW, I've found the Go standard library `net/http` to be reasonably productive. It's pretty well-designed and intuitive for me, but YMMV. I've observed that ramping up in it from a Python/flask background is relatively painless.

If you're willing to dive into the Go landscape, there are a few quality web frameworks available, ranging from the small highly-performant https://github.com/buaazp/fasthttprouter, to the more opinionated and feature-creepy https://github.com/gobuffalo/buffalo. I'd skim the selection, see what trade-offs they make, and pick the one that suits you best.

Gin [0] is a good place to start for Go web frameworks

Gorilla [1] is more of a toolkit, but very common and very useful

There's also Buffalo [2] for an opinionated kitchen sink included web framework.

As for SQL ORMs, sqlx [3] and gorm [4] seem to be the most popular ones. But really the `database/sql package` is probably all you need. As for drivers, here's a list [5]

[0] https://github.com/gin-gonic/gin

[1] http://www.gorillatoolkit.org/

[2] https://github.com/gobuffalo/buffalo

[3] https://github.com/jmoiron/sqlx

[4] https://github.com/jinzhu/gorm

[5] https://github.com/golang/go/wiki/SQLDrivers

I tried to do some Golang development on Windows using the Buffalo framework[0]. At first, I got started by just using the Windows-compatible Go distribution.

The CLI tool wouldn't install because sqlite was listed as a dependency and it had compilation issues. I spent around an hour trying to look at using cygwin or some other equivalent to get a semi-sane devtool setup before I gave up and turned to WSL.

To my chagrin, WSL now has to be installed through the Windows Store - Linux distributions are downloadable apps. Now, I had a local Windows account so every time I tried to install Ubuntu through the store I got "something happened on our end." I'm a bit slow so it took me a while to realize that I had to sign in with a Microsoft account to use the Windows app store. I had one laying around so I signed in installed Ubuntu.

Filled with hope, I popped into WSL's bash terminal and installed Go, Node, and the Buffalo CLI. However, each invocation of `buffalo dev` took several seconds to run. Like, ten to fifteen seconds. I became overwhelmed with frustration and installed Antergos into a virtual machine and just rolled with that. And everything worked.

I just... I dunno. It's cool that WSL exists but every time I try to use it... meh.

[0]: https://github.com/gobuffalo/buffalo

I've started using Echo[1] and it seems to provide most of what I'm looking for (routing, context, sessions, CSRF protection, form/json binding, etc). For templating, I'm using QuickTemplate[2] which creates statically generated templates, but Pongo2[3] and Jet[4] also look reasonable. sqlx[5], gorm[6], and sqlboiler[7] all seem reasonable for database access, depending on what your style is (sqlx being oriented toward manual statements, gorm being reflection-based orm-ish, and sqlboiler using go generate's code generation to make statically generated access for you).

If you don't want to piece things together yourself (and want a more Rails-like experience), Buffalo[8] is probably your best bet.

[1] https://echo.labstack.com/

[2] https://github.com/valyala/quicktemplate

[3] https://github.com/flosch/pongo2

[4] https://github.com/CloudyKit/jet

[5] https://github.com/jmoiron/sqlx

[6] https://github.com/jinzhu/gorm

[7] https://github.com/volatiletech/sqlboiler

[8] https://github.com/gobuffalo/buffalo

For APIs, I've used net/http and httprouter with great success. I've recently discovered Buffalo (https://github.com/gobuffalo/buffalo) which looks great for full-stack development but I have not used it for a production app.