Frameworks like Genesis can be okay for people who don’t know how to code
I think the Genesis framework and a child theme is fine for people who don’t know how to code. I’m talking about people who want to buy a powerful theme structure, a ton of design options, and a user-friendly settings interface.
I suppose I can see the draw there because you get one framework with one settings panel that is then compatible with thousands of theme designs.
Plus, I guess it’s just like buying any other pre-made theme. The difference is that you’re buying a PARENT theme and a CHILD theme all at once.
As a developer I do not like frameworks
…especially when it comes to making custom themes for clients.
When I first peeked under the hood of a Genesis website, I was blown away. And not in a good way. There are two main reasons:
- Frameworks are overly bloated. They’re designed to do anything and everything. They often have 5 billion widgets, tons of layout options, and a massive settings panel. But so many people ordering custom designs don’t want or need all those options. They want their layout to be a certain way and that’s it. So having all those extra, unnecessary features that they’re not even using just adds bloat.
- Many of these frameworks aren’t written “the WordPress way”. WordPress has some standard features and ways of doing things. I try hard to follow all these standards when making my own themes. But most frameworks don’t abide by these standards AT ALL. Instead, they invent their new standards that go specifically with their frameworks. This usually involves hundreds of new filters and actions. Instead of using “normal WordPress”, you have to use their framework and learn/memorize all these hooks. It just doesn’t seem natural to me. What’s the point in going about it a whole different way?
Genesis means jumping through hoops
I’ve been hired to make small adjustments to a few peoples’ themes. Those people happened to be using Genesis. What would have been an incredibly simple fix on a “normal” theme ended up taking HOURS of wading through hooks, filters, and mountains of code. I feel like Genesis (and other frameworks) take away the simplicity of WordPress and all the “normal” functionality in order to integrate into their crazy hook/filter system.
The pros and cons of having the core code updated for you
A lot of developers love Genesis because it means that the core code isn’t written by them. The framework is updated and maintained by someone else. That means it’s not really their responsibility and the theme will (probably) never be “outdated” or using old/deprecated/insecure code.
I do understand why that’s desirable.
However, at the same time, a framework-free WordPress theme would probably take YEARS to become outdated. They use standard WordPress functions and are simple. It’s going to be a long time before those functions and standards are outdated or deprecated. Plus, with a “normal” theme, there’s no extra, unnecessary code. You know what that means?
- Less code = less chance of a security breach.
- Fewer features (especially ones the client isn’t using) = a faster blog and less chance of a security breach.
People like Genesis because it’s “secure”. But honestly, there’s very little reason that a theme would have a vulnerability in the first place (unless it has an options panel and/or ajax). Themes just add design. You’d have to be using some pretty shitty PHP code to have a security breach. Most security breaches come from plugins that file/image handle uploads, deal with ajax, use data inputs that haven’t been sanitized, or use permissions incorrectly.
But with every extra line of functionality you add, you’re increasing the chances of a security breach (probably). And Genesis is going to have tons and tons and tons more functionality. I’m not saying Genesis is insecure; I’m sure they do their job well. I’m just saying that having a ton of code you don’t use just sitting there is NOT ideal. And having a normal WordPress theme with a lot less code probably won’t be vulnerable or insecure.
Am I just old fashioned?
When a client comes to me wanting a design, I don’t want to have to tip toe around an existing framework and figure out how to integrate their vision into that framework. I prefer to have no frameworks and no boundaries. If it’s my own code, I can make it as complicated or as simple as the client needs. I don’t have to give a client wanting a simple design 2305723059327 bloated features that they don’t want, use, or need, which will only slow down their blog.
Plus, the idea of having to override design elements or functionality just sounds stupid to me unless absolutely necessary. And ultimately, that’s what a child theme does—override the parent theme.
I’m not against having some kind of framework, I just don’t like having an entire framework
Let me explain that…
Genesis (and similar frameworks) are an entire, massive structure that make up a “parent” theme. In order to style it, you have to use all of that code and create a child theme. I don’t like that.
HOWEVER, I’m not advocating that you start from scratch with every single theme. That’s not the best use of a developer’s time. For most of my projects, I use a starter theme. This means I’ve created a bare bones WordPress theme that has most of the functionality I use in every theme, with no design elements. I have my functions.php file built and the basic structure of my theme files in place. So when I start a new project, I grab that “starter theme” and start changing/building upon it for my new project. It gives me a good head start, but it isn’t an entire framework and it isn’t a parent theme.