Pushup web framework
A server-side, page-oriented web framework for the Go programming language.
Pushup’s goal is to make it faster to develop and easier to maintain server-side web applications using Go.
Pushup is preview, pre-release software in early-stage development. It is not yet suitable for production use. Expect breaking changes.
Pushup example
^import "time"
^{
title := "Hello, from Pushup!"
}
<h1>^title</h1>
<p>The time is now ^time.Now().String().</p>
^if time.Now().Weekday() == time.Friday {
<p>It's Friday! Enjoy the start to your weekend.</p>
} ^else {
<p>Have a great day, we're glad you're here.</p>
}
File app/pages/hello.up → /hello URL path
Features
-
Page-oriented
Pushup’s .up files are self-contained units of web app development, gluing HTML & Go together with routing logic
-
File-based routing
Filesystem path names of Pushup pages map to URL paths, with dynamic escape hatches
-
World’s first ‟htmx-first” framework
Enhanced hypertext support via inline partials for better client-side interactivity with fewer JavaScript sit-ups
-
Compiled
Pushup apps compile to pure Go, built on the standard
net/http
package. Fast static binary executables for easy deployment. Easy to integrate into larger Go apps -
Hot reload dev mode
App is recompiled and reloaded in the browser while files change during development. This is fast thanks to the Go compiler
Getting started
-
Download Pushup - latest release v0.2 (Dec 2023)
Via Nix package manager:
nix-env -iA nixpkgs.pushup
- or as a flake github:adhocteam/pushup
Via Go:
go install github.com/adhocteam/pushup@latest
- Read the documentation
- Read the source & join the community