Generally, if the feature alters the design or layout then it should be added to the theme; while if it’s adding functionality it should be made into a plugin, which is pretty straight forward. While writing your own themes and plugins removes the dependency on third party developers for updates, it puts the responsibility on you to maintain them and ensure compatibility with the latest iteration of WordPress.
Is WordPress the right CMS for you?
Where is WordPress headed?
Many developers are adopting a relatively new trend of separating the front-end from the back-end known as decoupling. Decoupled WordPress essentially leaves the back-end and dashboard intact while ditching the standard front-end structures in favor of RESTful APIs that grant the option to use a different front-end framework such as Angular or ReactJS. This can be used to push the same data to several consumers at once such as native apps and multiple websites simultaneous, and it also lends more flexibility to the front-end design. While developers at WordPress seem to remain focused on the blogging and publishing aspects of the CMS, the community has been pushing more in the direction of a web framework, which has tangentially been touched on throughout this article.
Is WordPress a framework already?
Some would say yes while others claim it’s not quite there yet. Either way, the future for WordPress is bright and it will be exciting to see what direction it takes.