They say necessity is the mother of all invention. I'm going to add an addendum to that. Hatred works too!
Backpage grew out of a frustration with repetitive tasks and a deep, vocal dislike for a mandatory three column layout. Most modern websites need templating, a data access ability and the facility to be extended in ways and means that are often impossible to divine. When development work on version one of Backpage began, few sites used a CMS (and most balked at the acronym) and those that did shared a very common layout.
Templating typically took one of these three routes:
- Three columns, like it or lump it
- A XSLT (or similar) templating language
- Wrap-around server side includes that didn't apply a predefined page structure
On paper the XML/XSLT route is a marriage made in heaven. But this is real life. The XSLT route is nothing but troublesome, its promised benefits of flexibility and strictness are quickly lost under a mire of error prone and unintuitive programming with an undesired server-side overhead. I'm unreliably told most designers aren't programmers.
The SSL wrap-around include approach works well, but it isn't a natural environment for a designer and when done wrong (I'm looking at you WordPress) it just makes matters much much worse. Backpage would use this method for a time, but we couldn't help but feel, like the other approaches, it really sucked! ... So we continued to caste around for a superior alternative.
We took very deep peeks into the various templating engines out there, and while most had immense merit, we felt they were all a little too complicated for their own good- certainly nothing you'd open up to the less tech savy. Finally we came to the conclusion that everything was awful and we'd have to built our own!
- Ability to use ANY tool to create a template
- Support for xHTML
- Support multiple designs simultaneously
- Not enforce any design methodology on a designer
- Embrace best standards
- Reduced maintenance overhead
- Be simple! ... ish!
The result met all the requirements and birthed another Backpage feature: BpTags. The templating engine makes no assumptions or demands, allowing a designer to create a layout in the environment they are most comfortable with, yet can support the craziest of designs (I've yet to see a layout that can't be achieved!). Coupled with BpTags, complex, data driven designs became a piece of cake! And we like cake!
A full rundown on Backpage templating is available in our 'skins' support area.