Today more and more applications on the web have started moving towards an 'API First' architecture and abstracted javascript driven frontends. Micro services isn't just a buzzword anymore and node.js is very much mainstream.

While Joomla! will stay probably stay married to its PHP code base for a long time to come (and nothing wrong with that), it is important that we start looking at providing an easy way for other applications to interact with data in Joomla! natively without needing any extensions like com_api. While becoming 'API First' will still take more time, having APIs in the core will be very important to solve quickly. While Joomla 4 is expected to introduce this in the core, it will need quick adoption by key extension providers to give Joomla the feature it needs to ensure it is considered in adoption decisions for several use cases in the enterprise as well as consumer space. 

Having APIs in the core will pave the way for alternative frontend implementations on top of the Joomla APIs using 'in' languages like Angular and React. While we have been creating Angular based applications for some time now using Joomla based APIs at the backend, its still needs quite a few jumps through hoops to get it right not to mention having to write API plugins.

We have been taking this approach with several projects now to be future ready and for the obvious performance benefits it has shown to offer. TJ Dashboard, the new infra extension we are building for creating Dashboards in Joomla (coming soon) is written in an API first manner with JS widgets for display and control. If you develop custom applications and projects with Joomla, you should be able to take an approach similar to the above even now using some extensions. However if you are an extension developer, its a little harder to do this since you have to ensure you play well with other extensions. 

While I don't believe that Content management systems that have an 'API Only' approach will be relevant for the traditional CMS audiences any time soon, they have their uses. However a CMS that takes an API first approach while maintaining its coupled interfaces definitely will be relevant and useful for the traditional audience while offering the benefits of a API first approach. Drupal has been working on both an API first approach for some time now You can look at Dries's posts on this topic here. Recently they also announced that they are considering adopting React in the core. While going API first will be hard and take time, we do need to start brainstorming and talking about it. Drupal has been making just the right noises and moves in this area for some time now and are ahead in this game. And we do have a great deal to learn from them, an advantage that starting late has given us.  

One could argue for hours that "Our Audience' which is widely believed to be mid level web agencies do not need an option to have a completely decoupled or even a progressively decoupled option of Joomla, it is only a matter of (very less) time before it will be very much a requirement as the benefits of both a Webservice first approach as well as an option of a decoupled frontend starts becoming attractive to the smaller businesses. 

This is an article I have been meaning to write for a while and its not as in depth and well articulated as I'd like it to be. But hopefully the content is clear. I would love the feedback on the same. Do comment and tell me your thoughts on the subject.