this is part of as days pass by, by Stuart Langridge

Vellum is a server-hosted application to run weblogs for you. It's like MovableType or b2, in that it's hosted on your web server. And it's written in Python.

Note that Vellum has been abandoned for some time now. If you want to take it over, let me know.

downloads · documentation · requirements · plugins · why use vellum?


The latest version of Vellum is 1.0a5. The "a" in there stands for "alpha", and it's there for a reason; be prepared for having to do a little tweaking to get it working (although ideally you won't have to). Older releases are available in the archive.


Documentation is included in the downloadable package, but you can also browse it online. Note that the documentation at the moment is startlingly incomplete.


You need Python; Vellum has been tested with 2.1, and should work fine with 2.2 or greater. You also need a webserver, and the ability to run CGIs on it. Vellum has only been tested with Apache 1.3. You do not need any database software. Vellum should work with a stock Python distribution.


Plugins are the thing that makes Vellum most customisable. Some are available for download from here. To use a plugin with your Vellum weblog, simply drop the plugin file into your vellum/vellum/plugins directory. (For plugins that are zip files, unzip them first and drop the .py file into your plugins directory; the zip file will probably contain some helpful documentation). [Please note that, at this alpha stage, the provided plugins are a bit undocumented; certainly a few of them will require you to customise your templates to take advantage of them. Documentation is forthcoming.]

This plugin makes your weblog send an XML-RPC ping to when you post a new entry, allowing the world to know that you've updated. [If you're using Python 2.1, you'll need the Python XML-RPC library for this; download and drop it in your plugins directory.] [Download]
This plugin implements Pingback, which notifies other Pingback-supporting weblogs that you're linking to them. This plugin requires the Audience plugin to work. [If you're using Python 2.1, you'll need the Python XML-RPC library for this; download and drop it in your plugins directory.] [Download]
Allow users to make comments on your weblog. Requires the Audience plugin. [Download]
Add categories to your posts; you can choose a category for each post and then get that in your templates. [Download]
The Audience plugin doesn't do anything by itself. Instead, it's an infrastructure; it provides a standard type for plugins to build on. The standard type in this case is "a response to one of your entries". That response might be a pingback or trackback from another weblog, a comment that someone types in using a form, or anything else you can think of. It's required by a few other plugins, such as Pingback and Comments. [Download]
Enter text in a structured way. You can enter text using a subset of Dean Allen's Textile routine when creating a new entry. [Download]
Miss your handy "Post to my blog" bookmarklet? Just drop this plugin into your plugins directory and Vellum will provide you with one on the blog entries screen. [Download]

why use vellum?

Vellum has a number of features that make it different:

Funky caching
The idea of funky caching was first brought up by Rasmum Lerdorf at PHPCon; essentially, your weblogging system doesn't build the pages until it needs to -- when a page is requested, the system builds it then and there, and then saves that built page to the filesystem (so that it won't have to build it next time). To "rebuild" a page, simply delete it. Phil Ringnalda explains in more detail.
Plugins are the centre of the customisability of Vellum. A plugin does not just act in your page templates; you can not only change things about your entries, but also add new functions to Vellum itself, and alter the way Vellum works. There's more about plugins in the documentation.
Real code in your templates
Vellum templates contain real Python code. Ever been frustrated by the limitations your weblogging system puts on what you can do in your templates? Now you can do everything. The documentation has more detail on templates.