Ruby CMS

Hi Rubyists:

I've seen some discussion around Ruby CMS solutions but not actually any
answers/implementations..

Is there anything out there? Any projects in process?

In the absence of a ruby cms are there any good ways of writing ruby modules
for an existing cms??

Thanks in advance!

Luke Galea wrote:

I've seen some discussion around Ruby CMS solutions but not actually any answers/implementations..

Is there anything out there? Any projects in process?

I'm interested in this as well. Would it be possible to use Rails as a framework for creating a CMS?

I think the definition of CMS software is pretty blurry. To me, CMS is a fancy way of saying, a development environment for building websites. I think Rails, Seaside, IOWA, are the ruby equivalent of CMS's. I think of these as a "standard libs" for doing web development.

~ Patrick

p.s. My project, Narf, is targeted at a different level. Narf, nora, cgi.rb, and others, are more like the kernel for web development.

···

On Saturday, January 15, 2005, at 10:08 AM, Luke Galea wrote:

Hi Rubyists:

I've seen some discussion around Ruby CMS solutions but not actually any
answers/implementations..

Is there anything out there? Any projects in process?

In the absence of a ruby cms are there any good ways of writing ruby modules
for an existing cms??

For sure!! But: I'd rather not reinvent the wheel if someone is already making
a rails CMS.

postnuke and friends (the php cmses) all are pretty messy.. no MVC, no object
oriented ness..

Would be nice to see a good rails CMS.. but I'd settle for the ability to
write modules, etc in Ruby for an existing CMS rather than php..

I suppose in theory all it would take is a library for ruby to access all the
CMSy type stuff (user accounts, context, etc) and a "meta-module" for
postnuke (written in PHP) that proxies context across.. like SAML.. only
using YAML :slight_smile:

···

On Saturday 15 January 2005 11:03, Trevor wrote:

Luke Galea wrote:
>I've seen some discussion around Ruby CMS solutions but not actually any
>answers/implementations..
>
>Is there anything out there? Any projects in process?

I'm interested in this as well. Would it be possible to use Rails as a
framework for creating a CMS?

I'm interested in this as well. Would it be possible to use Rails as a framework for creating a CMS?

I know of a handful of CMS projects already happening in Rails. Most of them are commercial projects, though. I haven't heard of any open source CMS intentions yet.

So yes, (of course) it's possible to use Rails for such a thing.

···

--
David Heinemeier Hansson,
http://www.basecamphq.com/ -- Web-based Project Management
http://www.rubyonrails.org/ -- Web-application framework for Ruby
http://macromates.com/ -- TextMate: Code and markup editor (OS X)
http://www.loudthinking.com/ -- Broadcasting Brain

Patrick May wrote:

I think the definition of CMS software is pretty blurry. To me, CMS is a fancy way of saying, a development environment for building websites. I think Rails, Seaside, IOWA, are the ruby equivalent of CMS's. I think of these as a "standard libs" for doing web development.

Interesting. CMS makes me think of an application that allows folks with little knowledge of (and no desire to learn) Web stuff to add, edit, and otherwise manage content. CMS systems typically, I think, allow for assorted type of editing access, change notifications, and comments from readers/reviewers.

Often a CMS is used to produce a Web site, but I think they tend to be corporate intranets.

So, I would see Rails, Seaside, etc as possibilities to use as groundwork for building a CMS.

James

Luke Galea <lgalea@gmmsolutions.com> writes:

For sure!! But: I'd rather not reinvent the wheel if someone is already making
a rails CMS.

postnuke and friends (the php cmses) all are pretty messy.. no MVC, no object
oriented ness..

Would be nice to see a good rails CMS.. but I'd settle for the ability to
write modules, etc in Ruby for an existing CMS rather than php..

Why do you think Rails would be good choice to do a Ruby CMS?

···

--
Christian Neukirchen <chneukirchen@gmail.com> http://kronavita.de/chris/

David Heinemeier Hansson:

I know of a handful of CMS projects already happening in Rails. Most of them are commercial projects, though. I haven't heard of any open source CMS intentions yet.

David, mine will be. But it is gonna take me a while, cause there is always some project work which is keeping me from working on mcms.

MCMS which stands for Magical Content Management Solution will have this and more:

(Quoted from my introduction mail on the rails list)

ROADMAP

···

