Why you should choose zoglair

First things first: zoglair loves web professionals (designers and/or developers), that is, people who make their living by building web sites for their clients. A big part of its design philosophy targets them, by providing convenient and time saving solutions to common problems in this business.

That is not to say that zoglair is not suitable for end users. It is just to emphasize the fact that some of its great benefits can be better understood and appreciated by web professionals:

Which is what, is left as an exercise for the reader!

Easy as ABC

You will be surprised by the simplicity of zoglair's interface. The first time you see its control panel, you may think it's a toy CMS. Streamlined, without the abundance of choices, options and fancy icons one usually sees in other systems. However, this is clearly a case where looks are deceiving... Its power is there, waiting to be explored.

The nicest thing about zoglair's control panel (~backend) is the fact that it does not really exist... It is just a menu under a different skin! You see, in zoglair, the front and back ends are not two separate and discrete code bases. They may appear as such, as default, but the bottom line is that not a single folder, file or function (apart from the menu) in the whole zoglair source code is for “backend only” use. This results in tremendous code savings, complete lack of redundancy and - most importantly - power at you fingertips: Just put a link or button wherever you want to do whatever. Like editing the current page, adding a new article, handling your media, etc. If you combine this freedom with zoglair's ability to show content (any content) in a popup window, you realize that you don't even have to leave the page you are looking at, to do things that otherwise would require a lot of clicks and context switching!

Born to be Wide

A fundamental requirement of zoglair's design was to be flexible enough to support the most popular web applications right from its core, without the need of 3rd party extensions that may or may not interfere with its logic flow. Having a core that is not tight to a specific content type (article / product / topic / etc), but instead is able to handle any of them, simultaneously and under a common interface, offers the following advantages:

Seamless Integration
It is more than possible that you - at least once - have visited a commercial site with a forum section that looks and feels completely strange, and out of sync. There are even sites that require separate logins for separate sections! This is happening because the vast majority of forum scripts are designed to handle forums and if someone wants something more than a forum, then suddenly this is becoming an issue. One must find a way to bridge / integrate two or most systems in order to get the desired functionality.
Perhaps, you find a script today that fulfills your needs 100%, but what about tomorrow? Let us say, for example, that you are after a good shopping cart and you do not care - at the moment - for community features. Or you want a good forum script and you are not thinking about a nice portal to make your site stand out. But what if these needs arise in the future? Wouldn't it be much better to have extra functionality as an option even if you are never going to use it? Especially if this extra functionality takes almost zero extra resources?
With zoglair you do not have to worry about such things. Out of the box, it knows about most common and popular content types. Should you need a new content type, you just define and start using it... Dead simple!
Worry-free Upgrade Path
When you start with a typical CMS and rely on some major 3rd party plugins (or applications) to get your desired basic functionality, suddenly you may come to a point where upgrading either of them may lead to compatibility problems. All extendable systems have this danger, zoglair is no exception, but there is a difference between major components that define your site, and minor ones that improve it. To say in other words, having a CMS do stuff that it was not designed to do, is like driving your sports car to a bumpy road; sooner or later, it is going to break!

Thin, Fit and Fast

Bloatware is a common term for a software that uses disproportional amounts of resources (disk space, memory, CPU time) to its functionality. In other words, if a software can be rewritten so that while functionality remains the same (or not noticeable less), needed resources are greatly reduced, then that software is bloated.

Since bloated software has a bigger codebase and requires more resources than it should, it is:

  • usually slower
  • more expensive to run and maintain
  • subject to increased failures
  • less easy to refactor and thus cope with future evolution
  • more difficult to comprehend (slow learning curve), for both users and developers

Zoglair is the definition of anti-bloatware, should this term exists, despite its multi-personality nature. It is a fine example of the KISS and DRY principles. Please, have a look at our Zoglair vs Others article to get an idea of how it measures against some of the most popular solutions.

Multi-Domain Support

A single zoglair installation can power multiple sites, just as a single web server can drive multiple domains via its virtual hosting interface. Each site works with different data and is completely separated from the others. This has a tremendous advantage in maintenance as you not only control your sites from a common interface, but also work with and upgrade a single codebase and as a result all of your sites update automagically! You can even choose the scope of installed extensions (addons): you can make them available in as many sites you want (with a single physical copy, as in zoglair itself).

