Keystone is an open source framework for developing database-driven websites, applications and APIs in Node.js. Built on Express and MongoDB.
Keystone powers websites, apps and APIs for:
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)
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.
\nCreate 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.
Created by @jedwatson, @bladey and @jossmackison at Thinkmill, and other contributors under the MIT License