Zine, another Python blogging engine
Published: February 10, 2009Tags: python zine cherryblosxom
I'm a bit late in blogging about this, but last month saw the release of Zine, a blog engine written in Python and in the spirit of WordPress - i.e. having a user-friendly web interface, nice looking themes, a lot of plugins, etc. It is the only Python blog engine that I know of in this style. These are very early days for the project, but already it looks pretty impressive and I have to admit I am tempted to start using it instead of investing more effort in CherryBlosxom.
Where CherryBlosxom uses CherryPy to handle the HTTP side of things, Zine uses Werkzeug (which, if I recall correctly from my quick peek when it was released, is actually even lighter and simpler than CherryPy). Where CherryBlosxom uses Cheetah for its templating, Zine uses Jinja (which I've never really looked at before). Where CherryBlosxom keeps everything on the filesystem, Zine uses SQLAlchemy (which I've never used but have consistently heard very high praise for) to store entries in MySQL, PostgreSQL or SQLite. The fact that it works with any of these three major database engines gives it a good advantage over WordPress, which only works on MySQL.
I don't really see Zine as competition for CherryBlosxom as such, since they are both striving to fill extremely different ecological niches. I am sure that Zine will appeal to people the most and if Zine only gets better than how it looks now I expect that it won't be too long before it is the preferred blog engine for Pythonistas, since it will be able to do anything WordPress can do just as well - and perhaps more, perhaps better. Nevertheless, I know that at first glance the two are going to look like their in competition by virtue of both being blog engines in Python (of which there are surprisingly few), so the release of Zine is somewhat motivating to put more effort into CherryBlosxom.
I'd like to put some proper, intelligent caching functionality into CherryBlosxom - so that GETs of entries or entry lists are cached (i.e. the filesystem isn't hit to get the entry text each time) but as soon as someone comments on the entry the cache is invalidated (so that the next GET does hit the filesystem and pick up the new comment along the way). I'd also like to write some command line tools to make using CherryBlosxom easier, so that people aren't directly writing files in their entries directory, and to automate things like spell checking, etc - much like the old setup I had for PyBlosxom, discussed here. Perhaps I'll release CherryBlosxom 0.2 with some steps in this direction (oh, and RSS/Atom feeds, of course) sometime soon.