| The original post could have been a bit more precise on this point. Basically, this math assumes something where the server-provided data changes in concert with the frontend. If we're using jsonapi, GraphQL, Thrift, or any other protocol that's not HTML, we need to do the following: - Make the change on the server to support the new functionality. Deploy. - Make the change on the client to adopt the new functionality. Deploy. - Remove the old functionality from the server (optional) Because the client is a separate application, it becomes riskier to deploy those changes together. I need to think about it more as a developer. With server-authored HTML, this separate client + server deploy is not required. |
- Other factors can often dwarf the separate deployment overhead, especially given that the deployment steps are done so often it will force the team to make it efficient and get used to it.
- There is no hard requirement for separate deployment in the first place, if we are just talking about react / spa you can deploy it in a single step. (Not saying you should)
The point is: yes there is quite a lot of overhead. From separate deployments, from separate state management and I think the big ones are often having two different programming languages and having to align schema on frontend and backend. It is hard to deny this. But then saying that because of this overhead, these kinds of apps take 2x time to code implies denying there are benefits as well, that under given circumstances can outweigh the overhead.
I think it is more interesting to assume that in some cases the benefits outweigh the cost of the overhead, and in others they do not.