=======
* Unique concentration on usability, web standards and accessibility
* Contentrepository as a tree, so you will be able easily extend the functionality of a corporate website to a blog with comments, a forum, a shop, a whatever. Something along the lines of ezpublish and drupal. (This is rather ambitious, I know, and it is not the simplest thing that could possibly work, anyway, I am gonna try it)
* Versioning
* WYSIWYG editing (with FCKEditor, which I find amazing)
* different views and the administration, so new users and powerusers can feel at home
* Maybe even edit-in-place, like you can see in Bitflux CMS, or LIMB. But I am uncertain about that as I think edit in place is not always the most generally applicable solution, esp. if you wanna have a cms which handles
* multiple diffrent websites under one adminstration
* media repository
* make it possible to turn it in a hostable solution (this one will probably by closed source)
* lots of other things

Now, don't even dare to ask me when it will be ready or usable. It could be 2 months or 2 years. For example, I couldn't work on it for almost 3 weeks cause of project work. I wouldn't wonder if somebody would release something ahead of me...

Sascha Ebach

I agree with Patrick, it's a vague term. Think about it this way: CMS stands for "Content Management System": the first term is quite general and the 2nd and 3rd are even more so. "Content" encompasses a vast range of things. Imagine a similar acronym for other sorts of vague things that need to be Managed by a System. What would a Data Management System do? Or a Customer Management System? Or a Profit Management System?

This is one of those buzzwords that, when I hear it, makes me think "the customer hasn't thought very much about the requirements." In fact, often these buzzwords mean "the customer is saying he wants to acquire software to help with a well-defined process, but instead he hasn't done a lot of work to figure out the process and is subconsciously hoping that the software will come with the process already fixed."

When it comes to "content", there are a million considerations that could come into consideration:

- Who's responsible for writing and editing content, and determining the ideal volume of that content? Does a copy editor need to vet the content before it goes into the world? Business manager? Lawyer?
- Who gets to see the content? Paid subscribers? Company employees? Everybody?
- We probably care about getting to view this on MSIE Windows, but what about other ways of viewing it? How important is it for Firefox viewers to be able to read it? How about blind readers using specialized browsers for the blind? How about Google?
- What forms will the content take, ultimately? Sure, there's HTML, but what about Flash, RSS, CSV files, Excel spreadsheets, PDF, movies, images, and sound clips?
- What sort of resources are we willing to devote to producing content? Is this going to be a weekly text-only blog, or a full-blown online magazine with paid writers, photo shoots, and video interviews?
- What purpose does this content serve, anyway? Is it supposed to raise our profile in the world of bloggers and hackers? To give the mainstream news media a way to keep track of what we're doing? To foster a sense of community among our customers? To help us strengthen support for our products? To speed up internal project-based communications? To boost company morale? All of the above?
- How important is it that this "content" be preserved into the future? Is it archival stuff that you might want to put in a library? Is it mission-critical content that needs to be up at all times?
- How are we organizing it, anyway? Do we want to throw together simple categories? Is it worthwhile for us to look into Technorati/del.icio.us-style folksonomies? Are there any industry-standard ontologies that apply in our domain, whether we're in the field of fine arts or aeronautics?

I'm dumping all of this out because in fact I've spent much of the past few months asking these sorts of questions about the company where I work. It's interesting, but also fairly tiring, and it requires you to have an extremely precise sense of your organizational strategy ... and guess what? We barely mention implementation technology, though we're at the stage where I'm going to have to start costing it out, so obviously it's going to come into play soon.

So, to get back to the original post, I'd ask first: What is it that the web site's supposed to do, anyway?

···

On Jan 15, 2005, at 6:22 PM, James Britt wrote:

Patrick May wrote:

I think the definition of CMS software is pretty blurry. To me, CMS is a fancy way of saying, a development environment for building websites. I think Rails, Seaside, IOWA, are the ruby equivalent of CMS's. I think of these as a "standard libs" for doing web development.

Interesting. CMS makes me think of an application that allows folks with little knowledge of (and no desire to learn) Web stuff to add, edit, and otherwise manage content. CMS systems typically, I think, allow for assorted type of editing access, change notifications, and comments from readers/reviewers.

Often a CMS is used to produce a Web site, but I think they tend to be corporate intranets.

So, I would see Rails, Seaside, etc as possibilities to use as groundwork for building a CMS.

James

Francis Hwang

"content" and "data" are synonyms, as far as I can tell. Tools for working with databases (aka Rails) are tools for working with "content". I think CMS is a bit of Fire and Motion [1]

Cheers,

Patrick

1. Fire And Motion – Joel on Software

···

On Saturday, January 15, 2005, at 06:22 PM, James Britt wrote:

Interesting. CMS makes me think of an application that allows folks with little knowledge of (and no desire to learn) Web stuff to add, edit, and otherwise manage content. CMS systems typically, I think, allow for assorted type of editing access, change notifications, and comments from readers/reviewers.

