People equate it as the WordPress for the Node.js community. We have recently used it on a project. I’ve played with it previous to this project, and I thought that it was pretty cool.
Playing with it, and actually using it, are two different things.
When I was just setting up a hypothetical website, everything worked out. I was able to quickly scaffold up the site, set up content objects and a contact form, and I thought that the utilization of Cloudinary as image upload / CDN was brilliant.
BUT, as we started to build a full website from it, we started to see the gaps.
First of all, the web admin side is not so easily extensible. It’s hard to integrate anything into the content management system except for the content objects that you have set up as a model. Second, most CMS has a concept of one-off content versus iterative content objects (for example, you might have a content admin screen for the home page, which may contain different fields from other pages, but your web admin for available job openings might allow you to add multiple openings, each having the same set of fields). There is no such concept in the Keystone.js admin. All objects are iterative. So, if you want to create a one-off admin, you basically create an iterative object and just tell the user to only create one.
Second, some of the object models are still under-developed. For example there is a field type for Cloudinary objects, which is the de-facto location for all images, videos, and documents uploaded. But, the Cloudinary object assumes that every file that is uploaded is an image. There is no functionality to retrieve a PDF or video that is uploaded to Cloudinary, or retrieve any metadata (file size, type, etc) for any file other than images.
What we found out was that we ended up spending just as much time, writing work-arounds as we spent on developing the page templates.
Keystone.js has the potential to become a real contender. For now, it’s still in the early stages.
Unless you are looking to implement a very simple brochure site, I would not recommend utilizing Keystone.js. For now, it’s really for early adopters who have the technology expertise and resources to develop work-arounds that are part of many developed CMSes.