To use headless or not, that is the question
Noone can have missed the headless wave going through the web developer community lately. Episerver supports building a headless solution very well with the content delivery api that was added from v11.4. I have personally used it a lot to build SPA (single page application) solutions on top of Episerver using both vue, react and angular and it works great. The latter versions of Episerver also makes it possible to build support for editors too. But what is really the pros and cons with headless? When should you use it and when should you stay away from it?
- Easier to implement complex user experience parts with lots of interactions
- Frontend developers get more power and can more easily implement a feature without help
- Performance can be tricky to achieve for first page load especially on large enterprise sites, which hurt conversion rate and SEO
- Editor capabilities are limited. It's trickier to support more advanced scenarios like A/B testing, previewing, blocks etc
- Routing and SEO. For a full SPA that also takes care of routing, SEO and deeplinking is more difficult
- Implementing standard functionality that is powered by content made by editors takes longer time with headless than traditional architecture
- Increases complexity of overall solution if used too much
- Can easiliy grow to become a difficult-to-manage monolithic solution which may become difficult to replace in a few years
- Backend developers get less power and will have more difficulty to implement a feature without help
Architecture and design patterns like headless are tools to solve a problem. If you don't have the problem, don't apply the solution.
If you have a part of the site that is focused on content and a part of the site focused on user interaction, use both headless and traditional backend architecture, but avoid mixing them, to get maximum benefits for both users and developers.