Convention earns speed.
Controllers, actions, views, and helpers have predictable names. The obvious path is paved, but the code remains ordinary Go.
A web framework that feels like Go
GoLazy brings controllers, views, services, routes, and embedded assets together with conventions you can learn in an afternoon.
// MIT licensed sample code.
// app/controllers/posts/posts_controller.go
type PostsController struct {
controllers.BaseController
posts *postservice.Service
}
func (c *PostsController) Index(
_ http.ResponseWriter,
_ *http.Request,
) error {
c.Set("title", "Posts")
c.Set("posts", c.posts.List())
return nil
}
MIT licensed. Convention on the outside. Plain Go underneath.
01 / Why GoLazy
GoLazy aims for the development speed of a convention-first web framework without asking your application to stop feeling like Go. Start from one file, keep the standard library close, and split the app only when the shape earns it.
Controllers, actions, views, and helpers have predictable names. The obvious path is paved, but the code remains ordinary Go.
Use the full app layout for bigger systems, or keep a small app in one file. Go packages let you grow without ceremony.
Stable conventions give human teammates and coding agents clear places to inspect, change, and extend the application.
02 / Everything in its place
app/controllers
Actions set view data, coordinate services, and render a response through a shared application controller.
app/views
Each controller owns a view directory. Rendered content flows through layouts for a consistent shell.
services
Reusable application behavior lives outside HTTP concerns and is initialized once in the application context.
golazy.dev
Routing, controller primitives, rendering, and fallbacks live in small packages published as the standalone GoLazy framework.
03 / From route to response
04 / Get started
Install the CLI, generate a new app, and start shaping your own project structure from the sample template.
$ curl -fsSL https://golazy.dev/install.sh | sh
$ lazy new github.com/user/my_first_lazy_app
GoLazy is being built in the open as a practical experiment in convention-first Go development.
Build the one-file app