Scaffold a new Go web app with routing, database, and server-side templates already connected using a single Buffalo command.
Build a REST API with database-backed models using Buffalo's Pop ORM without writing raw SQL.
Generate and run database migrations with Buffalo's Soda CLI to safely update your database schema across environments.
Deploy a full-stack Go web application with server-side HTML rendering and front-end asset bundling.
Requires Go modules and a running database (PostgreSQL, MySQL, or SQLite) with connection details configured before generating your first model.
Buffalo is a web development framework for the Go programming language, designed to help developers build full web applications without spending a lot of time on boilerplate setup. The goal is to give you a project that is already wired together, front-end and back-end, so you can start writing the parts specific to your application rather than configuring infrastructure. When you start a new Buffalo project, it sets up the directory structure, routing, database connectivity, templating, and front-end asset handling as a connected package from the beginning. This is different from assembling these pieces yourself using separate libraries. The framing is similar in spirit to Rails for Ruby, in that the framework makes strong choices about how a project should be organized so you spend less time making decisions about plumbing. Under the hood, Buffalo stitches together several well-regarded Go libraries. Routing is handled by Gorilla Mux. Templating uses a package called Plush, which the Buffalo team chose over Go's built-in template system for being more flexible to work with. Database access uses Pop, a separate Buffalo project that provides an ORM (a way to interact with databases using Go code rather than raw SQL) and a command-line tool called Soda. Buffalo requires Go modules and officially supports the two most recent versions of Go. The current stable release is version 1. Documentation, tutorials, and getting-started guides are hosted on the project's own website rather than in the repository itself. Contributions are welcomed. The project asks that contributors open an issue before writing a pull request so the team can confirm the approach makes sense. The community is active on a Slack channel dedicated to Buffalo and on Stack Overflow. GitHub issues are reserved for bug reports and feature requests rather than questions.
← gobuffalo on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.