Pushup - Web Framework for Go

I was reading about a new web framework called Pushup. It sounds like PHP for Go.

Pushup pages are a combination of HTML and Go, with a syntax that switches from HTML to Go for the special logic areas, such as loop over an array, list, a database connection, or calling an API. Then it’s condensed into one page, a file format called a .up file, and then Pushup compiles that into pure Go, which can be turned onto a web server and hosted.

There’s a place for server-side apps that don’t need the interactivity of JavaScript on the browser…We are building Pushup to make those kinds of sites easier.

The project home describes Pushup as “preview, pre-release software in early-stage development”. But I think it is worth taking a look at and giving feedback if you like the idea and would find Pushup useful.

1 Like

It looks like ColdFusion, made with a modern, open stack (Go). I like it.

However:

  • Is it in active development? The last update was in February. I read an interview with Paul Smith (the creator) in April, but no code changes over the last four months.
  • Does it truly eliminate the opportunity to use client-side JavaScript? I use Go with HTML templates, and I understand the power of mixed-in logic, file system based routing and partials/components. But if I have to give us client-side JavaScript, that is a non-starter.

I’m not sure if Pushup is being actively developed.

I assume this is a framework that supports projects without client-side JavaScript and not one that forbids JavaScript.

I just thought Pushup was interesting because it didn’t try to cram JavaScript and WebAssembly into everything. It reminded me of a small project I built in PHP which is to say Pushup seemed like an easy way to build simple web pages.

If pre-alpha server-side scripting is interesting, there is also a PHP superset: PXP.

Mike, I agree with both your comments: 1) Pushup seems to be in hibernation. 2) It does not prohibit JavaScript.

Oh well: I will use some of the ideas and mix net/http, templates, and htmx with Go.