KeystoneJS vs DocPad
When comparing KeystoneJS vs DocPad, the Slant community recommends KeystoneJS for most people. In the question“What are the best Wordpress replacements in Node.js?” KeystoneJS is ranked 3rd while DocPad is ranked 4th. The most important reason people chose KeystoneJS is:
Keystone comes with an auto-generated Admin UI, which makes things very easy for any task that can be completed using Keystone. In any way Keystone is used, the Admin interfaces saves a lot of time and makes any job easier.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Out-of-the-box Admin UI
Keystone comes with an auto-generated Admin UI, which makes things very easy for any task that can be completed using Keystone. In any way Keystone is used, the Admin interfaces saves a lot of time and makes any job easier.
Pro Keystone comes with Express already configured
Express comes out of the box already configured from Keystone or it can be treated like any other Express Middleware.
Pro Keystone has easy form processing
Using the data models defined by the developer, Keystone can validate forms automatically without any more setup. Form validation doesn't get easier than this.
Pro Many cool features
Great CMS with auto-generated admin, schemas...
Pro Easy to install and use
KeystoneJS is very easy to install and use.
Pro Easy email management features
With Keystone it is easy to set up an email management system for an application. It has template-based emails and it's also integrated with Mandrill (Mailchimp's transaction email sending service)
Pro Keystone uses MongoDB through Mongoose
Keystone allows the usage of MongoDB since it comes with Mongoose, the most popular ODM for node and Mongo, this means that anything that is built using Mongo can be built with Keystone.
Pro Numerous amounts of templating engines are supported
Keystone supports almost all templating engines out there. Although it uses Jade directly after a fresh install and it points to using it further, other template engines can be installed and used instead.
Pro Effective session management
Keystone has advanced and effective session management and authentication features. Logging in and signing up is easy and it even has password encryption out of the box.
Pro Built on Node
DocPad is published as an NPM module which makes it easy to integrate with an existing Node.js deployment.
Pro Has an active plug-in ecosystem
DocPad's has a large amount of plug-ins available to extend its functionality and compatibility with other language preprocessors and markup languages.
- Javascript preprocessors include: Coffescript, TypeScript, and LiveScript.
- CSS preprocessors include: LESS, SASS, Stylus, and Roole
- HTML markups include: Markdown, and Textile
- Templating engines include: Eco, Handlebars, Moustache, HAML, CoffeeKup, Jade, and Teacup
- JSON converters include: YAML and CSON
Pro Has Live Reload
DocPad has a Live Reload plug-in that leverages websockets to automatically update the blog content for users live on the site.
Pro Built on top of the Express framework
Although DocPad is a static site generator, if you find the need to, you can extend the site with the Express framework for dynamic content as well.
Pro Has graphical admin interfaces for managing your blog
There are multiple custom interfaces, including miniCMS available to DocPad which provide WYSIWYG editing and article management.
Pro Easy to deploy
Deployment plug-ins make deploying to hosting providers even easier, with plug-ins for GitHub Pages, AWS, and Google Storage.
Pro MIT-licensed
Pro Prebuilt Skeletons
Skeletons are boilerplate setups to provide a baseline structure for you to fill content into.
Pro Document and file querying with Query Engine
DocPad leverages Query Engine to provide a query API for querying files.
Cons
Con It does not have a built-in roles system
Although registering a new user is very easy, there is not any roles system out-of-the-box. There is only a check box "Access keystone" which gives a user full administrative power. Adding different kind of users is only possible by editing the user data model.
Con Horrible documentation; Keystone5 is unfinished and the team dumped it for a whole (stripped down) new version
Team even admits to a lot of areas being undocumented. Just spent 5 months implementing Keystone5 just to have it marked for deprecation. Next version removes DB Adapters (the entire reason for us implementing it). This project is poorly managed, and extremely difficult to extend due to incomplete documentation.
Con No auto-reload and no good support for RDBMS
Does not have auto-reload in its backend.
Hard to debug.
Features found in document, absent in code.
No enough support to PostgresQL, no automatic migration
Con No default option to add pages in admin panel
Con It's hard for front-end developers with no MVC experience setting up views
Keystone follows MVC practices in managing routes, views and templates. Back-end developers with experience in working with MVC frameworks will find themselves at ease since the beginning, but developers who work on the front-end only will have a hard time finding what they are supposed to do to set up templates and such.
Con Some working knowledge of JavaScript, NPM and Databases is needed
MongoDB is required to be up and running and a Yeoman generator is used to generate the application. Although the prompt based start-up in the command line helps you a lot, it still can be hard for someone inexperienced with NPM and Yeoman.
Con Packaging externals libraries is tricky
Unless you want to import every JS.
Con Support for Handlebars templates is not mature - integration is awkward
Handlebars' philosophy of "no logic in templates" makes some things difficult:
- DocPad built-in template helpers aren't available by default - they have to be manually added/exposed
- DocPad's example template code often includes logic, which makes it impossible to use within Handlebars templates -- it has to be abstracted into custom helper functions.
- Can't pass objects to function calls from within HB templates.
Con More up-front investment to learn/use well
DocPad provides a LOT of extensibility and dynamic capability, which means there's more up-front investment to learn DocPad well -- and deviating from the defaults while maintaining project robustness may be difficult.