Nova is a flexible framework that simplifies creating both RESTful APIs and web UIs. It extends Go's standard library with sensible defaults and helper utilities for components like routing, middleware, OpenAPI, and HTML templating, minimizing decision fatique. Making it easier than ever to build powerful web applications in Go.
Nova leverages Go's robust standard library while abstracting away repetitive boilerplate.
Generate project structure and starter code instantly for a seamless development experience.
Simplify routing, middleware, and request handling to jumpstart your API.
Manage your application with an intuitive CLI that complements your REST API.
Integrated support for database connections and migrations to simplify database management.
Validate incoming requests to ensure data integrity together with OpenAPI integration.
func main() {
cli, err := nova.NewCLI(&nova.CLI{
Name: "api",
Version: "0.0.1",
Description: "Hello Nova",
Action: func(ctx *nova.Context) error {
router := nova.NewRouter()
router.Get("/", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hello, Nova!"))
})
if err := nova.Serve(ctx, router); err != nil {
return fmt.Errorf("failed to start server: %s", err)
}
return nil
},
})
if err != nil {
log.Fatalf("Error initializing CLI: %v", err)
}
if err := cli.Run(os.Args); err != nil {
log.Fatalf("Error running CLI: %v", err)
}
}
Explore the repository or dive into the documentation to get started with Nova.