KeystoneJS Introduction

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

Leave a comment