Build powerful web applications in Go Faster

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 Web Framework Logo

Why Choose Nova?

Built around Go's Standard Library

Nova leverages Go's robust standard library while abstracting away repetitive boilerplate.

🏗

Built-in Project Scaffolding

Generate project structure and starter code instantly for a seamless development experience.

🛠️

Streamlined REST API Development

Simplify routing, middleware, and request handling to jumpstart your API.

💻

CLI Tooling Included

Manage your application with an intuitive CLI that complements your REST API.

🗃

Database Management

Integrated support for database connections and migrations to simplify database management.

🚧

Validation & OpenAPI

Validate incoming requests to ensure data integrity together with OpenAPI integration.

Get Started Quickly

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)
	}
}

Ready to Build Better Go WebApps?

Explore the repository or dive into the documentation to get started with Nova.