# Drupal vs KeystoneJS

| Attribute | Drupal | KeystoneJS |
|---|---|---|
| **vioscaleAI score** | 58.8 (44% (low)) | 62.6 (61% (medium)) |
| activity.commits_last_30d | 95 | 100 |
| adoption.dependent_repos | 158 | - |
| adoption.github_stars | 4,291 | 9,974 |
| content.faq | `[{"answer":"Drupal is a community-driven, open-source platform for creating and managing digital content at enterprise scale. It offers an API-first, composable architecture suitable for both traditional websites and complex digital experiences, with no-code/low-code options for non-technical users and advanced customization capabilities for developers. It is indexed under CMS Software.","source":"https://www.drupal.org","question":"What is Drupal?","confidence":0.6},{"answer":"Drupal is open source, so it can be self-hosted and used at no licence cost. Pricing changes often, so verify at source before relying on it.","source":"https://www.drupal.org","question":"Is Drupal free to use?","confidence":0.6},{"answer":"Drupal supports the web and a command-line interface. Platforms we have not confirmed are simply not listed here rather than ruled out.","source":"https://www.drupal.org","question":"What platforms does Drupal support?","confidence":0.6},{"answer":"Yes. Drupal can be deployed cloud / SaaS and self-hosted, so it does not have to run on the vendor's infrastructure.","source":"https://www.drupal.org","question":"Can Drupal be self-hosted?","confidence":0.6},{"answer":"We have independently confirmed GDPR for Drupal. Certifications we do not list are ones we have not been able to verify from public sources, which is not the same as Drupal not holding them. Always confirm compliance directly before you rely on it.","source":"https://www.drupal.org/security","question":"What security certifications does Drupal have?","confidence":0.7}]` | `[{"answer":"A headless CMS for developers that provides a GraphQL API and management UI for content and data. Developers define a schema and get a powerful backend without boilerplate or bootstrapping. It is indexed under CMS Software.","source":"https://keystonejs.com","question":"What is KeystoneJS?","confidence":0.6},{"answer":"KeystoneJS is open source, so it can be self-hosted and used at no licence cost. It is released under the MIT licence. Pricing changes often, so verify at source before relying on it.","source":"https://keystonejs.com","question":"Is KeystoneJS free to use?","confidence":0.6},{"answer":"KeystoneJS supports the web and a command-line interface. Platforms we have not confirmed are simply not listed here rather than ruled out.","source":"https://keystonejs.com","question":"What platforms does KeystoneJS support?","confidence":0.6},{"answer":"Yes. KeystoneJS can be deployed self-hosted, so it does not have to run on the vendor's infrastructure.","source":"https://keystonejs.com","question":"Can KeystoneJS be self-hosted?","confidence":0.6},{"answer":"We have confirmed 4 integrations for KeystoneJS, including Cloudinary, Prisma, Apollo Client and OpenTelemetry. This is what we could verify from public sources, so the vendor may support others we have not indexed.","source":"https://keystonejs.com","question":"What does KeystoneJS integrate with?","confidence":0.6},{"answer":"Yes. KeystoneJS is published under the MIT licence, a permissive licence that generally allows commercial use and modification. Licence terms can change between releases, so verify against the repository for the version you intend to use.","source":"https://github.com/keystonejs/keystone","question":"Is KeystoneJS open source?","confidence":0.95}]` |
| deployment.options | `{"cloud":true,"self_hosted":true}` | `{"cloud":true,"self_hosted":true}` |
| description.long | An open-source platform enabling organizations to build and manage digital experiences through a composable, API-first architecture that supports decoupled front-end delivery, structured content management, editorial workflows, and integrated AI tools. | A headless CMS for developers that provides a GraphQL API and management UI for content and data. Developers define a schema and get a powerful backend without boilerplate or bootstrapping. |
| features.capabilities | `{"cms_type":"headless","free_tier":true,"open_source":true,"git_workflow":true,"headless_api":true,"localization":true,"self_hostable":true,"visual_builder":true,"managed_hosting":true,"content_workflow":true,"plugin_ecosystem":"Community-supported modules, themes, and recipes","structured_content":true}` | `{"cms_type":"headless","free_tier":true,"open_source":true,"git_workflow":true,"headless_api":true,"pricing_model":"open_source_free","self_hostable":true,"visual_builder":true,"managed_hosting":true,"content_workflow":true,"deployment_model":"self_hosted_open_source","plugin_ecosystem":"Custom field types and extensible architecture","structured_content":true,"graphql_api_native_delivery":true,"visual_content_modeling_schema_builder":true,"granular_role_based_access_control_rbac":true}` |
| integrations.count | - | 4 |
| integrations.list | - | `[{"name":"Cloudinary"},{"name":"Prisma"},{"name":"Apollo Client"},{"name":"OpenTelemetry"}]` |
| language.primary | PHP | TypeScript |
| license.spdx | - | MIT |
| market.availability | `{"primaryMarkets":[],"availabilityScope":"global","availableCountries":[],"notAvailableCountries":[]}` | - |
| platform.support | `{"cli":true,"web":true}` | `{"cli":true,"web":true}` |
| pricing | `{"type":"open_source","summary":"Open source and free","freeTier":true,"sourceUrl":"https://www.drupal.org","retrievedAt":"2026-08-14T15:29:30.320Z"}` | `{"type":"open_source","summary":"Free and open source","freeTier":true,"sourceUrl":"https://keystonejs.com","retrievedAt":"2026-08-03T14:26:59.733Z"}` |
| pricing.free_tier | yes | yes |
| pricing.model | open_source | open_source |
| pricing.price_level | free | free |
| pricing.transparent | yes | yes |
| release.cadence_days | - | 13 |
| release.history | - | `[{"url":"https://github.com/keystonejs/keystone/releases/tag/2026-08-31","date":"2026-08-31T04:57:56Z","type":"stable","version":"2026-08-31"},{"url":"https://github.com/keystonejs/keystone/releases/tag/2026-08-20","date":"2026-08-20T01:10:41Z","type":"stable","version":"2026-08-20"},{"url":"https://github.com/keystonejs/keystone/releases/tag/2026-08-18","date":"2026-08-18T05:59:51Z","type":"stable","version":"2026-08-18"},{"url":"https://github.com/keystonejs/keystone/releases/tag/2026-08-11","date":"2026-08-11T07:07:11Z","type":"stable","version":"2026-08-11"},{"url":"https://github.com/keystonejs/keystone/releases/tag/2026-08-10","date":"2026-08-10T00:47:02Z","type":"stable","version":"2026-08-10"},{"url":"https://github.com/keystonejs/keystone/releases/tag/2026-08-03","date":"2026-08-03T04:54:56Z","type":"stable","version":"2026-08-03"},{"url":"https://github.com/keystonejs/keystone/releases/tag/2026-07-31","date":"2026-07-31T07:00:27Z","type":"stable","version":"2026-07-31"},{"url":"https://github.com/keystonejs/keystone/releases/tag/2026-07-28","date":"2026-07-28T00:02:33Z","type":"stable","version":"2026-07-28"},{"url":"https://github.com/keystonejs/keystone/releases/tag/2026-07-21","date":"2026-07-21T04:06:31Z","type":"stable","version":"2026-07-21"},{"url":"https://github.com/keystonejs/keystone/releases/tag/2026-07-01","date":"2026-07-01T02:01:17Z","type":"stable","version":"2026-07-01"},{"url":"https://github.com/keystonejs/keystone/releases/tag/2026-03-19","date":"2026-03-20T00:04:21Z","type":"stable","version":"2026-03-19"},{"url":"https://github.com/keystonejs/keystone/releases/tag/2025-05-06","date":"2025-05-05T23:28:38Z","type":"stable","version":"2025-05-06"},{"url":"https://github.com/keystonejs/keystone/releases/tag/2025-05-05","date":"2025-05-05T03:38:19Z","type":"stable","version":"2025-05-05"},{"url":"https://github.com/keystonejs/keystone/releases/tag/2025-02-24","date":"2025-02-24T02:39:57Z","type":"stable","version":"2025-02-24"},{"url":"https://github.com/keystonejs/keystone/releases/tag/2024-11-07","date":"2024-11-07T03:43:43Z","type":"stable","version":"2024-11-07"},{"url":"https://github.com/keystonejs/keystone/releases/tag/2024-08-28","date":"2024-08-28T11:48:04Z","type":"stable","version":"2024-08-28"},{"url":"https://github.com/keystonejs/keystone/releases/tag/2024-08-09","date":"2024-08-09T02:23:08Z","type":"stable","version":"2024-08-09"},{"url":"https://github.com/keystonejs/keystone/releases/tag/2024-04-30","date":"2024-04-30T06:08:38Z","type":"stable","version":"2024-04-30"},{"url":"https://github.com/keystonejs/keystone/releases/tag/2024-04-16","date":"2024-04-16T01:47:15Z","type":"stable","version":"2024-04-16"},{"url":"https://github.com/keystonejs/keystone/releases/tag/2024-04-02","date":"2024-04-02T01:56:33Z","type":"stable","version":"2024-04-02"}]` |
| security.gdpr | yes | - |
| security.scorecard | 3.9 | 5.2 |
| security.trust_center | https://www.drupal.org/security | - |
| security.vulnerabilities | `{"count":83,"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=packagist&package_name=drupal%2Fdrupal&per_page=100","last_12m":0,"max_severity":"CRITICAL"}` | - |

