The company I work for wants to move from their current cms (very expensive and developed and maintained by an external company) to a new one, possibly opensource or for a lower price.
My colleagues and I are looking at headless cms and the options on the table, for now, push us to 2 possible solutions: strapi and graphcms
They are both API first cms, so you create your models with the interface and they expose content through graphql
The problem we see here is that we find quite hard to apply business logic, for example, if an article before being published needs to be approved by some superuser or admin, or blocking a subset of the articles only to registered users
We are thinking of using one of these providers and set up our webserver in front of it that will handle business logic, and external users log in.
The problem with this setup is that we are adding one round trip to each request.
user <-> webserver <-> headless cms
User asks for content to the webserver, the webserver retrieves it from the headless scams and runs all sort of authorization/validation checks and in the case gives it back to the user
This also means that we will need to write all of ours graphql queries twice, one for the user exposed frontend and a second version for contacting the headless cms.
This also feels like we are going to use (whatever the cms we choose) as just a container and the value-added, in the end, possibly is just a friendly UI for writing articles/pages/whatsoever
Is our approach to headless cms wrong?