A Go web development eco-system, designed to make the life of a Go web developer easier.
Latest release: 0.12.0
Requires Go 1.8.1+
Use Buffalo at work? Ask your manager or marketing team if they’d help support our project.
Buffalo uses Gorilla toolkit to manage routes, sessions, cookies... There might be faster routers out there, but this one is definitely the most powerful!
Write your templates with Plush, using a Rails-like syntax. Extend its features using custom helpers.
If you don't like it, you can use
html/template or even bring your own!
Writing a web application module always begins with the same tasks. Buffalo provides you a simple toolbox, the
buffalo command, to generate many parts of your app and run usual tasks.
Extend the toolbox with plugins, using the language you want!
Since testing can be a boring task, Buffalo helps you to define test suites. Action, resource, model generators create test templates for the code you just generated.
You can run them all using a simple command from the toolbox.
Hot Code Reload
Code, save, refresh. Use the
buffalo dev command to rebuild your app, from backend to frontend, and just see the changes live!
Frontend pipeline Optional
Use the Webpack-generated configuration to build your frontend assets, so you can optimize both backend and frontend.
Models / ORM Optional
Deep integration with pop provides a simple way to handle database and common related tasks.
Supported databases: MySQL/ MariaDB, PostgreSQL, CockroachDB, SQLite.
Tasks / Background Workers Optional
If you're familiar with Rake tasks from Ruby, you'll be right at home using Grift. Seeding a database, running a cleaning job are now at hand!
Running background tasks are easy too, using the Background Workers.