How to run a headless CMS RFP with these questions
A headless CMS RFP questions list only works if every bidder answers the same questions in writing, on the same scope. Send the questions as a single document with a fixed response deadline, a named scope (product, version, hosting location, number of editors and sites), and a rule that answers must reference the environment you will run, not a generic product claim. Ask each partner to state which Strapi, Payload or Directus product line and version they will install, and whether that choice is their recommendation or your requirement. Keep a written log of clarifications and share answers with all bidders so that no one answers from a different baseline.
Score the answers against a fixed matrix agreed before responses arrive. Weight the items that carry the most risk for your organization, such as content model design, preview for editors, migration of existing content and the handling of major version upgrades. For each licensing and feature question, require a written statement that lists which features sit in a paid edition and which are in the community code, with the price basis the vendor applies. Strapi publishes separate self-hosted tiers, with SSO as an add-on on Growth and included in Enterprise, and audit logs and review workflows reserved for Enterprise, so confirm that each bidder's table matches the vendor's current pricing page on the day you read it. Treat any answer that cannot be traced to a vendor source as an open item, not a point in the bidder's favor.
Ask for a written statement on version handling before you sign. For Strapi, confirm how the partner will treat the move from v4 to v5, since v4 reached end of life on April 30, 2026, and confirm that a database backup is taken first because downgrading is not supported. Ask how upgrades to later v5 minor releases will be tested, scheduled and rolled back, and who signs off each change. Ask the same of Payload and Directus, including the Payload v4.0.0 beta line and Directus release cadence. A partner that cannot name the version it will deliver, the upgrade path it will follow and the paid-edition features it will rely on should not be scored as a complete response.
Which questions to ask about the content model, editing and APIs
How should a partner design a headless CMS content model?
A good partner starts from the content types editors actually publish, not from the page layouts. The answer should include a sample model with collections or content types, their fields, relations and the components reused across them, such as an article, author, product or event. Ask for the model as a diagram or schema file before build starts, and ask how changes are versioned in code and reviewed. Confirm whether the model is defined in code (common with Payload) or in the admin interface and exported (common with Strapi and Directus), because that choice decides how environments are promoted.
What should a role matrix for editors include in a headless CMS?
A useful role matrix lists each role, what it can create, edit, publish and delete per content type, and which locales or brands it can touch. It should also show who can administer users and permissions, and who can see drafts. Ask the partner to produce the matrix as a table before configuration, then test it with real editor accounts. Confirm which role controls are in the community edition and which depend on a paid plan, since Strapi, for example, places audit logs and review workflows in its Enterprise tier.
Which workflow features does the partner need to configure for review and publishing?
The answer should name the workflow stages (draft, review, approved, scheduled, published), who moves content between them, and whether scheduled publishing is built in or handled by a job. Ask how the partner records who approved what and when. Strapi's self-hosted plans list content history and releases from the Growth tier and review workflows and audit logs under Enterprise, so a buyer should confirm which edition covers each step. Ask for a test script that walks one article through every stage.
How does editor preview work for draft content before it goes live?
A strong answer names the preview mechanism and the front end that renders it. Typically the CMS passes a draft token or preview URL to the front-end application, which fetches unpublished versions through the API. Payload documents live preview in its admin panel, while Directus and Strapi rely on preview endpoints configured in the front end. Ask the partner which preview path each content type uses, how preview tokens expire, and how preview is kept off public caches. Confirm the approach on a staging copy of your own front end, not a demo site.
Should the API be REST or GraphQL, and how is access controlled?
Both Strapi and Directus expose REST and GraphQL APIs, and Payload provides a REST and GraphQL layer alongside its local API, so the choice depends on the front end's needs. Ask the partner to explain the query patterns, pagination limits, depth limits and caching headers for each API. Confirm how public read access differs from authenticated write access, and whether tokens are scoped per role. Directus generates its APIs from the database schema, which changes how schema changes reach the API, so ask how that is tested.
How does the partner handle media uploads, storage and image sizing?
The answer should cover where files are stored (local disk, object storage or a CDN origin), how image variants are generated, and who can upload or delete assets. Ask for the storage provider and backup plan, the maximum file sizes allowed for each content type, and how alt text and metadata fields are required. Confirm whether the chosen platform's upload provider works with your object storage, since plugin support varies by product and version. Ask how removed assets are cleaned up so storage costs do not grow unbounded.
How do locales and translations fit into the content model?
A good answer shows whether each localized field is stored per locale in the same document or as separate entries, and how fallback to a default language works. Ask the partner to show one article in two locales with its URL and SEO fields. Confirm which localization features are included in the community edition of your chosen platform and which need configuration or plugins, and ask how translation handoff to an agency or machine translation service is tested before launch.
Which features need a paid plan, and how to ask about them
Strapi splits its code by license. The Community Edition is under the MIT Expat license, while code in ee directories belongs to the Enterprise Edition under a separate Strapi license. Self-hosted pricing is published in tiers, so the features your organization needs determine which tier the quote must cover.
- Community: the free tier, with unlimited users, REST and GraphQL APIs, and unlimited entries and API calls according to Strapi's self-hosted pricing page.
- Growth: listed at 45 US dollars per month including 3 users, plus 15 dollars per extra user. Content history and releases start at this tier.
- SSO: an add-on on Growth and included in Enterprise. It covers administrator login to the admin panel only, not end-user authentication.
- Enterprise: custom pricing. Audit logs and review workflows are Enterprise features.
- Hosting: Strapi Cloud is priced separately, so a self-hosted quote should not assume it.
Ask the partner to confirm which tier each requirement (SSO, audit logs, review stages, content history) needs and to state the plan and license the quote assumes.
Payload is an open source Next.js framework licensed under MIT. Its built-in features, including authentication, versions and drafts, localization, field-level access control, hooks, live preview and a customizable React admin panel, are part of the open source code. Payload does not publish a tiered self-hosted plan with per-seat fees in the sources reviewed for this page, so the cost question shifts to engineering effort and hosting.
- Built-in features: authentication, versions and drafts, and live preview ship in the framework rather than a paid edition.
- Admin and customer users: both can be managed inside the CMS itself.
- Hosting: Payload can run on Vercel, Cloudflare Workers with R2 and D1, or self-hosted anywhere. Each option carries its own recurring bill.
- Enterprise support: any vendor support, custom SLA or commercial agreement is a separate contract. Confirm whether one exists before assuming it.
- Version line: a v4.0.0 beta line is in progress, so ask which version and license the quote assumes.
Ask the partner to list which capabilities they plan to build as custom code and which depend on any paid or third-party add-on, in writing.
Directus is licensed under the Monospace Sustainable Core License 1.0. The license permits any use except a Competing Use against Monospace's paid offerings, and it explicitly allows internal use and professional services to deploy or host Directus for a licensee. Because the license is not MIT or Apache, legal review of the terms should happen before the architecture is fixed.
- Permitted use: internal use and professional services are allowed, but a Competing Use is not.
- Conversion: each version converts to GPL-3.0 four years after release, according to the Directus license page.
- Directus Cloud: the managed service is a separate offering from self-hosting with Docker.
- Native MCP server and AI Assistant: both operate under the same role-based permissions as human users, but confirm whether any AI feature carries a separate license or plan.
- License history: the license changed from BSL-1.1 in April 2023 before the current license, so older versions and contracts may use different terms.
Ask the partner to confirm the license terms against the exact version in the quote and to state any feature that depends on a paid Directus offering.
A written feature matrix turns a vague quote into a comparable one. Partners may name features by marketing labels, so ask for each requirement to be mapped to a product, license and plan. This matters most for SSO, audit logs, review workflows and content history, because those requirements often change the edition you must buy.
- Feature list: ask for every requirement (SSO, audit logs, approval stages, history, localization, preview) to be marked open, paid or custom.
- Version and license: ask which product version, license and plan the price assumes, and what changes at the next major release.
- Scope of SSO: confirm whether SSO covers administrators, end users or both, and which identity provider is supported.
- Hosting and third parties: list any paid hosting, storage, CDN or add-on that the quote excludes.
- Change control: ask what happens if a required feature moves to a higher tier after the contract is signed.
Request the matrix before comparing quotes, and confirm each line against the vendor's current pricing and license pages at the time of purchase.
How editors preview content and how content is migrated
A good partner runs preview, import, editor validation and cutover as one ordered sequence, with a named tool and a written check at each step, so content moves without losing structure or editorial control.
Confirm the preview model before the content model is final
The partner defines how draft content reaches the front end before any editor works in the system. Ask which preview route the front end uses, how draft and published versions are separated, and whether preview requires a signed-in editor. Payload includes live preview and a customizable React admin panel, so teams building on Payload can test the preview inside the admin interface. Directus provides Studio for non-technical teammates, so the partner should show how an editor opens a draft in the front end from there. The step is done when a sample draft renders in preview without being visible on the public site.
Map the existing content to the new model
The partner inventories the source system, including content types, fields, relationships, locales, media and URLs, and writes a field-by-field mapping to the Strapi, Payload or Directus collections. Ask who owns each mapping decision and how fields with no equivalent are handled. Editors should confirm which legacy fields carry business meaning. The output is a signed mapping document that lists every source field, its target field, its transformation rule and any content that will be dropped or rebuilt.
Run test imports and check data quality
The partner imports a representative subset into a non-production instance, then runs automated checks for record counts, required fields, broken references, duplicate slugs, encoding problems and media links. Ask which scripts or tools perform the import and whether each run is repeatable from the same source snapshot. Strapi, for example, documents a backup-first approach for schema and data changes, so the partner should describe its own backup and rollback points. The step closes when a full test run produces a reconciliation report with zero unexplained differences.
Validate content with editors in preview
Editors review migrated pages and entries in the preview environment against the live site. They check layout, locale fallbacks, metadata, internal links, image crops and workflow states such as draft, review and published. Ask the partner for a written validation checklist, a named editor sign-off owner and a log of defects with their resolution. The step is complete when the agreed editors sign off each content type and every open defect is either fixed or accepted in writing.
Set redirects and verify URLs before cutover
Before switching traffic, the partner confirms that every legacy URL either resolves to its new page or redirects to the correct replacement. Ask for the redirect map, the method used to deploy it, and the crawl report that shows 404s and redirect chains. Search engine visibility, analytics tags and consent settings should be checked on the new front end. The output is a URL inventory with a status for each entry.
Cut over and monitor the first live period
The partner runs the final content import, freezes source edits for the agreed window, switches the front end to the new CMS and confirms the public site serves published content only. Ask who has rollback authority, what the rollback trigger is and how long the source system stays available in read-only mode. Monitoring should cover API errors, page status codes and editor login issues. The step closes when the agreed monitoring checks pass and the partner hands over the runbook.
Hand over editing and retire the old system
Editors receive training on the preview and publishing flow, and the partner delivers documentation for content types, roles and the import procedure. Ask how Studio or the admin panel is introduced to non-technical teammates and which role permissions are set for each group. The old system is archived only after a defined retention period agreed with your compliance owner. The step is done when the handover pack is accepted and the decommissioning plan is signed.
How to test a major version upgrade such as Strapi 4 to 5
Ask every partner how they will test a major version upgrade before they quote it, because a Strapi 4 to 5 move is a rebuild of data access rather than a routine patch. Strapi v4 reached end of life on April 30, 2026, and its final release, 4.26.2 of June 9, 2026, receives no further updates, so any site still on v4 is already running without fixes. Strapi 5 replaces the Entity Service API with the Document Service API and changes the API response format, which means front ends, scripts and integrations built against v4 can break even when the content migrates cleanly. Ask the partner to list every consumer of the API, including mobile apps, build hooks and third-party sync jobs, and to state how each one will be tested against v5 responses in a staging copy.
Ask how the partner runs the upgrade tool and codemods that Strapi provides for v4 to v5, and where in the sequence the data migration scripts run on first start of Strapi 5. The proposal should name the breaking changes list it works from, record each codemod run and each manual change, and show how the team diffs API output before and after. Require a database backup taken before any upgrade step, because the Strapi documentation says downgrading is not supported. Ask how the backup is verified by restoring it to a separate environment, and who approves the cutover. Ask how the team handles the Strapi-Response-Format: v4 header, whether it is used to keep legacy clients working during migration, and when it is removed. Confirm the Node.js version and the database version against the Strapi 5 installation requirements, including PostgreSQL 14 or later, MySQL 8.0 or later, MariaDB 10.3 or later or SQLite 3, and confirm that no MongoDB or other NoSQL database is involved, since Strapi 5 does not support them.
What drives cost and what to ask for in a quote
What does a headless CMS implementation partner actually charge for?
A partner's fee covers the work the organization cannot skip: scoping, content modeling, front-end integration, data migration and editor training. Scoping defines which content types, locales, roles and integrations are in play. Content modeling turns that scope into collections or content types, relations, validation and permissions. Front-end integration connects the API to the site or app, including preview. Migration moves existing content and media, and training prepares editors. Each line is a separate component you can ask a partner to price.
- Scoping and content model design
- Front-end integration and preview setup
- Migration of content, media and redirects
- Editor training and handover documentation
Which headless CMS costs are one-time and which recur?
Most engagement costs are one-time: scoping, modeling, integration, migration and training. Recurring costs come from running the platform: hosting or infrastructure you pay a cloud or data center provider for, backups, monitoring, security patching, version upgrades and any ongoing support retainer. Paid self-hosted editions also recur if you need features such as single sign-on, audit logs or review workflows, and that licensing is paid to the software vendor, not DeployOpen. Ask which items recur, how often they renew and who invoices each one.
Does DeployOpen publish headless CMS prices?
No. DeployOpen does not publish a price list, and a quote follows from a written scope. Most engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts. Ask for a quote that lists each deliverable, the assumptions behind it and what is excluded. Ongoing support, upgrades and continuous testing are offered as retainers, so request them as a separate line item rather than assuming they are included.
Which vendor plan and license tier should a quote name?
Ask the partner to name the exact product, edition and plan the quote assumes, because feature access differs by tier. For Strapi, the self-hosted Community Edition is free, while Growth and Enterprise are paid plans; SSO, audit logs and review workflows sit in specific tiers, so confirm which ones your requirements need on the current pricing page. Also confirm that the quote does not include any vendor license you must buy separately, and who holds that contract. Directus and Payload have their own license terms that your legal team should review before the build.
What support boundaries should I confirm before signing?
Support boundaries define who fixes what after go-live. Ask the partner to state, in writing, which components it operates, such as the application, the content model, the hosting environment or the backups, and which remain with your team or a cloud provider. Confirm response expectations, upgrade responsibilities for major versions, and what happens when a vendor releases a new major version after handover. Support is delivered through a separate retainer, so the quote should say whether it is in scope or priced separately.
What makes a headless CMS migration cost more or less?
Migration effort rises with the number of content types, the volume of media, the number of locales and how much existing content needs reshaping rather than copying. Redirect mapping, editor retraining and running two systems during cutover add effort. Effort falls when the source content is clean, the content model is agreed early and the number of front ends is small. Ask the partner to list the source systems, record counts, media volume and locales used in the quote, since these are the inputs that move the estimate most.
Can we do the headless CMS work ourselves to save money?
Yes, an internal team can run the work, and many organizations split it: they keep content modeling and editor operations in house and bring in a partner for hardening, integration or migration. The trade-off is staffing and skills. Self-hosting needs people who can manage the database, Node.js runtime, backups, upgrades and access control. Ask the partner for a split proposal that shows which tasks you would own, which tasks you would hand over, and what knowledge transfer each handover requires.
What should the cost section of a headless CMS RFP require?
Require a line-item quote tied to the written scope, with separate sections for one-time services, recurring hosting and software, and optional retainers. Ask for the assumptions behind each estimate, including the number of content types, locales, editors, integrations and migration sources. Request the named edition or plan, the support boundaries, the exclusions and the payment milestones. A quote that cannot show its assumptions cannot be compared fairly with another bid.
Which answers should make you stop and ask again
Partners rarely lie outright, but vague answers on licensing, upgrades, preview and compliance often hide cost and risk. Each card below pairs one answer that should slow the decision with the follow-up question that forces a specific, written reply.
License terms and quoted edition
A partner who cannot name the license of each component, or which edition its quote assumes, is pricing a product it has not read closely. Strapi splits its code: the Community Edition is MIT, while code under ee directories is the separately licensed Enterprise Edition. Ask the partner to list every component, its license, and the exact edition and plan behind each line of the quote.
"All features are free" claims
Promises that every feature is free, without naming plans, usually skip the paid tiers that hold SSO, audit logs and review workflows. In Strapi's self-hosted plans, SSO for Growth is an add-on, while audit logs and review workflows sit in Enterprise. Ask the partner to map each required feature to a named plan, the price source, and whether that cost recurs.
No written upgrade and backup plan
A version upgrade without a written migration plan is a risk to content and editors. Strapi v4 reached end of life on April 30, 2026, and its docs say to back up the database first because downgrading is not supported. Ask for the upgrade steps, codemod and data migration checks, rollback point, and a staging rehearsal before any production cutover.
One magic tool, no test evidence
A partner who says a single tool or generator handles migration, modeling or upgrades, and cannot show test results, is asking you to trust a black box. Upgrade tools such as codemods help with mechanical changes but do not verify content, API consumers or permissions. Ask for the test scripts, sample content comparisons, response-format checks, and who signs off each result.
Preview described only in general terms
Preview that is described as "editors can see their changes" hides the work that matters: which front end renders the draft, how draft and published content are separated, and whether preview works for scheduled and localized entries. Ask the partner to demonstrate preview on your own front end, with a draft entry, a locale, and a user without publish rights, and to name the framework and endpoints involved.
Compliance certification claims
A partner that says the platform is "certified" or "compliant" has confused readiness with assessment. Independent auditors and certification bodies issue attestations, and implementation partners prepare controls and evidence for them. Ask which controls the partner has prepared, what evidence each produces, and which independent assessor will review it.
How to score vendor and partner answers
This table lists the criteria to score each partner answer from one to three against your written scope, along with the evidence to request. Use it in the RFP review to compare answers on the same basis rather than on presentation. A partner that cannot point to written evidence for a criterion should score lower, even when the answer sounds confident.
| Criterion | What a score of three looks like | Evidence to record |
|---|---|---|
| Content model clarity | Named collections, fields, relations and locales are described and tied to your content types | Sample schema or model diagram, with owner for each content type |
| License and paid-feature transparency | Each feature you need is mapped to a license and edition, with the paid tier named | Written list of required features by edition, and the license file version reviewed |
| Preview and migration method | Editor preview and content migration steps are described per platform, with a test plan | Preview flow diagram, migration plan, and a sample dataset run in a test environment |
| Version upgrade plan | Major version path, support end dates and rollback approach are stated for the chosen release | Upgrade runbook, backup and downgrade policy, and the vendor's current support status |
| Security and identity approach | Admin SSO, editor roles, audit logs and API token handling are described and mapped to your identity provider | Role matrix, SSO configuration plan, and the edition that includes each control |
| Hosting and data location | Where the database, media storage and backups sit is named and matches your residency rules | Architecture diagram and hosting responsibility matrix signed by both parties |
| Quote traceability | Every line item maps to a stated scope item, deliverable and assumption | Itemized quote linked to the written scope, with exclusions and change-request terms |
How to turn answers into a shortlist and a written scope
Start by putting every response in one comparison grid, with one row per question and one column per candidate (Strapi, Payload or Directus). Score answers on the facts you can check: the license terms for your intended use, the supported database list, the plan that includes the SSO, audit log and workflow features your editors need, and the Node.js and database versions the partner proposes. Mark any answer that says "included" without naming a plan or edition, and send it back for a written reply. Vague answers about Enterprise Edition features are the most common source of later cost surprises, so treat them as open items rather than passes. The shortlist should carry two candidates at most into a proof of concept.
Run the proof of concept on one content type that matches your hardest requirement, such as a regulated article with a review stage, a localized product page or a page with nested blocks. Build the content model in each candidate, set up the editor roles, configure preview against your real front end, and import a sample of existing content through the migration path you expect to use in production. Record the effort, the number of manual fixes and any feature that needed a paid plan to work. Confirm the exact plan, version and hosting target you tested, because a proof of concept on Community Edition does not prove that the SSO or review workflow works in production.
Convert the chosen answers into a fixed-scope statement of work before any build work starts. The scope should name the product, the plan or edition (for example, the Strapi Growth or Enterprise plan, or the Payload or Directus version you tested), the exact version to be installed, the hosting environment, the content types and locales in the first release, the preview and migration deliverables, and the handover documentation. Ask the partner to list what is excluded, including paid add-ons and future major upgrades, and to state who holds each license subscription. Agree acceptance criteria in writing so that completion has a measurable meaning for both parties.
How DeployOpen scopes and delivers a headless CMS engagement
DeployOpen plans, implements, customizes, hardens, documents and supports self-hosted open-source platforms inside your own cloud accounts, data centers or air-gapped networks. For headless CMS RFP questions, we start with a written scope that answers the questions your evaluation team needs answered before selecting Strapi, Payload or Directus.
How we scope
- Written scope fixes which CMS candidates are compared, the content model areas covered and the questions each answer must address
- Scope states which edition features, such as SSO or audit logs, are included, so paid plan needs are explicit before selection
- Deliverables, timelines and acceptance criteria are agreed in writing before any build work begins, since most engagements are fixed-scope
- Scope confirms which migration, preview and version upgrade topics are in or out, with the source system and content volume named
How we build
- Content model prototyped against your real editorial workflows, with locales, roles and preview behavior tested by your editors
- Hosting built in your own environment, with database choice checked against the supported PostgreSQL, MySQL, MariaDB or SQLite versions
- Security testing of the CMS, its APIs and admin login completed before go-live, covering access rules and admin authentication
- Migration scripts tested on copies of content, with a documented rollback path and database backup taken before any upgrade
How we hand over
- Written documentation covering the content model, role matrix, environment setup, backup procedure and upgrade runbook
- Evidence pack for compliance reviewers, including configuration records, access settings and change history for the CMS
- Knowledge transfer sessions for your platform, editorial and security teams, using your own environment and content
- Handover of administrative access and secrets to your staff, with DeployOpen access removed according to the agreed scope
How we support
- Ongoing support, upgrades and continuous testing are available as retainers, scoped separately from the initial build
- Retainer scope can cover CMS version upgrades, plugin or package reviews and periodic security testing of the public front ends
- Upgrade planning follows each vendor's release and end-of-life notices, which you confirm directly with the vendor before scheduling
- Pricing for support follows a written quote, so your team can compare retainer scope against internal operating effort

