I use embed to embed all assets in the binary itself. "go build" and then "scp" the binary to the production server and "systemctl restart appserver"
Regarding the original question we use fiber.io for a few systems and have loved it’s capabilities and performance.
How do you like the template package ? Can you compare it to Jinja/Twig ?
Overall, I find Go's template system to be a bit clunky but it certainly gets the job done. The template system is fairly minimal so it feels mostly like working with HTML, but it gives you a few tools to use.. mainly passing data down the template/sub-templates and the ability to define template functions/helpers. Minimal... but it's all you really need.
I converted my business from Rails 5 to Go about a year ago and the ERB was fairly straight forward to convert to Go's template system.. it felt like I was mostly converting <% .. %> to {{ .. }} and changing <%= render ... %> to {{ template ... }}
For the database I use Postgresql with the standard library's database/sql package (using lib/pq as the driver).
For scheduled emails and tasks, I store them in Postgres and I have a task that is run through my server binary every few hours (ex: "server --task scheduled-tasks").
Took less than a month to start with and integrate and it is a joy to use.
A couple of us are working on Bud (http://github.com/livebud/bud), which aims to be a full-stack web framework for Go, similar to Laravel or Rails.
The project is getting better very quickly! If you're working on a greenfield project and want more out of the box, I'd encourage you to give Bud a try!
I’ve built all of that in Go and it was probably two months of work…
This is not to discourage you, it would be absolutely terrific to have a proper full-stack framework in Go! And just as an aside from what I see in laravel, if making part of the framework commercial is a way to give the project a boost I think it’d be worth it!
Tailwind also comes to mind following the same model. Full open source but if you want a working starter template, payments, teams, subscriptions, etc… I’d pay for that!
Compare that to Laravel for example: https://laravel.com/
Kidding aside, I didn't think that full-fledged web frameworks (akin to Ruby-on-Rails, Flask, Spring, etc) were really a thing with Go - or at least not a super popular thing. And you should be able to pretty easily recreate the functionality of a Tomcat-like web server using the http/net library.^2
[1]: https://pkg.go.dev/net/http [2]: https://go.dev/doc/articles/wiki/
In particular, my team is using it in conjunction with generated code https://deliveroo.engineering/2022/06/27/openapi-design-firs...
[1] https://pkg.go.dev/database/sql [2] https://pkg.go.dev/time [3] https://pkg.go.dev/net/smtp [4] https://pkg.go.dev/text/template [3]