Often a CMS is used to produce a Web site, but I think they tend to be corporate intranets.

So, I would see Rails, Seaside, etc as possibilities to use as groundwork for building a CMS.

Haha.. good question..

I can't say that it would be any better than any other MVC framework (ruby or
otherwise).. but it would be good because it more or less enforces the
separation of M from V from C versus the PHP-based CMS frameworks out there
now that use nothing other than a DB access library called from the guts of
their display code..

I'm told that Nukes (the Java reimplementation of postnuke) is pretty good
architecturally.. but this is a Ruby forum.. right :slight_smile:

···

On Saturday 15 January 2005 12:38, Christian Neukirchen wrote:

Luke Galea <lgalea@gmmsolutions.com> writes:
> For sure!! But: I'd rather not reinvent the wheel if someone is already
> making a rails CMS.
>
> postnuke and friends (the php cmses) all are pretty messy.. no MVC, no
> object oriented ness..
>
> Would be nice to see a good rails CMS.. but I'd settle for the ability to
> write modules, etc in Ruby for an existing CMS rather than php..

Why do you think Rails would be good choice to do a Ruby CMS?

Sascha Ebach wrote:

MCMS which stands for Magical Content Management Solution will have this and more:

MCMS? You may want to take into account the confusion that this may cause with "Microsoft CMS".

* WYSIWYG editing (with FCKEditor, which I find amazing)

They have a PHP and JavaScript version in there - In your opinion, do you think it would be worthwhile to port to Ruby?

Hi Francis,

