Login
You are here: Home Zadig

Your preferred language is set to English (click on another language to change it).

The Zadig collaborative web management system

by Antonis Christofides — last modified 2011-02-21 15:21

Zadig is a system for collaborative management of web sites (also called "content management system", but the latter is a misnomer). Features:

  • Free software, available under the GNU Affero General Public License v. 3.0.
  • Strong foundations. Zadig is written with Python and Django, and it is compatible with any RDBMS supported by Django (however it has been tested only with two: SQLite, which I use for development, and PostgreSQL, for production).
  • Documentation. I must  be one of the most forgetful persons. If I write a function today, I don't remember it tomorrow. This is why, when it comes to documentation, I am a perfectionist (with deadlines).  Take a look.
  • Permissions and workflows. I'm using Zadig at http://hydro.ntua.gr/, where I give people permissions to edit different parts of the site.
  • Multilinguality. Take a look at my web pages: they are in English and in Greek. Some pages are in both languages, some are only in one. Switch from English to Greek, and the navigation (the menu) will show the Greek pages, and the English that have no Greek version. If you don't like that, you can separate languages completely. It also works with three, or four, or name it, languages.
  • Extensibility. The essential object types are pages, images, files, and external links. (There are no folders, "default folder views", or any such unintuitive stuff; you just create a page, and it also acts as a container of other objects.) You can create applications that define more object types; recently I created a blog application (still rudimentary) which adds blogs and blog posts, for example. Little bits of functionality around the page, such as the navigation, breadcrumbs, language selector, login/logout link, and so on, are special cases of Django template tags called applets; recently I added a Zadig application that adds a "page comments" applet. Because of the extensive documentation, adding such applications is trivial.
  • Quality. The code for the core of Zadig has been written and rewritten and rewritten. I've taken care to do all important things at the core, and to do them correctly. Most notably, object permissions are checked at the core, transparently for the higher level developer.

Zadig is still in an early development stage; many features are missing, and there are quite a few bugs. However, I'm already using it for production on a few web sites. You can download from bitbucket.

Important: If you use Zadig for production, or any kind of purpose other than pure testing, it is imperative that you let me know before you do it. Although I use South for database changes, occasionally I still make backwards incompatible database changes (not migratable with South). If you have let me know, I will warn you and tell you how to update.

For questions, bug reports, patches, etc., contact me at anthony@itia.ntua.gr. I haven't set up a mailing list or bug tracker yet, because I'm currently alone and I don't need them, but when we become three or more we'll set them up.