2014-04-16

Keystonejs CMS

I've just installed KeystoneJS (http://keystonejs.com), a Nodejs CMS based on Mongodb and optional storage policies for binaries like images or files.

First impression? I like it :)

You only need to install NodeJs (NVM is your friend) and a MongoDB instance. After that you will be able to install it locally on your machine typing a couple of commands if you use the official generator-keystone Yeoman generator. Otherwise you can start from scratch as well.

After that no extra work is needed, open http://localhost:3000 in your browser and add new categories or blob posts. Or if you want you can deploy and host your application into the cloud on Paas platform.


Shortly:
  • you can create your own content types with a defined schema
  • admin UI automatically generated (add forms, edit forms)
  • supports logged in users and session management
  • form validations
  • dynamic routes
  • email sending
  • very basic workflow support (just what you need for a simple publishing experience)
  • you can switch to alternative template engines (default: Jade... nooo, I don't like it!)
  • easy customizable templates for object views and listing (just html)
  • mobile ready
  • indexing and search support (no advanced features like pdf-text extraction and indexing)
  • Paas ready for hosting solutions
  • no folder-aware conceps (for example blog items are just reachable from the /blob/posts/blog-slug, you cannot nest items in folders. But it is ok for a wide range of applications)
  • editable slug urls
  • different storage policies for images and files
    • CloudinaryImage(s) for automatically manages images stored in Cloudinary, including uploading, resizing and deleting. See http://cloudinary.com/
    • LocalFile, this field type is not compatible with PAAS hosts like Heroku https://www.heroku.com because it relies on the local file system
    • S3, automatically manages files stored in Amazon S3, including uploading and deleting (http://aws.amazon.com/s3/)
    • AzureFile, automatically manages files stored in Windows Azure Storage, including uploading and deleting
Not supported (or not yet):
  • advanced, configurable and generic workflow engine
  • field level security on content types
  • configurable portlet items or user defined boxes
  • not sure, no out of the box minification assets solutions for css and javascripts when you switch to production mode? (more or less something like already discussed on this old blog post hack http://davidemoro.blogspot.it/2013/08/yeoman-express-and-angularjs.html)
So if you compare its features with enterprise level CMS like Plone (http://plone.org) you might think that it is a very simple CMS solution.

But you should not consider it just like a CMS but as a simple but flexible framework for creating NodeJS/ExpressJS/MongoDB based generic web applications with an autogenerated UI. You can save a lot of time!

It is a very young project and I don't know if it will become the nodejs killer app but the approach sounds very good and probably it is the most advanced CMS solution based on NodeJS at this time of writing.

Very cool guys, keep up the good work!

No comments:

Post a Comment