Full-featured enterprise-grade web app
- for bigger local companies needing custom functionality, possibly hybrid no-code + Angular or headless CMS.
Rough Market Benchmarks → $250K–$1M+​
Frontend Development Estimates for B2C Web App​
Estimated tasks, complexity, hours, and costs for a small frontend development project using Angular/React with a static site and a large project using WordPress/Wix with a CMS. The small project leverages static site generation for faster development, while the large project accounts for CMS setup, client training, and slower no-code development due to developer unfamiliarity. Costs assume an average rate of $75/hour with a 20% buffer for uncertainty.
Headless CMS​
| Criteria | Description |
|---|---|
| Content Architecture, Content Modeling, and API Design | |
| APIs | Does your platform provide APIs? Please describe your general approach to APIs. |
| APIs | Does your platform offer GraphQL APIs? |
| APIs | Does your platform allow for reading/querying content via API? (GraphQL Query API) |
| APIs | Does your platform allow for writing/mutating content via API? (GraphQL Mutations API) |
| APIs | Does your platform offer asset delivery via API? (Assets API) |
| APIs | Does your platform offer a Management SDK to programmatically manage projects, content models, environments and other settings? |
| APIs | What percentage of the functionality of your platform is available through APIs? Is there any functionality only available through a UI that is not available via API? |
| APIs | Could an external CMS or DXP be used to manage content that gets unified with your CMS and/or API? |
| APIs | Was your platform built from the start to be API-first? |
| APIs | Are your API(s) and platform MACH compliant (i.e. microservice led, API-first, composable, and headless)? |
| APIs | Are all of your API calls idempotent? |
| APIs | As you add new functionality, do your APIs evolve in a backwards-compatible manner or are they versioned? |
| APIs | Do you offer a web-based UI where developers can try executing APIs against your platform? (API Playground) |
| Content Specific | Does your platform support content living in several stages (such as DRAFT, QA, and PUBLISHED)? |
| Content Specific | Does your platform support multiple versions of content existing? |
| Content Specific | Does the system provide an API which can be used to manipulate images (ex. resize, crop, optimize)? |
| APIs | Are all your APIs documented? |
| APIs | How is the API response format structured? Please provide example API output. |
| APIs | Does the platform provide an API to programmatically manage projects and content, e.g. modify the content models, modify content entries, create migrations, etc.? |
| Documentation | Is your documentation publicly available? |
| Documentation | Does your documentation cover all APIs and SDKs? |
| Documentation | Do you offer end-user guides for non-technical users (ex: user guides for UI)? |
| Documentation | Do you ensure your documentation is up to date with product updates and releases? |
| Documentation | Are parts of your documentation "inaccessible" based on customer tiers, or is everything freely available? |
| Ease of Setup | Are there readily available reference applications or same schemas to refer to when modeling POCs? |
| Ease of Setup | Is it possible to build simple POCs, add content, and query API responses within a matter of minutes to test out the API? |
| Environments | Does your platform allow for multiple environments (such as DEV, MAIN, etc.) |
| Extensibility | Are functions such as pagination, ordering, and filtering supported? |
| Extensibility | Does your platform allow you to take actions in response to API calls? For example, do you support webhooks, etc? |
| Extensibility | Can the data model of objects (profiles, products, carts, etc) be extended/configured using APIs? |
| Extensibility | Can your API store/retrieve arbitrary JSON data/custom objects? |
| Extensibility | Does your platform offer integrations? |
| Extensibility | Does your platform allow customers to extend or customize the user interface? |
| Extensibility | Does your platform offer Webhooks that can be triggered based on specific actions, content model changes and custom stages? |
| GraphQL | What protections do you have in place against malicious queries? For example, could someone issue a query to retrieve a project's content entries without having authorization? |
| GraphQL | Do you support GraphQL Nested Queries? |
| GraphQL | Do you use GraphQL in any of your reference applications? |
| Schema Building and Modeling | Is it possible and intuitive to build out a complex schema, supporting relations and custom fields. |
| Schema Building and Modeling | Is it possible to build schemas using a low/no-code UI as well as programatically via API? |
| Schema Building and Modeling | Does your platform support multiple field types (String, Rich Text, Integers, Booleans, Date & Time, JSON, Assets, Locations, Colors, Enumerations)? |
| Schema Building and Modeling | Does your platform support relations between models and fields? |
| Schema Building and Modeling | Does your platform support custom fields and/or the ability to embed integrations with external systems within fields? |
| SDKs | What native SDKs do you offer over your APIs? Please list the supported programming languages (including version numbers). |
| SDKs | How is each SDK supported? Is it commercially supported as part of the product, or is it unsupported open source? |
| SDKs | How are SDKs updated over time? How frequently are they released? How do customers uptake new versions? |
| Content Federation | |
| Criteria | Description |
| Content Federation | Does your platform support external data sourcing? |
| Content Federation | Does your platform allow API extensions? |
| Content Federation | Does your platform allow federating with REST based APIs? |
| Content Federation | Do your API Extensions copy (i.e. clone) data coming from external sources, or does your API simply query for that content to render on the frontend? |
| Content Federation | Are API Extension configurations protected, i.e. disabled for content editors to read/write, and only available via API/SDK? |
| Content Federation | Can content editors manipulate content from external APIs risking the integrity of content? |
| Content and Editing | |
| Criteria | Description |
| Authoring | Does your platform provide a web-app accessible by major browsers? |
| Authoring | Does your platform provide the ability to schedule content publication? |
| Authoring | Does your platform provide the ability to batch-schedule content publication (i.e. releases)? |
| Authoring | Does your platform provide the ability to schedule content publications in multiple languages independently? |
| Authoring | Does your platform have authentication of users (authors, editors. reviewers) and assignment of permissions? |
| Authoring | Does your platform support workflow for content review and approval? |
| Authoring | Does your platform have multiplatform/multichannel and multi-language management? |
| Authoring | Does your platform have a WYSIWYG editor? |
| Authoring | Does the platform support generating canonical tags? |
| Authoring | Does your platform have ability to publish content optimized for consumption on various devices such as web, mobile, tablets, TV, and other IoT/Smart devices? |
| Authoring | Is it easy to create/manage experiences such as homepages, landing pages, editorial/blogs, marketing content on grid pages, Loyalty Club, static content (eg T&C's, company info, etc.)? |
| Authoring | Does your platform support content and asset SEO? How can SEO data be added? |
| Basic Editing Features | Does the platform provide an asset repository in which images, documents, etc. can be managed natively? |
| Basic Editing Features | Does the platform support rewriting of URLs so that they appear to a user in a human readable form, rather than containing programmatic identifiers? |
| Advanced Editing Features | Does the ability to define (or have pre-defined) fields necessary to support SEO requirements exist? |
| Advanced Editing Features | How is the platform's ability to manage and deliver binary and non-binary assets? |
| Advanced Editing Features | Can all asset formats (jpg, png, pdf, wav, mp4, mp3, etc.) be supported by the system? |
| Advanced Editing Features | Does the platform allow content to be reused across multiple pages / entities? i.e. Create a "page" of content and allow a field within that page to be referenced by another page, or through another mode enabling that content to be modified independently of where it's used? |
| Advanced Editing Features | Does your platform support so-called "Modular Components", or the ability to compose content from reusable blocks? |
| Advanced Editing Features | Does the platform have the ability to publish or remove content from the website on given datetimes? |
| Advanced Editing Features | Is it possible to define the content that is served to end-users based on the device that they are using? E.g. serve different content and images if the user is viewing on a tablet or mobile phone? |
| Advanced Editing Features | Is it possible to mass upload content such as documents and images to the system? Is this capability provided via an API? |
| Advanced Editing Features | Is it possible to backup an entire website including all of its assets and content? |
| Advanced Editing Features | Does the platform allow for metadata to be added to objects? |
| Advanced Editing Features | Does the platform support multiple language variants of the same page's content (i.e. localized versions of an entry, rather than a seperate entry per localization)? |
| Advanced Editing Features | Does the platform allow an editor / administrator to preview their changes before publishing them to the website? |
| Advanced Editing Features | Does the platform allow an editor / administrator to access unfinished content and how restricted is this access? |
| Advanced Editing Features | Can editors preview content across multiple digital channels and multimedia formats? |
| Advanced Editing Features | Does the platform offer a search capability from an administrative perspective, in order to help content editors and admins find pages and content in the CMS? |
| Advanced Editing Features | Does the platform allow for pre-defined templates to be built which control or restrain the abilities of the content editors? |
| Advanced Editing Features | Does the platform support version tracking and/or audit logs, so that it is possible to see which user made a particular change and at what date time? |
| Advanced Editing Features | Does your platform provide a clear way for a non-technical user to compare two versions of of an entry and decide which to keep? |
| Advanced Editing Features | Does the platform allow you to save in-progress entries? |
| Features | |
| Criteria | Description |
| Asset Storage | Do developers and editors have access to asset management in your CMS? |
| Asset Storage | What are the asset storage limitations of the CMS? (in GB) |
| Extensibility | What tools do you offer to extend the CMS with custom functionality to assist editors when creating content? |
| Extensibility | Do you offer UI Extensions to communicate with external services? |
| Extensibility | Do you offer API Extensions to communicate with external services? |
| Localization | Does your platform support localization? |
| Localization | How are languages handled in your CMS? |
| Localization | How many languages are supported? Is there a limit? |
| Localization | Do you support granular localizations (etc. ch_FR, ch_DE, ch_IT, de_EN)? |
| Localization | Do you support the ability to fall back to secondary language (for example if fr_CH isn't updated, then fallback to default)? |
| Localization | Do you have the ability to have non-localized fields across multiple languages? |
| Localization | How do editors trigger translations? |
| Localization | Is there a clear overview of the translation status for each language of a content entry? |
| Localization | Do you support bulk publishing across languages? |
| Localization | Does your platform allow locale-based-publishing? |
| Localization | Does your plaform allow localized assets? |
| Localization | Does your platform allow locale-based-permissions? (ex. a French Translator role with access only to French and a Source language.) |
| Publishing | How does your platform automate notifications to users and roles when there is content for review (natively or via webhooks/integrations) ? |
| Publishing | Does your CMS allow older versions of content to be promoted to the live site? |
| Publishing | Does your CMS provide a means to bulk publish multiple changes at one time? |
| Workflows | Does your workflow setup include the ability to determine which roles have access to perform which actions at each step of the workflow? |
| Workflows | Does your platform allow setting up content stage based workflows (i.e. DRAFT, QA, PUBLISHED, etc.) |
| Workflows | Does your platform support setting up custom alerts based on internal workflows (i.e. Slack or Email notifications to custom roles for entries by webhooks or integrations)? |
| Omnichannel | Does the platform support the management of multiple websites within a common administrative interface, so that the a user managing multiple sites is not required to manage each in a different console? |
| Omnichannel | Does the platform provide the ability to share content and assets across multiple sites that co-exist in the platform, rather than these having to be duplicated and managed separately in each site? |
| Integrations | Does your platform allow you to pull content from other feeds? |
| Integrations | Does your platform provide a means to call content such as files and images from external web services? |
| Integrations | Do you integrate with Analytics, AI, and Personalization tools? If yes, which ones? |
| Integrations | Can we extend the CMS with third-party data? If yes, how? |
| General Limits | How many Users can your platform support? |
| General Limits | How many environments can your platform support? |
| General Limits | How many roles can your platform support? |
| General Limits | Does your platform support custom roles and permissions? |
| General Limits | How many locales can your platform support? |
| General Limits | How many content entries can your platform support? |
| General Limits | How many content models can your platform support? |
| General Limits | What limits are enforced on monthly API calls and Asset traffic? |
| General Limits | How many content stages does your platform support? |
| Deployment Architecture | |
| Hosting | Is it possible to upgrade the platform without degrading service or reverting into a "maintenace mode"? |
| Hosting | Is the platform available as a SaaS or Hosted Service model? |
| Hosting | What API uptime guarantee(s) do you offer (with applicable SLAs)? |
| Ops | How are outages communicated? |
| Ops | Must extensions/customizations to your platform be deployed to a specific cloud vendor/location or can they also be hosted elsewhere? |
| APIs | Which CDNs and load balancers are used to distribute content globally? |
| Platform Architecture | Does the CDN automate cache clearing across all content to provide the best experience for our users? Please explain. |
| Platform Architecture | Can you provide dedicated clusters and infrastructure for new customers? If so, how long does that take per datacenter? |
| Platform Architecture | What parts of your platform are auto-scaled? What parts require manual scaling? |
| Platform Architecture | How many separate independent microservices (own database, own application, own teams) does your platform have? |
| Platform Architecture | Internally, do microservices read/write from each other's datastores? Or is access strictly through APIs/events? |
| Platform Architecture | Internally, does your platform have a way of separating reads from writes using an architecture like CQRS? |
| Platform Architecture | To what degree do you use eventing internally? What's exposed externally? |
| Platform Architecture | What kind of datastore(s) do you use? |
| Release Management | Explain your process for releasing new versions of software. How often are major/minor versions deployed? |
| Release Management | What do customers have to do to uptake new versions of your platform? |
| Release Management | Are individual feature/task teams able to release independently, or is the entire platform released as one atomic unit? |
| Release Management | Does your platform have scheduled downtime when updates are made? |
| Underlying Infrastructure | What cloud vendor do you use for hosting your platform? |
| Underlying Infrastructure | Which cloud region(s) do you serve your platform from? |
| Underlying Infrastructure | Are customers able to choose which region they use? |
| Security | |
| Criteria | Description |
| Authentication | What forms of authentication are supported for APIs? |
| Authentication | Does your platform support SSO? |
| Authentication | Which SSO providers are supported? |
| Authentication | Is multi-factor authentication supported for business user authentication? |
| Authorization | How are roles and privileges used to authorize access to APIs? Please describe your approach. |
| Authorization | Can roles and privileges for APIs be externally managed? If yes, where? |
| Authorization | Can roles and privileges for API authorization be hierarchial? Can they be inherited? |
| Authorization | Is the OAuth 2 protocol supported for API authorization? |
| GDPR | Is your platform GDPR compliant? |
| Data Processing | What third party companies have access to personally identifiable information? Please explain what data is available and what types of data processing agreements you have in place. |
| Data Processing | Does your platform allow deleting customer data on a request, including from backups? |
| Data Protection | Is 100% of data encrypted while it is "in transit" throughout your platform? |
| Data Protection | Is 100% of data encrypted while it is "at rest" in storage? |
| Data Protection | Besides when it is actively being processed in-process, is there any time that data is not encrypted? |
| Operational Practices | Does every single administrator within your company have individual user accounts to every system? |
| Operational Practices | Have you experienced any security breaches that caused any outages or data leaks? Describe. |
| Operational Practices | Do you hire a third party to conduct penetration testing? If so, what type of testing is performed and how frequently? |
| Operational Practices | In the event that a security issue needs to be fixed, how quickly can the change be pushed and adopted by users? |
| Operational Practices | What measures are employed to ensure business continuity in case of major incidents or disasters? |
| Implementation | |
| Approach | What is your company's general approach to implementation support? Are systems integrators responsible for implementations or do you do them yourself? |
| Approach | What types of professional services does your company offer? |
| Approach | Do you offer implementation support? |
| Approach | Do you offer onboarding support? |
| Approach | Do you offer ongoing support (via SLAs)? |
| Partner Network | Do you have an implementation partner network? |
| Partner Network | Who are your top three implementation partners? |
| Partner Network | How many implementation partners do you have per region in which you operate? |
| Support | State the processes and procedures for managing and resolving support tickets |
| Support | Does the platform offer 24/7 365 support? |
| Support | Does the platform have a mature and stable support model? Are there any plans to apply changes to the support model within the next year? |
| Support | Is documentation available to our technical support teams? Explain how this documentation is delivered. |
| Support | Please list training and documentation that is offered around your system |
| Support | Describe your technical support model, escalation procedures, communication, time zones, forums. |
| Support | What is the method of delivery for product updates (via download if other state) and is this a supported process? |
| Support | Please describe the levels of support, and the escalation processes |
| Support | How does the vendor provide updates to the platform? Are there any updates we need to deploy or manage on our servers? |
| Support | What is your SLA (for the platform and content delivery)? |
| Support | Provide your SLA response and resolution times |
| Support | What are your SLA terms? |
| Support | Do you have step-by-step guides for implementing your product? |
| Support | What training and enablement programs are provided for initial and ongoing training for developers, administrators and business users? |
| Support | How can the data be imported into your platform? Which connectors do you offer for importing data into your platform? Are the connectors part of your product or are they custom implementations? |
| Support | How are new product features publicized? For example, are there quarterly workshops or webinars? |
| Support | Do you support access to your platform to develop a POC or MVP during the selection process? |