Now a brand new year has rolled in, I find myself taking stock of where I’m at as a developer, and frankly I’m feeling pretty frustrated! Other than working an Electron project last year at my day job, I’ve been using exclusively old technologies for some time. That takes a toll. It’s not so much just working on the “cool new stuff” as is being aware that there are simple better ways to do what I’m doing.

Last year the majority of my time was spent working on the Form Tools 3 upgrade. It’s now finally approaching the end of the alpha phase with all modules, themes and the core having been converted to object-oriented, PHP7-compatible code. That’s pretty great, and in some respects I already trust it more than Form Tools 2.

Nevertheless, it still doesn’t use the most current of technologies. I’m deliberately supporting as far back as PHP 5.3 to maximize compatibility with people’s server environments, which of course prohibits using any of the more modern features of the language. And client-side it’s positively archaic: it still uses jQuery and per-page object namespacing to provide interactivity. Don’t get me wrong, I’m not knocking it: it’s served its purpose well. But holy cow do I ever need to do something more modern to keep me engaged.

So! Here’s the plan for the coming year. For the first couple of months I’m going to continue fighting the good fight to get Form Tools out the door. Once v3 is the official build I’m going to start converting parts of the UI to React/Redux, starting with a brand new in-app upgrade system. I learned my lesson with FT3 – a massive rewrite of an application of that size just isn’t feasible. From here on out, the approach will be incremental updates.

The current upgrade process relies on the user’s installation passing details of what they have installed to the Form Tools website, which then intelligently constructs a new package of available components with the appropriate compatibilities. The plan is to do two things here:

  1. phase out the website as the key player. The custom CMS powering the Form Tools website will continue to be the single source of truth for available component versions and compatibilities, but instead it’ll now simply provide a REST feed of the information which can be accessed by the individual installation.
  2. have the Form Tools installations themselves download the source code directly from the github repos and install/upgrade the components directly. No more manual downloading of content from the website and FTP’ing it to the server.

The backend of Form Tools will never be cutting edge, but the front-end has far more room to modernize. This is what I’m going to be focusing on. I think it’s a sensible way to stay sane. ;)