Introduction to KeystoneJS

For those of you developing web applications and sites using Node.js, then I’d urge you to look at KeystoneJS – a relatively new application development framework created by ThinkMill in Sydney, Australia.

Released around 6 months ago, Keystone provides a framework built on tried and tested components to give developers a quick start with building web applications in Node.js.

Built on the Express http server for Node.js and MongoDB using Mongoose as the ORM, KeystoneJS provides various critical features that are often required when developing a web application.

Out of the box, Keystone provides:

  • Session Management
  • User Authentication
  • Data handling for CRUD actions
  • Form Validation
  • Routing
  • Email notification / Mandrill integration
  • Auto Generated Admin backend to manage data

But this isn’t a detailed manual of how KeystoneJS works – the fine chaps at ThinkMill have done a great enough job of creating this for you.

Is KeystoneJS any good?

When you ask the question of whether KeystoneJS is any good, then you need to bear in mind what it actually is. It’s NOT an installed CMS like WordPress; it’s an embryonic (in the nicest sense of the word) framework to make developing Node.JS apps that little bit easier. The concepts and reasoning are easily followed by an experienced developer who wants a head start when using Node.JS.

I can honestly say that this is a great toolbox for the Node.js developer wanting to create complex web sites and applications whilst keeping full control of the development stack. Like they say, if you don’t like something in Keystone, just don’t use it. You can add your own code transparently whilst still taking advantage of the framework KeystoneJS provides.

Considering how young KeystoneJS is, the developers have done a superb job in both the framework and the documentation that goes with it.

If you’ve checked out my MEAN Stack resource list you’ll see that KeystoneJS is at the top of the list.

There’s a reason for that.


- Lovely.