Scott Bolinger has written a great post that outlines some of the things to consider for a future that includes a more JavaScript-centric WordPress. Two of the most thought provoking sections of his post are on enabling support for plugins, and a potential market for Node modules:
The biggest thing stopping WordPress sites from becoming fast, single page apps is plugin support.
Plugins are the most powerful part of WordPress, because they allow you to extend it and customize it. One of the lessons we learned building Reactor is that people love their plugins, and they really, really want them to work in their apps. The problem is that once you start using an API, plugins don’t work anymore.
Take Gravity Forms for example. They use shortcodes and template tags to display their forms, enqueued Javascript and CSS files, and PHP form processing. If you are using the WP-API, the only thing that comes through is a parsed shortcode, which is just HTML. To make the form work, you’d have to essentially rebuild everything on the app side. This is extremely complex, and at that point, it would be easier to just roll your own solution.
I agree with Scott, that plugins that invest in making it easier to work between the plugin functionality and external apps, may have a leg up. His form example is an interesting one, too, as so many websites will want to maintain form management capabilities that we take for granted in a WordPress templating ecosystem.
As for node modules, Scott believes that the money component itself would still be centric to the WordPress plugin, versus Node compatibility modules. And Node modules may need to exist for a variety of tools, like React, Angular, etc. But having open source Node modules that interact and enable support with a commercial WordPress plugin’s native functionality could be a very attractive selling feature.
As for action that plugin developers should take right now, as the API begins the integration with WordPress Core, they “need to add their public plugin data to the WP-API at a bare minimum.”