Often as a developer we found ourselves in complete agreement with articles such as, “Why I Created a WordPress Theme Framework.” Quotes from other developers resonate and leave us unresolved for a real solution, like this one:
“Basically, it came to a point where end users don’t benefit from theme frameworks, only theme devs do”
– Jeff Chandler
From this frustration we began a journey to solve this problem while at the same time still creating custom solutions for REAL clients with REAL business problems. With the help of fellow WordPress evangelists, Seth Carstens and Tom McFarlin, we realized we need to stop blaming WordPress and start understanding it.
We began to ask the question, what does the WordPress community think? This matters because when debating with the other CMS evangelist the one thing it ultimately comes down to is the community. The life blood to all open source projects is the community; and WordPress’s community is by fart the strongest. So the correct solution to the problems we’re facing should play to that strength and encourage community support. For this reason Div Blend was created, and with it would come Div Blend products, but most importantly would it would begin a campaign for #TheWordPressWay
When a developer decides to develop on the WordPress platform they should consider what is #TheWordPressWay
The Div Blend Approach
The WordPress Way is a philosophy; a pursuit towards the way WordPress is intended to be used (hint: this includes the direction it will continue to support in future releases). This is not the ONLY way, and many can argue it is not the BEST way, but when a developer decides to develop on the WordPress platform they should consider what is #TheWordPressWay.
The Div Blend team has done just that. We have sought the many divisions between WordPress developers and with that the many inherit problems within its own community and our goal/vision is to blend those differences into a total commitment to the WordPress Way. This is not to compromise development between developers, but rather to educate them towards the common goals of WordPress development.
It breaks down to this. Just as you have front-end AND back-end development, there is code that relates to the visual and business logic of a website or application. WordPress has already accounted for this division in its scope by providing developers with plugins and themes. The problem is, many plugins or frameworks are pursuing an “all-in-one” solution and are doing so by compromising this basic and fundamental part of WordPress. That is, business logic belongs within the scope of plugins, and visual logic belongs to the scope of themes. Therefore, a theme-framework should not include business logic such as custom post types (CPTs), widgets, and shortcodes; once it does that it is no longer a theme, but rather it is an application specific to the clients business needs.
We should as a community of WordPress developers pursue specific business solutions so that pursuit is not the problem, but those business logic solutions should be developed in the plugin scope. But wait! Does that mean we should be developing project specific plugins, such as “my-project: custom plugin”?! Although it would definitely be a more modular approach, it would also present possible dependency issues. So let us introduce the Site Application concept.
As mentioned, the moment a theme includes business logic that makes it exclusive to a client or project it is no longer a theme, rather an application. For this reason there is a need for a better way, and WordPress’s “must-use” plugin solution seems very appropriate. For this reason we refer to the codebase within /mu-plugins/ as the Site Application.
To make developing the themes, plugins, and the site application easier we began developing The Div Blend Package which is a set of tools that function together in a modular package so that you can use only the parts you want in your development. Check out the documentation for more details on that.
The real mission of this div blend project is not to evangelize the div blend package, but to promote the best practices of #TheWordPressWay. So if you have questions or suggestion on how to accomplish that, then join the movement and help taking the conversation public. Reach out to us directly, we would love to continue the discussion.