CityDesk First Impressions
I've been reading Joel Spolsky's software development articles and commentary at Joel on Software for several years, so when he announced that his company Fog Creek Software was working on a content management system aimed at home users and small organisations, I was intrigued.
I've downloaded and tested every HTML generator I could find over the last two years, but I've never found anything that comes close to what I want. My needs don't seem that strange to me:
- I want to be able to write articles for my web site in a simple format (giving me hyperlinks, bold, italics, fonts, simple tables, etc), preferably using a WYSIWYG editor. I don't want to have to write them in raw HTML.
- I want to be able to create a template for the pages of my site. This way, when I change the design, I only need to change it in one place, not 50.
- I want to be able to store extra information with my articles - things like a teaser, a sidebar, the author's name, the date it was created, a title, topic, etc (honestly, this is true - it's eerily close to what CityDesk provides!).
- When I write a new article, I want it to magically appear on the site without me having to edit any HTML files. I'd like to just click a button or run a script to regenerate the site's files and FTP them to my web server. I don't mind if the FTP bit is manual.
- I'm interested in digital photography, so I'd like an easy way to store information about individual photos. EXIF data (e.g. shutter speed, aperture, date/time, etc) can be extracted from the original jpg file, and I'd also like to add a caption, location, photographer, accessories used and a description.
- I'd like an easy way to reference photos from articles, and have thumbnail images automatically generated for me. I want those thumbnails to click through to a web page containing a larger (e.g. 640x480) automatically-generated version of the photo along with its stored information.
- I'd like a way to manage resources as well - things like book and software reviews, links to other sites, etc. I'd like to be able to assign categories and scores to these resources so I can create recommendation pages, grouping them by category and listing the best resources near the top.
- I'd like to be able to automatically generate plain-text newsletters from my content for emailing out to a distribution list. Failing that, see the next point...
- I'm a programmer, so it'd be cool if the software was open-source or provided an interface to its database. That way if there's ever something extra I want, I can find a way to add it.
- I don't want an application like Microsoft FrontPage adding heaps of garbage to my HTML - I'd like to keep it clean and simple.
- I don't want a server-side solution, because I don't have access to install software on my host's server. I also want my data stored on my own computer where I can back it up, and I don't want to have to log onto the net every time I edit an article - I need to be able to work on stuff offline. My content doesn't change often enough to bother with generating pages dynamically - static HTML files are fine.
- I'd like the software to run on either Windows or Linux, I don't care which.
In the end I wrote my own Python program to combine articles and digital photos with HTML templates to manage my web site at www.pool-room.com. It's very basic and doesn't contain many of features listed above, but it is evolving in that direction.
Then Joel invited me to join Fog Creek Software's CityDesk beta programme.
CityDesk doesn't exactly meet all of my requirements listed above, but it's closer than anything I've seen before. A lot closer. It's so much nicer to use than my home-grown solution, I'm even willing to forgo all those extras and change my whole system over to CityDesk right now.
All those hours of programming effort down the drain.
The application runs on Windows 9x/ME/2000/XP. It comes with a quick tutorial, which leads you through everything you need to know in order to start using CityDesk. I got my first site (an intranet site for a project at work) up and running within an hour, and have been happily adding content to it ever since.
The biggest thing that strikes me about CityDesk so far is it's simplicity. This is not a complicated piece of software, and it's not doing a complicated task. But it does it extremely well, and I suspect a lot of effort has gone into making it seem this simple.
That simplicity is deceptive, though. On the surface, it just looks like CityDesk would be useful for writing articles for a fairly basic web site. But as I attempt more complicated feats, I keep finding ways to get CityDesk to handle them. I'm documenting these techniques here as I develop them.
My first impression is that CityDesk would be ideal for three main groups of users:
- Home users that have never gotten around to using the little bit of hosting space that came with their ISP deal, or tried creating a web page but gave up in frustration.
- Small organisations like service clubs, community groups, charities, school committees, etc that want to provide information to members over the web.
- Small businesses wanting to set up an intranet to organise all their procedures, processes and other information, but not having thousands of dollars to spend doing it.