Integrated Backup

As strange as it seems, backup is not a standard offering in the CMS world, although it should. Administrators all over the world are accustomed to using external programs for their backup needs, not always without problems, especially when data are getting big.

In zoglair, backup is no longer a concern, no matter how big your database is. And, of course, what good it would be without a restore operation, which is also available. But that's not enough... We take it a bit further by offering a synchronization feature that allows you to have a local copy of your site's data in perfect sync with minimum fuss. This is a valuable tool for media oriented sites which can get really huge and traditional full backups are just too time-consuming to be practically useful.

Self Upgrades

Almost every desktop application nowadays is able to notify users of new upgrades and - after they confirm - upgrade themselves automatically, without further interaction. Unfortunately, this is almost not happening in the world of web. Traditionally, one needs to download an archive from the vendor's web site, unzip it, transfer it (via ftp) on one's web site and possibly run an upgrade script. After a better-safe-than-sorry backup and site shutdown, so no visitor interferes with the process. Additionally, one should make sure that the new upgrade does not create any incompatibility issues with any site modifications. So, upgrading a web application is not always a seamless and risk-free procedure.

Zoglair follows the desktop paradigm for upgrading itself. Not only there will be no need to download/upload anything, but also in case of a significant change in the codebase and/or data schema that could cause incompatibilities, the user is warned. Additionally, a migration script will take care of upgrading 3rd party additions and modifications, if possible!

Innovative Cache Mechanism

Cache is an intermediate mechanism, between a client and a server (in their broader sense), which transparently stores data to make them available faster, next time these data are requested.

Generally speaking, a cache is a good thing and any CMS can benefit from its presence. It doesn't matter if it is a slow CMS or a fast one. There will always be requests that take time to be fulfilled, such as long run-time calculations and full table scan queries.

However, caches have a native flaw (besides their redundant storage, which we choose to trade for speed): data freshness. You see, an item cannot be cached forever because it is a dynamic item (if it wasn't then there would be no need for a cache, in the first place). “Dynamic” means it changes over time, that is why in all cache mechanisms, data are stored along with a life span or expiration time. When data are requested, the cache mechanism looks at their time stamp and decides whether it is fresh or old. If it is fresh, then the cached copy is served and we have a cache hit. If it is old (or dirty) then a fresh copy is fetched from the server and re-cached. This is called a cache miss.

So, when the life span is set too low, there are a lot of cache misses and unnecessary server processing. When the life span is set too high, there are a lot of cache hits but the data are old news! Developers and administrators have no way to know the exact time in the future where data will change. They arbitrarily set an item's expiration time based on how frequently this item is requested and how “expensive” is for their system to generate it.

Well, with zoglair's cache there is no guessing... Besides scalar numeric values, it accepts data model events as life spans. So, we simply cache data “until they change”!

Last but not Least

The following properties may also be of interest to you:

Attention to detail
If you take a look at a zoglair generated page source, you will notice the consistent indentation, level build up and white-space usage, just like it was handwritten! And yet, this is machine generated... Now, if we put ourselves in such a trouble, to properly indent something that makes absolutely no difference to the browser, just imagine our attention to more significant issues...
Semantic and valid markup
Zoglair tolerates zero errors when it comes to validating its output, both html and CSS. The only acceptable color in W3C Validator's result is green!
Read-only database mode
Although zoglair supports more than one way to close a site for maintenance, it can also put it in a special mode where database writes are blocked but reads are allowed. Why stop your visitors from reading while maintaining your site?
No useless links
Have you ever clicked on a link, only to get rewarded with an “Access denied...” or similar error page? If yes, then perhaps you may have wondered why that link existed in the first place... Well, we find it unreasonable too, that's why zoglair takes the extra mile to not generate such links. If a user is not allowed to do something then there will be no link to that something, neither. Both, users and search engines will appreciate it!
Single point of output
This is something that only PHP developers will understand and hopefully appreciate: in zoglair, the whole page is constructed piece by piece, through various templates, in a single string. And that string is output at a single point in the codebase. In other words, there is only one echo...

Zoglair in Action

FacebookTwitterVimeoYou TubeRSSsd
(C) Nick B. Cassos - All Rights Reserved
powered by zoglair
page generated in 53ms (14 queries, 20ms)