Fog Creek Software
Discussion Board

*CityDesk* is a platform

As nice as CityDesk is for the developer who knows HTML and what a template-expansion language is, making people know about that stuff is limiting it's market. I'd like to use CityDesk as a platform to sell my templates and my web site building expertise to customers that would be able to write articles, but that's about it. However, to build web sites the way the clients want, I need to be able to extend the CityDesk UI, database and content generation, i.e. I need to build on the platform that CityDesk provides.

As an example of where I need to extend the UI, I need users to classify each article with a certain number of keyword values, e.g. foo(bar) vs. foo(quux). Right now, there's no way in the UI to let them pick keyword values from a list or check that they entered one of each or even that they got the capitalization wrong! And when it doesn't work, it'll be me that has to fix it.

As an example of where I need to extend the database, I need to keep a list of mappings between keywords and URLs so that I can generate links to related articles.

As an example of where I need to extend the content generation, because I can't extend the database or because I need data external to the CityDesk file, I need to write something into my CityDesk templates that reaches out to some code I wrote to return a bool for branching, a collection for looping or some content.

Please recognize that CityDesk is a platform for ISVs building content-driven web sites to clients that can't afford the big boys and please open it up for customization. Thanks!

Chris Sells
Friday, August 30, 2002

I was under the impression CityDesk is more for them (the enduser/client), not you (the developer).

Chris Altmann
Friday, August 30, 2002

Thinking about the application/platform categorization of CityDesk makes me dizzy.  And I'll bet it  keeps Joel awake at night sometimes.  Should there be a free CityDesk runtime that developers could distribute with their .cty file?  I don't know.  I'll have to refer to Joel's "Commodity" article.

But if I consider Joel's "It takes ten years…" and "Platform" articles together, I expect future that future CityDesk releases will contain many features that will be very helpful to developers and their customers.  I hope so.

Friday, August 30, 2002

CityDesk is not a platform.

Friday, August 30, 2002

CityDisk *should* be a platform.

I agree with Chris Sells and I have been thinking about this almost non-stop since I first installed the demo version of CityDesk.

"CityDesk, The Application" is a fill-in-the-forms-presto-you've-got-a-website application.  End users don't have to know anything (much) about HTML to write articles for CityDesk.  It's great, but you will notice that there is a specific "news room" bent to the whole product.  Authors write "articles" that have tag lines and teasers.  It's as if the application was designed for people that publish e-zines or run news sites.

"CityDesk, The Platform" is an engine for merging HTML layout with content.  It has a unique layout language that incorporates variables and control structures (for-next loops).  It's mark-up agnostic as I can create the layout in HTML 3.0 or XHTML 1.0 or even plain text.  What I can't control is the forms!

Give me control of the forms and I will have a real platform.  Maybe I don't want a news room website but rather an on-line store.  The store owner wants to enter items for sale with descriptions, stock numbers and photos.  Sure, I might find a way to make this work using the "article" paradigm, but it would be an awkward fit.  I'd rather make my own forms with fields that map to my own variables and then merge that data with my own HTML templates to generate a complete site.

CityDesk is soooo close to that.  I would love to use it as a platform to make web site creation applications.  I would then roll out web-site-in-a-box applications for different types of users like teachers, doctors, salesmen, families...  Each type of user has slightly different needs and requires an application taylored to their paradigm.

I've used CityDesk to create a nice little site for a realitor friend of mine.  I would like to simply turn the layouts and the software over to her so she can maintain her own site.  She'd have control of the content but the layout would be locked in.  CityDesk doesn't quite get me there.  I need a run-time that takes my .cty file and allows an author to fill in forms but doesn't allow them to change any of the layout.  I need to be able to present her with an *extremely* uncomplicated interface that she can just fill in text boxes and hit "publish."  CityDesk needs to draw a distinction between the website designer and the content author.  The authors should be treated as computer illiterate.

William Frantz
Friday, August 30, 2002

I would expect FogCreek to at some point make the fields user-definable but I still wouldn't consider it a platform then.

Friday, August 30, 2002

What you guys are saying sounds really interesting. I was thinking about writing a program similar to citydesk using C#. I'll post updates of whats going on.

Pierre Walker
Saturday, August 31, 2002

CityDesk is not a platform in my humble opinion. CityDesk is a flexible application, which hopefully is much more customizable in the future.  The power of Citydesk is in the ease of use, not the gimmicks or architecture behind it. It just leverages the right technology, which is freely available to everyone.

Adriaan van den Brand
Thursday, September 5, 2002

Then what is a "platform"?

Joel says, "They have an interesting architecture that provides important platform functionality which I could really use in my own products"

I say the same thing about CityDesk.  I want to use the CityDesk architecture and functionality to make web-site-in-a-box applications.

"They make it impossible (or at least unrealistic) for ISVs to build on their platform..."

Again, same thing with CityDesk.  It will do fine as a news site management system, but there are so many other types of web sites that are possible and will never be achieved unless CityDesk opens up the architecture so that ISVs can build off of it.  It's stuck in a news room paradigm that's impossible to change.

Joel's platform examples are "operating systems, or DBMSs, or language runtimes like Java."

I think CityDesk is a DBMS.  It stores articles (records) and produces web sites (reports).  It also has a novel language built in that does variable substitution and simple loops.  The language could stand to be expanded but it's still a language.

There is definitely some core functionality in CityDesk that would make a fine platform to build more web site generation applications.  I wish it was more open.

William Frantz
Friday, September 6, 2002

*  Recent Topics

*  Fog Creek Home