explaingit

keystonejs/keystone-classic

Analysis updated 2026-06-24

14,520JavaScriptAudience · developerComplexity · 3/5LicenseSetup · moderate

TLDR

Archived version 4 of KeystoneJS, a Node.js CMS and web framework built on Express and MongoDB with a generated admin UI. New projects should use Keystone 6 instead.

Mindmap

mindmap
  root((Keystone Classic))
    Inputs
      Content models
      MongoDB data
      Field definitions
    Outputs
      Admin web UI
      Express routes
      REST endpoints
    Use Cases
      Maintain legacy CMS
      Migrate to Keystone 6
      Reference old field types
    Tech Stack
      Node.js
      Express
      Mongoose
      MongoDB
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Keep an existing Keystone v4 site running while planning a migration off the framework.

USE CASE 2

Reference the old field-type implementations when porting a legacy schema to Keystone 6.

USE CASE 3

Scaffold a quick prototype CMS for an internal tool that only needs MongoDB and an admin UI.

USE CASE 4

Study Express + Mongoose patterns from an older mature Node.js codebase.

What is it built with?

Node.jsExpressMongooseMongoDBJavaScript

How does it compare?

keystonejs/keystone-classicmithriljs/mithril.jsgraphql/graphql-spec
Stars14,52014,48614,571
LanguageJavaScriptJavaScriptJavaScript
Setup difficultymoderateeasyeasy
Complexity3/52/54/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Project is archived. New work should target Keystone 6 in a separate repo, and you need a running MongoDB instance to start.

MIT license, you can use, modify, and redistribute it freely, including commercially, as long as you keep the copyright notice.

In plain English

Keystone Classic is an older version of KeystoneJS, a content management system and web app framework that runs on Node.js. The first line of the README is an archived notice: the project no longer receives updates, and the maintainers point new users to Keystone 6 in a separate repository. What sits in this repository is the historical version 4 codebase, kept around for reference and for projects that have not yet migrated. The framework is built on top of two well known Node.js libraries. The web server side uses Express, which handles routes and requests. The data side uses Mongoose, which is the standard way of talking to a MongoDB database from Node.js. On top of those, Keystone adds two main things: a way to describe content models in JavaScript, and a generated admin web interface so non-developers can edit the content. The README mentions a demo site as a way to see the admin UI in action. Getting started is shown in two ways. The recommended way is to run a Yeoman generator: install generator-keystone globally with npm, run "yo keystone", answer a few questions, and the tool scaffolds a new project. The other way is to add keystone as a dependency in an existing package.json and require it directly. Configuration is done either by passing an object to keystone.init or by calling keystone.set for each setting before keystone.start. A lot of Keystone's value is in its field types. On top of MongoDB's basic types, it provides richer fields for things like images (with resizing), dates and numbers (with formatting helpers), select options, and addresses backed by Google Places. Each field type also gets a matching widget in the admin UI. For production deployments, the README asks users to set NODE_ENV=production, which switches on template caching, HTML minification, and simpler error reporting. The project is MIT licensed, was led by Jed Watson, Joss Mackison, and Max Stoiber, and was supported by Thinkmill in Sydney, Australia.

Copy-paste prompts

Prompt 1
I have a Keystone v4 site stuck on Node 12. Write a step-by-step migration plan to move the content models to Keystone 6 with PostgreSQL.
Prompt 2
Generate a new Keystone Classic project with yo keystone and add a Post model with title, slug, body, and an Image field. Show the model file.
Prompt 3
Configure Keystone Classic for production with NODE_ENV=production. List the exact keystone.set calls for template caching, HTML minification, and MongoDB connection string.
Prompt 4
Build an Express route in Keystone Classic that returns the latest 10 published posts as JSON, using the Post model defined in models/Post.js.
Prompt 5
Compare Keystone Classic, Keystone 6, Strapi, and Payload CMS for a Node.js team in 2026. Which is the safest pick for a new project?

Frequently asked questions

What is keystone-classic?

Archived version 4 of KeystoneJS, a Node.js CMS and web framework built on Express and MongoDB with a generated admin UI. New projects should use Keystone 6 instead.

What language is keystone-classic written in?

Mainly JavaScript. The stack also includes Node.js, Express, Mongoose.

What license does keystone-classic use?

MIT license, you can use, modify, and redistribute it freely, including commercially, as long as you keep the copyright notice.

How hard is keystone-classic to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is keystone-classic for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.