Build modern web apps with GoWeb

GoWeb pairs the speed and simplicity of Go with a flexible templating language and a rich set of built-in functions—so you can move from idea to production fast.

// main.go
    package main

    import (
      "net/http"
    )

    func main() {
      // Serve GoWeb templates & static files
      http.Handle("/", http.FileServer(http.Dir("./public")))
      http.ListenAndServe(":8080", nil)
    }

    // In your template:
    // http::get("https://api.example.com/status")
    //  string::escape_html(user.name)
    

Tiny server + powerful templates. Deploy as a single binary.

Why GoWeb?

Fast & Efficient

Built on Go’s concurrency and minimal overhead—great latency, even under load.

Clean Templating

A concise language that connects backend logic to dynamic pages with ease.

Batteries Included

Math, strings, HTTP, DB access, files, and more—ready out of the box.

Simple Deployment

Ship a single binary and static assets. Run anywhere Go runs.

Flexible Architecture

Keep common tasks simple, while staying out of your way for advanced use cases.

Scales with Teams

Clear separation of concerns makes codebases easier to grow and maintain.

Getting Started

  1. Install Go (1.21+) and fetch GoWeb.
  2. Create a project with public/ for templates and assets.
  3. Start a tiny HTTP server (see the snippet above).
  4. Use GoWeb’s built-in functions in your templates to connect to APIs and databases.
  5. Compile and deploy your single binary.

Hello, GoWeb (template)

<!doctype html>
    <html>
      <body>
        <h1>Hello, string::upper(user.name) !</h1>
        <p>Server time: time::now() </p>
      </body>
    </html>

Ready to explore?

Dive into the language, built-in functions, and real-world examples. Build something fast—and keep it maintainable.