Content Scheduling #17

cliftonc opened this Issue May 20, 2011 · 2 comments

2 participants


Complete the content scheduling function (e.g. you can specify a time that content set to scheduled will automatically become published).


I'm just getting up to speed on Node.js and Calisto looks pretty rad. Coming from a Drupal background it's definitely fun to think "If we could start all over again..." Here's some input from one of my brainstorms.

Content Scheduling could be built as a one off or it could be the result of more powerful systems working together.

The one off

Write some custom code that places a date widget on edit forms and stores that value in a db table and then write some other code that occasionally looks for nodes that should be published.

Build other systems first

This piece of functionality could be built using frameworks similar to those found in Drupal modules such as the Workflow module (for workflow states such as draft, published), Workflow Access (for defining which roles have read, update, and delete grants at which workflow states), and Job scheduler module (for picking up tasks in a queue), and lastly a field type for setting time/workflow transition to be scheduled into the Job queue.

I am under the opinion that a CMS should help to facilitate complicated workflows. IE. The Workflow module and Workflow Access module should replace Drupal's primitive and presumptuous Published checkbox. I think it would be a big sell for this CMS if this (what I consider basic) functionality was tackled from the beginning.

@cliftonc What do you think? I am interested in helping out, even if Calisto isn't the next Drupal it would be a healthy exercise in trying to implement something "the right way".


Agree completely, I think good workflow is fundamental, and is very much on the roadmap. My thinking was we need three things working well:

  1. User roles and permissions (doesn't really exist yet - is a really high priority).
  2. Content types and ability to define rules by type - some of this exists but is very rudimentary.
  3. Workflow engine based on events and a state machine defined for each content type, linked to the permissions system - the hooks are there from Mongoose, but you could create a much more fine grained state machine (+eventemitter) and do some very cool stuff with this one.
  4. A content scheduling system (e.g. this one is time not event based), but really is just a variant on the above.

The use case for scheduling vs workflow is to allow editors to stage changes, or (for example) for items that are time sensitive such as content that follows a tv broadcast, to be made public at the right time but edited well in advance.

Definitely not trying to reimplement Drupal - but really do feel there are a lot of very good things about the way Drupal is built that are worth learning from. I'm really scratching my own itch, enjoying building this and if it becomes useful for others then that's great!

Would be great if you can help out, happy to talk through options for any of the above, or start putting designs / thoughts up on the wiki?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment