Re-upping WebWebXNG

So it’s been a minute since I did any serious work on WebWebXNG.

Initially, I decided that the easiest way forward was “translate this old CGI code into modern web code”. And up to a point, that was a good way to go. But I got to the point where I was trying to make the rubber meet the road, and the intertwining of templating and code in the old version was making me stall out.

I’ve had a breather, working on other projects, and the world has moved on and brought me some new things. One in particular is htmx.

The htmx library works a whole lot more like the old CGI world did, just better. Everything is capable of interacting with the user, all of the HTTP verbs are available, and interaction is by exchanging chunks of HTML. You don’t convert to JSON, then convert back to HTML. This kind of logic definitely fits better with the concept of WebWebX as-it-was.

Also, Perl project management has definitely changed — and improved. I did like Dist::Zilla, but it’s definitely a heavyweight solution. In the meantime, Minilla has appeared, and it fits incredibly well into the model I want to use to manage the code:

  • Your module is Pure Perl, and files are stored in lib.
  • Your executable file is in script directory, if there is one.
  • Your dist sharedirs are in share, if you have any.
  • Your module is maintained with Git and git ls-files matches with what you will release.
  • Your module has a static list of prerequisites that can be described in a cpanfile.
  • Your module has a Changes file.
  • You want to install via cpanm.

I do have a working page storage engine, which is good, but the interaction engine is definitely nowhere. I’m coming back to the project with fresh eyes, and I’m going to redesign it top-to-bottom to use htmx for all the backend interaction.

Looking forward to this, and the next iteration of WebWebXNG starts now.

Reply