Node.js CMS & web application platform

Keystone is an open source framework for developing database-driven websites, applications and APIs in Node.js. Built on Express and MongoDB.

Get Started Try the Demo
  • Current Version 4.0.0-beta.5
  • What's New
  • Free and Open Source (MIT)

Keystone powers websites, apps and APIs for:

Get a head-start on the features you need

KeystoneJS is the easiest way to build database-driven websites, applications and APIs in Node.js.

Express.js and MongoDB

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.

Dynamic Routes

Keystone starts with best practices for setting up your MV* application, and makes it easy to manage your templates, views and routes.

Database Fields

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)

Auto-generated Admin UI

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.

Simpler Code

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.

Form Processing

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.

Session Management

Keystone comes ready out of the box with session management and authentication features, including automatic encryption for password fields.

Email Sending

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)

Community Feedback

What people have been saying about KeystoneJS:

Get Started Try the Demo

Admin Interface

Keystone gives you a beautiful, customisable Admin UI based on your models

What you build is up to you.

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.

Built on Express

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.

Powered by MongoDB

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.

Lightweight and flexible

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.

Extendable

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.

Get Started →

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.

Get In Touch →

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