Keystone 5 has been moved into maintenance mode by its original creators, who recommend Keystone 6. However, we believe Keystone 6 is architecturally less extensible than its predecessor. Therefore, we have created this fork, which we actively update and maintain.
-
-
KeystoneJS
+
+
Open Keystone
A scalable platform and CMS to build Node.js applications.
schema => ({ GraphQL, AdminUI })
-
Keystone comes with first-class GraphQL support, a highly extensible architecture, and a wonderful Admin UI.
- Looking for Keystone v4.x / Keystone Classic? Head over to keystone-classic.
+
Open Keystone comes with first-class GraphQL support, a highly extensible architecture, and a wonderful Admin UI.
-
-[](https://community.keystonejs.com/)
-[](http://thinkmill.com.au/?utm_source=github&utm_medium=badge&utm_campaign=react-select)
+
+[
## Contents
@@ -37,31 +32,19 @@
## What's new?
-Keystone 5 is a complete re-imagining of older versions It builds on the lessons we learned over the last 5 years of the KeystoneJS' history and focuses on the things we believe are the most powerful features for modern web and mobile applications.
+`Open Keystone` is a fork of `Keystone 5`, which we maintain and enhance. It's built upon the solid foundation of Keystone 5 and is designed for modern web and mobile applications where flexible architecture and extensibility are key.
-This means less focus on hand-holding Node.js template-driven websites and more focus on flexible architecture, a powerful GraphQL API with deep authentication & access control features, an extensible Admin UI and plugins for rich field types, file and database adapters, and session management.
+`Keystone 6` moved towards a more restricted internal architecture, which we found less suitable for complex use cases. By maintaining `Open Keystone`, we preserve the powerful GraphQL API with deep authentication & access control features, the extensible Admin UI, and the plugin-based system for field types, database adapters, and more.
-We believe it's a powerful backend for rich React / Vue / Angular applications, Gatsby and Next.js websites, Mobile applications and more. It also makes a great Headless CMS.
+We believe `Open Keystone` is a superior backend for rich React / Vue / Angular applications, Gatsby and Next.js websites, mobile applications, and headless CMS implementations.
## Getting Started
-To get up and running with a basic project template, run the following commands.
-
-```shell
-yarn create keystone-5-app my-app
-cd my-app
-yarn start
-```
-
-For more details and system requirements, check out the [5 Minute Quick Start
-Guide](https://v5.keystonejs.com/quick-start/).
+To get up and running with a basic project template using Open Keystone, follow the installation instructions below.
## Documentation
-The [Keystone 5 API documentation](https://v5.keystonejs.com/api) contains a reference for all KeystoneJS packages.
-
-For walk-throughs and discussions, see the [Keystone 5 Guides
-documentation](https://v5.keystonejs.com/guides).
+The [Open Keystone documentation](./docs/api) and [Guides](./docs/guides) provide a great starting point.
## Version control
@@ -83,93 +66,24 @@ You will find the set-up steps in this readme and full release processes and pro
### Contributors
-We'd like to start by thanking all our wonderful contributors:
+We'd like to start by thanking all our wonderful open keystone contributors:
([emoji key](https://allcontributors.org/docs/en/emoji-key)):
-
-
-
-
-
-
+
### Demo Projects
-These projects are designed to show off different aspects of KeystoneJS features
+These projects are designed to show off different aspects of OpenKeystone features
at a range of complexities (from a simple Todo App to a complex Meetup Site).
-See the [`examples/README.md`](/examples/README.md) docs to get
+See the [`examples/README.md`](./examples/README.md) docs to get
started.
### Development Practices
@@ -182,12 +96,12 @@ The `lint` script will validate source code with both ESLint and prettier.
### Setup
-Keystone 5 is set up as a monorepo, using [Yarn Workspaces](https://yarnpkg.com/lang/en/docs/workspaces/). Make sure to [install Yarn](https://yarnpkg.com/lang/en/docs/install) if you haven't already.
+Open Keystone is set up as a monorepo, using [Yarn Workspaces](https://yarnpkg.com/lang/en/docs/workspaces/). Make sure to [install Yarn](https://yarnpkg.com/lang/en/docs/install) if you haven't already.
-First, clone the Keystone 5 repository
+First, clone the Open Keystone repository
```
-git clone https://github.com/keystonejs/keystone-5.git
+git clone https://github.com/open-keystone/open-keystone.git
```
Also make sure you have a local MongoDB server running
@@ -200,7 +114,7 @@ yarn
yarn dev
```
-See [`examples/README.md`](/examples/README.md) for more details on
+See [`examples/README.md`](./examples/README.md) for more details on
the available demo projects.
#### Note For Windows Users
@@ -216,7 +130,7 @@ This is due to permission restrictions regarding the creation of [symbolic links
### Testing
Keystone uses [Jest](https://facebook.github.io/jest) for unit tests and [Cypress](https://www.cypress.io) for end-to-end tests.
-All tests can be run locally and on [GitHub](https://github.com/keystonejs/keystone-5/actions?query=workflow%3ACI).
+All tests can be run locally and on [GitHub](https://github.com/open-condo-software/open-keystone/actions?query=workflow%3ACI).
### Unit Tests
@@ -233,12 +147,6 @@ To see test coverage of the files touched by the unit tests, run:
yarn jest --coverage
```
-To see test coverage of the entire monorepo, including files which have zero test coverage, use the special script:
-
-```shell
-yarn coverage
-```
-
### End-to-End Tests
Keystone tests end-to-end functionality with the help of [Cypress](https://www.cypress.io).
@@ -264,12 +172,13 @@ yarn cypress:run
```
_NOTE: The output from this command will mix together the output from each project being tested in parallel._
-_This is only recommended as sanity check before pushing code._
+_This is only recommended as a sanity check before pushing code._
## Code of Conduct
-KeystoneJS adheres to the [Contributor Covenant Code of Conduct](/code-of-conduct.md).
+Open Keystone adheres to the [Contributor Covenant Code of Conduct](./code-of-conduct.md).
## License
-Copyright (c) 2019 Jed Watson. Licensed under the MIT License.
+Copyright (c) 2026 Open Condo Software. Licensed under the MIT License.
+Based on the [KeystoneJS](https://github.com/keystonejs/keystone) MIT project.
diff --git a/website/src/components/SiteMeta.js b/website/src/components/SiteMeta.js
index c07ebffad6..c8a330545c 100644
--- a/website/src/components/SiteMeta.js
+++ b/website/src/components/SiteMeta.js
@@ -17,7 +17,7 @@ export const SiteMeta = ({ pathname }) => (
`}
render={({
site: {
- siteMetadata: { siteUrl, title, twitter },
+ siteMetadata: { siteUrl, title },
},
}) => {
// NOTE: site.webmanifest is handled in "gatsby-config.js" by "gatsby-plugin-manifest"
@@ -32,13 +32,9 @@ export const SiteMeta = ({ pathname }) => (
-
-
-
-
-
-
-
+
+
+
@@ -48,10 +44,6 @@ export const SiteMeta = ({ pathname }) => (
-
-
-
-
);
}}
diff --git a/website/static/android-chrome-192x192.png b/website/static/android-chrome-192x192.png
deleted file mode 100755
index 2c22828409..0000000000
Binary files a/website/static/android-chrome-192x192.png and /dev/null differ
diff --git a/website/static/android-chrome-512x512.png b/website/static/android-chrome-512x512.png
deleted file mode 100755
index 04e33e2d37..0000000000
Binary files a/website/static/android-chrome-512x512.png and /dev/null differ
diff --git a/website/static/apple-touch-icon.png b/website/static/apple-touch-icon.png
deleted file mode 100644
index 9c239cd955..0000000000
Binary files a/website/static/apple-touch-icon.png and /dev/null differ
diff --git a/website/static/browserconfig.xml b/website/static/browserconfig.xml
deleted file mode 100644
index 632f74c868..0000000000
--- a/website/static/browserconfig.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
- #2d89ef
-
-
-
diff --git a/website/static/favicon-16x16.png b/website/static/favicon-16x16.png
deleted file mode 100644
index b568f1ee71..0000000000
Binary files a/website/static/favicon-16x16.png and /dev/null differ
diff --git a/website/static/favicon-32x32.png b/website/static/favicon-32x32.png
deleted file mode 100644
index f6f4856c4c..0000000000
Binary files a/website/static/favicon-32x32.png and /dev/null differ
diff --git a/website/static/favicon.ico b/website/static/favicon.ico
deleted file mode 100644
index 88d12054c0..0000000000
Binary files a/website/static/favicon.ico and /dev/null differ
diff --git a/website/static/favicon.svg b/website/static/favicon.svg
new file mode 100644
index 0000000000..7392742fb2
--- /dev/null
+++ b/website/static/favicon.svg
@@ -0,0 +1,10 @@
+
diff --git a/website/static/mstile-144x144.png b/website/static/mstile-144x144.png
deleted file mode 100644
index 20afbb1845..0000000000
Binary files a/website/static/mstile-144x144.png and /dev/null differ
diff --git a/website/static/mstile-150x150.png b/website/static/mstile-150x150.png
deleted file mode 100644
index 831f852fc6..0000000000
Binary files a/website/static/mstile-150x150.png and /dev/null differ
diff --git a/website/static/mstile-310x150.png b/website/static/mstile-310x150.png
deleted file mode 100644
index 6e0e0d0376..0000000000
Binary files a/website/static/mstile-310x150.png and /dev/null differ
diff --git a/website/static/mstile-310x310.png b/website/static/mstile-310x310.png
deleted file mode 100644
index 62cfc871d9..0000000000
Binary files a/website/static/mstile-310x310.png and /dev/null differ
diff --git a/website/static/mstile-70x70.png b/website/static/mstile-70x70.png
deleted file mode 100644
index 3fbfb1c9c6..0000000000
Binary files a/website/static/mstile-70x70.png and /dev/null differ
diff --git a/website/static/og-image-landscape.png b/website/static/og-image-landscape.png
old mode 100755
new mode 100644
index 6fa5af6745..ad3a13c37c
Binary files a/website/static/og-image-landscape.png and b/website/static/og-image-landscape.png differ
diff --git a/website/static/og-image-square.png b/website/static/og-image-square.png
deleted file mode 100755
index fc9cc759a4..0000000000
Binary files a/website/static/og-image-square.png and /dev/null differ
diff --git a/website/static/readme-header.png b/website/static/readme-header.png
old mode 100755
new mode 100644
index 9f8ef1bed2..5f132ac29e
Binary files a/website/static/readme-header.png and b/website/static/readme-header.png differ
diff --git a/website/static/safari-pinned-tab.svg b/website/static/safari-pinned-tab.svg
index 6e4e0aeb81..a557690058 100644
--- a/website/static/safari-pinned-tab.svg
+++ b/website/static/safari-pinned-tab.svg
@@ -1,24 +1,10 @@
-
-
-