Proprietary software lock-in

The company I work for is a combination ISP and consulting company, which puts us in a weird situation sometimes where we will be hosting someone’s web site, but also be responsible for designing and maintaining it for them (although I use the term “designing” loosely).

One of these web hosting customers recently requested a few minor changes to his site and today I found out that my boss originally built the site (and all the other sites he’s created) using Netobjects Fusion, which is a WYSIWYG HTML editor I last heard of around 1997 or so.

The major problem with creating a web site using this thing is that it stores all the site data in a proprietary binary format that is only converted to individual HTML pages when you “publish” the site using the software’s interface. Editing the code by hand means downloading a copy of the live site, making the necessary changes, and re-uploading the changed files, which will break compatibility with the editor. Once we do that once, we’ll have to make all future changes by hand. This is fine with me, except that this is a good-sized site full of a million nested tables, a bizarre directory structure, and the worst invalid HTML I’ve ever seen. Any site-wide changes, as opposed to minor changes on a single page, will be a major hassle.

The fact that my boss used this thing is actually pretty surprising. With the exception of our Windows desktops and our occasional use of MS Office, we use almost exclusively free, open source software, from our production systems to the web-based ticketing system and knowledge base we use internally. Even in our consulting work, we install Linux/Samba servers instead of the usual Windows file servers.

One of the (or, more likely, the only) benefits to using this type of web site builder, is that it keeps track of your site layout and navigation for you, so that you can change the navigation in one place and it will apply those changes across all pages in the site when you upload it. This kind of templating is trivial to accomplish using server-side using scripting or SSI, but making a break from this system in favor of hand-editing will require converting the entire site, an extremely time-consuming process. So what to do? Deal with the devil we’ve already got, or the headaches of re-coding the half dozen or so sites built using this system?