Roadmap
After a year of development, Keystone 6 is in the final stages of Community Preview.
This means we're integrating feedback and tweaking our APIs before finalising our move from v5 to v6, and publishing packages under the @keystone-next
scope on npm.
In Q3 2021 we'll be moving Keystone 6 to General Availability, graduating to the @keystone-6
namespace on npm, and will commit to a stable set of APIs for you to build on confidently.
Research
We started looking at what the next generation of cms platforms could look like, and how to dramatically improve Keystone's developer experience
Development
Confident about our approach and the benefits, we started building the new interfaces around Keystone 5's core with Prisma and TypeScript
Community Preview
We published the New Interfaces as @keystone-next
on npm, and have been iterating based on internal & community feedback
General Availability
Finalised our new architecture and API updates, including comprehensive documentation. Published as @keystone-6
on npm.
Ready to get started with Keystone 6?Read the Docs
What's Next
Here are the upcoming technical foundations and features we're planning to focus on. Changes that impact API stability are being prioritised ahead of Keystone 6 reaching general availability. We've included status markers so you can get an idea of what we're up to with each of them.
More guides and walkthroughs
Making It HappenWe know the highest priority for our users is guides and walkthroughs of how to implement various solutions with Keystone, so we're planning to greatly expand this part of our documentation (including corresponding example repos)
New back-end APIs for Node.js apps
Figuring It OutKeystone has so far focused on delivering a great GraphQL API for front-end apps to use. We're expanding on this with first class support for accessing the same APIs from Node.js so you have more flexibility in how you write your apps, including hybrid use-cases.
These new APIs will make fetching and updating your Keystone data from custom GraphQL queries and resolvers, express apps, and server-side frameworks like Next.js incredibly straight-forward.
GraphQL API Updates
Figuring It OutKeystone's GraphQL API has been stable (no breaking changes!) for several years now. While this has been great for building front-end apps with confidence, it has held us back from fixing some pain points (like error handling) for a while now.
We take the stability of code written against Keystone very seriously, and with that in mind are planning to make some changes to the API that we expect to provide backwards-compatibility and streamlined migration stories for.
Improved Build and Deployment Options
Wrapping It UpDeploying a database-backed application to production is still surprisingly complex, and it can be challenging to find the right tradeoffs and hosting providers. So we're looking at ways Keystone can help streamline these options.
This will include building for serverless environments, targeting different architectures for your GraphQL API and Admin UI applications, and independent dev
, build
and start
commands. Thanks to Prisma, it will also include tools for previewing and managing database changes.
New Image and File functionality
Making It HappenWe are building new functionality for handling images and files in Keystone. Initially this will mean support for local image and file uploads, and we have plans to expand this into native cloud hosting support as well.
Better Admin UI Accessibility (a11y)
Making It HappenAs web developers, we all know how important accessibility is, but very few CMS UIs are truly accessible. We're changing that by baking first class accessibility into Keystone's Admin UI.
Field Types Review
There's a PlanWe're planning to revisit our field types and make them more powerful and consistent. This will include new interface options for the Admin UI, new features for validation and logic, and better null
value handling.
Admin UI Translation
There's a PlanIf you have users who speak a languge other than English, you'll soon be able to provide a custom translation for all the strings in Keystone's Admin UI.
Custom Admin UI Pages, Navigation and APIs
Figuring It OutAs your app outgrows the built-in CRUD queries and mutations that Keystone provides, we want the Admin UI to continue to be a comprehensive solution for your users. We're working on a framework that will let you extend the Admin UI with your own custom pages, React components, API route handlers and navigation - so you can make it your own.
Admin UI Field Groups and Dynamic Updates
Not StartedWhen lists get complex, you want to break up the form into multiple sections of fields. Also, some fields depend on the value of others, and the form should update dynamically as item data is changed.
We're planning to design a way of defining this behaviour in your List Schema, so you can ship a better authoring experience out of the box.
Nested (JSON) Fields
Not StartedOften when you're working with items, you want to allow content authors to manage nested repeating data. Relationships have traditionally been the answer for this, but come with complexity and can't be ordered.
So we're looking to add support for defining simplified nested schemas to lists, which will be stored in a JSON field in the database.
Singletons
Not StartedKeystone is great for lists of data, but sometimes you want a single object that is editable through the Admin UI and accessible in the GraphQL API. So we're planning to add the ability to define singletons in Keystone's Schema.
Sortable list items
Not StartedEver wanted a list of items you can sort by dragging and dropping them in the Admin UI? We have.
And it will custom with custom mutations for handling ordering operations like insertBefore
and insertAfter
so it's just as easy for you to build your own UIs for sorting items in the list too.
Translation Support
Not StartedIf you're building a website with multi-language support, in Keystone 5 you'd have to add individual fields for each translation. To make for a better authoring experience, simpler schema definition, and streamlined experience for front-end developers we're planning to build first-class support for translated fields into Keystone.
Draft / Preview / Publishing Workflow
Not StartedPreviewing content changes is a critical part of editing with confidence, but it's hard to implement consistently across sets of changes in a relational database backend.
Now that popular front-ends like Next.js have built-in support for live content previews, we're planning to develop an integrated workflow for Keystone content that will allow authors to preview sets of content changes in draft, and publish them atomically.
We're also looking at a built-in solution for tracking changes and version history.