## Capabilities (CMS Software)

| Capability | Drupal | KeystoneJS |
|---|:--:|:--:|
| **Core** |  |  |
| CMS type | Headless / API-first | Headless / API-first |
| **Licensing** |  |  |
| Open-source | ✓ | ✓ |
| **Deployment** |  |  |
| Self-hostable | ✓ | ✓ |
| Managed / cloud hosting offered | ✓ | ✓ |
| **Delivery** |  |  |
| Headless API (REST/GraphQL) | ✓ | ✓ |
| **Content** |  |  |
| Structured content modelling | ✓ | ✓ |
| Localisation / i18n | ✓ | - |
| Content workflow / approvals | ✓ | ✓ |
| **Editing** |  |  |
| Visual / no-code page builder | ✓ | ✓ |
| **Extensibility** |  |  |
| Plugin / app ecosystem size | Community-supported modules, themes, and recipes | Custom field types and extensible architecture |
| **Scale** |  |  |
| Multi-site / multi-tenant | - | - |
| **Workflow** |  |  |
| Git-based / code-first workflow | ✓ | ✓ |
| **Pricing** |  |  |
| Free / open tier | ✓ | ✓ |

*Source: vioscaleAI. Generated 2026-10-16T17:47:10.583Z. "-" = undocumented, not absent.*
