KeystoneJS is the easiest way to build database-driven websites, applications and APIs in Node.js.
Keystone will configure express - the de facto web server for node.js - for you and connect to your MongoDB database using Mongoose, the leading ODM package.
Keystone starts with best practices for setting up your MV* application, and makes it easy to manage your templates, views and routes.
IDs, Strings, Booleans, Dates and Numbers are the building blocks of your database. Keystone builds on these with useful, real-world field types like name, email, password, address, image and relationship fields (and more)
Whether you use it while you're building out your application, or in production as a database content management system, Keystone's Admin UI will save you time and make managing your data easy.
Sometimes, async code can get complicated to do simple things. Keystone helps keep simple things - like loading data before displaying it in a view - simple.
Want to validate a form, upload an image, and update your database with a single line? Keystone can do that, based on the data models you've already defined.
Keystone comes ready out of the box with session management and authentication features, including automatic encryption for password fields.
Keystone makes it easy to set up, preview and send template-based emails for your application. It also integrates with Mandrill (Mailchimp's excellent transaction email sending service)
What people have been saying about KeystoneJS
So decided to peruse CMS frameworks built in NodeJS. @KeystoneJS is rock solid and so damn simple to use!— Joshua Jung (@joshua_p_jung) December 6, 2014
@KeystoneJS is simply blowing my mind! Loving it :)— Nick Loyal (@craftbynick) August 27, 2014
Starting with @KeystoneJS , it is momentous & beauteous, kudos to the team behind this awe-inspiring masterpiece.— Shreyansh Jaiswal (@shreyanshsum) June 17, 2014
Have come back to @KeystoneJS to build my portfolio with and I must say I am constantly discovering things that impress me!— Tim Veletta (@TimVeletta) December 4, 2014
@KeystoneJS is the awe in awesome. :)- Lasana Murray (@metasansana)April 22, 2014
If you are developing websites for small to medium (and even large) companies, you cant ignore KeystoneJS.... http://t.co/fFpD2UDNsk— John Cardwell (@saddacracker) November 23, 2014
@KeystoneJS is the way to go. Very fun and easy to develop with. IT'S THE FUTURE!— Gabriel Jablanczy (@Jblnczy) September 14, 2014
@KeystoneJS So far, I'm loving Keystone's versatility! I use WordPress for a lot, but this does so much more, and more easily! Thanks!— Codacity (@Codacity) July 26, 2014
Keystone gives you a beautiful, customisable Admin UI based on your models
There are a lot of frameworks that make decisions for you, and many that take decisions away. Keystone doesn't do that. Use the features that suit you, and replace the ones that don't.
Keystone can configure Express for you, or you can take over and treat Keystone like any other Express middleware.
You can also easily integrate it into an existing Express app.
Keystone uses Mongoose, the leading ODM for node.js and MongoDB, and gives you a single place for your schema, validation rules and logic.
So anything you can build with MongoDB, you can build with Keystone.
Keystone is designed to be as light as you want - you can pick and choose the features you want to include.
Create your own routes, your own database schema, and use any template language you like.
One of the greatest things about node.js is the vast number of quality packages available.
Keystone is designed to let you use any of them, without losing the benefits it provides.
Sound like what you've been looking for? Check out the getting started guide and learn how to get up and running in less than a minute.
If you are using Keystone for a project, interested in contributing, or looking for commercial support, we'd love to hear about it. Please contact us.