KeystoneJS is a code-first Node.js framework: you describe lists in TypeScript, and it produces a Prisma schema, a GraphQL API and an admin UI. People hire a Keystone developer to build a portal or content app on it, to take over a project someone else started, or to get off Keystone 5. Keystone 6 is the current line and the repository still shows commits and releases in 2026, so it is a maintained choice.
What the developer will do
- Design lists, fields and relationships in TypeScript, with access control and validation.
- Write hooks for side effects such as emails, syncs and search indexing.
- Shape GraphQL queries and mutations for your frontend and cap query depth.
- Add custom fields and views to the admin UI where editors need them.
- Handle Prisma migrations and Node.js upgrades.
- Migrate a Keystone 5 project, or move data from a different CMS into Keystone.
Our vetting list
The framework is small, so we look at the engineer more than at the tool.
- Access control. Can they write list, field and item level rules, and test them like application code?
- Prisma migrations. What happens to production data when a field type changes?
- GraphQL limits. Unbounded queries are an easy way to take down the server. We ask how they prevent it.
- Admin customization. Keystone’s admin is React, and custom fields need real component work. We ask to see one they built, and how it behaves when the underlying list changes.
- Missing pieces. Live preview, scheduled publishing and approval steps are not built in. We ask how they would add one.
What a Keystone developer ships first
Week one: read the schema, run the project locally, and map which rules sit in access control versus hooks. Week two: ship one small change, such as a field or a rule with its test. The next two weeks go to the main task. For a Keystone 5 project that means a migration plan with a data export and a parallel run, not a big-bang switch. For a new build it means the first end-to-end slice: list, API, admin view and a frontend query.
How to engage
Your team probably already runs Node.js services, so one developer slots in easily. To cover a gap for a few months, use staff augmentation. If design, frontend and QA come with the build, a dedicated team is the cleaner contract. Rates across roles and seniority are $50 to $150 per hour.
Is Keystone the right platform?
It is not always. If the CMS should sit in your Next.js repository, we usually point to Payload, and for a larger plugin ecosystem to Strapi. Our KeystoneJS development services page lays out the trade-offs. For other platforms, see headless CMS developers.