What is KeystoneJS:
KeystoneJS is an Open Source, NodeJS based CMS and Web Application Platform created by Jed Watson in 2013. Keystone applications are database driven. More specifically, the database is MongoDB — a NO-SQL Document store database, and the Node framework underneath is ExpressJS.
https://expressjs.com/
https://www.mongodb.com/what-is-mongodb
KeystoneJS Features
KeystoneJS provides a standardized set of components that allows developers to build web applications quickly with JavaScript. It has a number of features that make it a worthy framework to consider when looking for a good tool for your next project.
- Session Management : KeystoneJS ships with session management and authentication features out of the box.
- Routing: KeystoneJS provides a router that allows you to express how your web application or API routes should look like.
- Form Validation: KeystoneJS provides form validation out of the box.
- Modularity: KeystoneJS configures Express for you. It also uses Mongoose to connect seamlessly with MongoDB and it separates views, routes and templates nicely by providing their specific directories.
- Admin UI: KeystoneJS has an auto-generated Admin UI that saves you a lot of time and makes managing data from your database so easy.
- Email Administration: With KeystoneJS, you can set up, preview and send template-based emails for your application seamlessly. It offers a Mandrill integration out of the box.
Setup Blog with KeystoneJs:
Use Keystone Yeoman Generator
Run the following command in your terminal to install the powerful Yeoman generator for KeystoneJS:
npm install -g generator-keystone
Create a blog directory and cd into it.
mkdir blog && cd blog
Now, run the generator.
yo keystone
A wizard comes up and several questions are asked, including if you want a blog, image gallery and contact form. Answer the questions like I did in the image below:

Go ahead and run your newly created project with the following command:
node keystone
The blog should run on port 3000 by default. Check out your new blog on http://localhost:3000.
Advantages and Disadvantages of KeystoneJS
Advantages:
- Basic services and tools
- Great sandbox for various Nodejs
- Great API and CMS
- Fast on V8
- Similar to WordPress
- Integration facilities
- Mean stack
- Rapid Development
- Use Mongo dB
- Easy setup
Disadvantages:
- Don’t have a built-in roles system
- Difficult for some developers with No MVC
- No default option to add pages in Admin Panel