I agree with all the points you mention. (I am only saying this so I don't have to quote any specific point ... just kidding)

You are right when thinking that some kind of specialization is always necessary. CMSs can do (and be) a lot of things. I view a CMS as a method to access and transform content living in a repository. Manifestions of these repositories can be news sites, forums, blogs, shops, corporate sites and what not. IMO the access to this repository is the hardest part from the programming standpoint. If it is fairly specific (like only tables for blog entries and comments) it will be hard to make a corporate website out of it. If the repo is generalized too much the implementation can get really difficult. One would have to find the sweet spot. The biggest challenge though is an easy to use and simple interface to the repository. Usability is the key here.

In a more generalized system, like the one I am trying to achieve, I think it is crucial to work with a heavily categorized system and store all the data in a big tree. Although this brings not only benefits. But, as you suggest it is nearly impossible to address all possible use cases up front. Customization is always necessary. A good system that tries be flexible must allow for easy customization and extension.

So, to get back to the original post, I'd ask first: What is it that the web site's supposed to do, anyway?

A good question. But not for building a flexible CMS. This is the golden question to ask a customer who needs any kind of web site in the planning stage of a project. The most important question of all.

For a CMS like I plan the most pressing question is: How do I program a blog that can later be a forum and a shop with customer relationship management including email marketing capabilities? It might not even be possible.

It is fairly complicated to describe what exactly I plan to do. But if you look closely at the functionality of ezPublish and Drupal you might get a feeling. MCMS will be some kind of mixture between these two (an others).

Sascha

I'm going out on a limb here so please forgive any semantic failures on my
part:
When most developers or users look for a CMS that mean "A system that
contains the base functionality that ANYONE with "content" to publish is
going to need (ie: no business-specific functionality).. so:
Calendar, Messaging, User/Security/ACLs, News Posting, User "Self-Editing"
Content, etc...."

I guess thats "groupware".. but most CMSes out there seem to be pretty much
groupware plus API.. and most groupware suites are CMS plus API as well.. so
it's pretty blurry..

When it comes down to it though: there's a wack of functionality that pretty
much any application needs.. to some degree even a web-based finance package
would benefit from having news posting, private messaging, etc..

···

On Saturday 15 January 2005 19:56, Francis Hwang wrote:

I agree with Patrick, it's a vague term. Think about it this way: CMS
stands for "Content Management System": the first term is quite general
and the 2nd and 3rd are even more so. "Content" encompasses a vast
range of things. Imagine a similar acronym for other sorts of vague
things that need to be Managed by a System. What would a Data
Management System do? Or a Customer Management System? Or a Profit
Management System?

This is one of those buzzwords that, when I hear it, makes me think
"the customer hasn't thought very much about the requirements." In
fact, often these buzzwords mean "the customer is saying he wants to
acquire software to help with a well-defined process, but instead he
hasn't done a lot of work to figure out the process and is
subconsciously hoping that the software will come with the process
already fixed."

When it comes to "content", there are a million considerations that
could come into consideration:

- Who's responsible for writing and editing content, and determining
the ideal volume of that content? Does a copy editor need to vet the
content before it goes into the world? Business manager? Lawyer?
- Who gets to see the content? Paid subscribers? Company employees?
Everybody?
- We probably care about getting to view this on MSIE Windows, but what
about other ways of viewing it? How important is it for Firefox viewers
to be able to read it? How about blind readers using specialized
browsers for the blind? How about Google?
- What forms will the content take, ultimately? Sure, there's HTML, but
what about Flash, RSS, CSV files, Excel spreadsheets, PDF, movies,
images, and sound clips?
- What sort of resources are we willing to devote to producing content?
Is this going to be a weekly text-only blog, or a full-blown online
magazine with paid writers, photo shoots, and video interviews?
- What purpose does this content serve, anyway? Is it supposed to raise
our profile in the world of bloggers and hackers? To give the
mainstream news media a way to keep track of what we're doing? To
foster a sense of community among our customers? To help us strengthen
support for our products? To speed up internal project-based
communications? To boost company morale? All of the above?
- How important is it that this "content" be preserved into the future?
Is it archival stuff that you might want to put in a library? Is it
mission-critical content that needs to be up at all times?
- How are we organizing it, anyway? Do we want to throw together simple
categories? Is it worthwhile for us to look into
Technorati/del.icio.us-style folksonomies? Are there any
industry-standard ontologies that apply in our domain, whether we're in
the field of fine arts or aeronautics?

I'm dumping all of this out because in fact I've spent much of the past
few months asking these sorts of questions about the company where I
work. It's interesting, but also fairly tiring, and it requires you to
have an extremely precise sense of your organizational strategy ... and
guess what? We barely mention implementation technology, though we're
at the stage where I'm going to have to start costing it out, so
obviously it's going to come into play soon.

So, to get back to the original post, I'd ask first: What is it that
the web site's supposed to do, anyway?

On Jan 15, 2005, at 6:22 PM, James Britt wrote:
> Patrick May wrote:
>> I think the definition of CMS software is pretty blurry. To me, CMS
>> is a fancy way of saying, a development environment for building
>> websites. I think Rails, Seaside, IOWA, are the ruby equivalent of
>> CMS's. I think of these as a "standard libs" for doing web
>> development.
>
> Interesting. CMS makes me think of an application that allows folks
> with little knowledge of (and no desire to learn) Web stuff to add,
> edit, and otherwise manage content. CMS systems typically, I think,
> allow for assorted type of editing access, change notifications, and
> comments from readers/reviewers.
>
> Often a CMS is used to produce a Web site, but I think they tend to
> be corporate intranets.
>
> So, I would see Rails, Seaside, etc as possibilities to use as
> groundwork for building a CMS.
>
>
> James

Francis Hwang
http://fhwang.net/

Content Management Systems arise from the need to provide a simple or more familiar interface for editing content to content editors/managers. CMS are not just for editing data in a database, they provide editing or management tools that facilitate editing of content by someone that probably does not have the technical knowledge to edit data directly in a database in ways that depend heavily on the type of content that is being managed and the needs of the content manager.

Context, interface, usability, content, etc... all affect content management systems heavily and are directly dependant on the target user.

I think a tool that provide the basis of most CMSs and allows for simple customization and aggregations would be a good approach.

just my opinion.... :slight_smile:

LG

- Patrick May :

Interesting. CMS makes me think of an application that allows folks
with little knowledge of (and no desire to learn) Web stuff to add,
edit, and otherwise manage content. CMS systems typically, I think,
allow for assorted type of editing access, change notifications, and
comments from readers/reviewers.

Often a CMS is used to produce a Web site, but I think they tend to
be corporate intranets.

So, I would see Rails, Seaside, etc as possibilities to use as
groundwork for building a CMS.

"content" and "data" are synonyms, as far as I can tell. Tools for
working with databases (aka Rails) are tools for working with
"content". I think CMS is a bit of Fire and Motion [1]

Well, they are a little bit more complex than that, the problem is that
CMSs have definitely reached the status of buzzword, so everyone has
it's own personal interpretation of what a CMS is :slight_smile:
Basically, the most interesting part is the "management" one, "content"
is everything you want it to be.
The real value of a CMS is that it can publish heterogenous content and
centralize it, and for heterogenous I mean content that comes from
SAP, MS Word, Excel, other sites and so on: the CMS must define the
rules to fetch, catalog and publish this content, and in the 90% of
cases integrate everything in a worflow system. As always, everything is
reduced to a productivity gain: a CMS structures unstructured content by
following rules defined by the content manager.
This is a real simplistic way to define a CMS, just to say that, for
example, Drupal and Mambo are more like web publishers than real CMS.
Plone is quite complete, and probably if I had to choose a CMS for
tomorrow I'd choose that, for its extensibility.
A good example are products from Documentum... well, _some_ products
from documentum, their offer is a bit overwhelming :slight_smile:

HAND,
  ngw

···

--
checking for life_signs in -lKenny... no
  Oh my god, make (1) killed Kenny ! You, bastards !

nicholas_wieland-at-yahoo-dot-it

Trevor schrieb:

Sascha Ebach wrote:

MCMS which stands for Magical Content Management Solution will have this and more:

MCMS? You may want to take into account the confusion that this may cause with "Microsoft CMS".

If it were from MS it would be called MSCMS. I don't think that they have a patent on the M, yet. But if they like they can buy it when it's ready :wink:

* WYSIWYG editing (with FCKEditor, which I find amazing)

They have a PHP and JavaScript version in there - In your opinion, do you think it would be worthwhile to port to Ruby?

I don't know what you mean by porting. The editor is written in JS. PHP is only for the server side communction. Any server side language can be used for that purpose. In a cms written in Ruby certainly Ruby will be used for the server side communictation.

Sascha

So, to get back to the original post, I'd ask first: What is it that the web site's supposed to do, anyway?

A good question. But not for building a flexible CMS. This is the golden question to ask a customer who needs any kind of web site in the planning stage of a project. The most important question of all.

Right, but do you think that such a general CMS can satisfy the needs of everybody? I'd say no, because people have vastly different needs for a System that Manages their Content. ( This relates to that other thread about too many Ruby web app frameworks: Part of the reason that there are more than one is that the problem is too big and too varied to be sensibly solved by any one framework anyway. )

For a CMS like I plan the most pressing question is: How do I program a blog that can later be a forum and a shop with customer relationship management including email marketing capabilities? It might not even be possible.

Most anything's possible in the world of code, it's all about the economics and the engineering. Some questions to try to tease out the cost/benefit dynamics:

When you say "blog that can later be a forum", whose blog is it? Just one person? Or does each participant in the forum get their own blog? How strong is the notion of identity--for example, do you have to create an account to participate in the forum or is it as simple and transitory as entering your email address in a blog comment form? How far do you want your CRM to go? How tightly is the forum going to be integrated with the blog, or with the online store?

etc., etc. Software's important, but it's no substitute for strategy.

Francis Hwang

···

On Jan 15, 2005, at 9:15 PM, Sascha Ebach wrote:

Hi all,

In my opinion, and having worked mainly on web projects that require some sort of "CMS" there are certain "basic" features all CMSs should have and some that should be plugged in on demmand. For example the ability to manage online documents seems popular enough to be included by default (even if it is handled like any other plugin or module). We could have a "blog" module, a "subscription" module, etc... The main purpose of the modules is to allow for more complex functionality to be easily applied by the administrator and allow for custom modules that simply need to respect certain compatibility guidelines.

The CMSs I've done normally give my clients the ability to manage documents or what I'm thinking of changing to "Content Objects". Each object can be a module or simple content and can be part of another object. That way the CMS gives the user a lot of flexibility.

Francis Hwang schrieb:

Right, but do you think that such a general CMS can satisfy the needs of everybody? I'd say no, because people have vastly different needs for a System that Manages their Content. ( This relates to that other thread about too many Ruby web app frameworks: Part of the reason that there are more than one is that the problem is too big and too varied to be sensibly solved by any one framework anyway. )

No. No software can satisfy the needs of everybody. Not even Ruby :wink: Take Rails for example. Rails does and behaves like David needs it to. My CMS will do and behave like I need it to. I hope that my needs will be similiar to those of others so they can use it, too. After all, it is going to be open source. And it should be easy to add your own functionality.

When you say "blog that can later be a forum", whose blog is it? Just one person? Or does each participant in the forum get their own blog? How strong is the notion of identity--for example, do you have to create an account to participate in the forum or is it as simple and transitory as entering your email address in a blog comment form? How far do you want your CRM to go? How tightly is the forum going to be integrated with the blog, or with the online store?

As tight as you want it to be. But you will likely have to work a little bit on it.

etc., etc. Software's important, but it's no substitute for strategy.

You have your own strategy. Maybe my CMS will allow you to implement it.

If you look at what people do with ezPublish and Drupal you will see that almost everybody customizes these packages to their needs. Almost nobody uses such software out of the box. Now imagine you could do that in Ruby...

Sascha