Genesis Framework for WordPress

Disclaimer: After developing my site using Genesis, I decided to become an affiliate. And why not? It’s a product I believe in and actively use. 

I’ve recently redesigned my site completely from scratch, reusing little to no code from my previous iteration. An overhaul that was definitely long overdue. I discussed everything that changed in my post on what’s better and what can I improve? but the biggest change I made was switching from my custom Tseczka framework to the Genesis wordpress framework. As any developer, I’ve always been a proponent of custom solutions but as I gained more knowledge and understanding of my field, I came to understand that I cannot “reinvent the wheel” for every single tool out there, every single time I work on a project. That became apparent to me the more I worked with Bootstrap and Bootstrap themes which have come to provide a solid base on which to work on.

I first took Genesis on a few years ago when developing WordPress themes was my everyday job yet I abandoned it then in favor of my custom solution.  Genesis is a wordpress framework developed by StudioPress, a company that also produces a myriad of Genesis child themes meant to tackle just about every WordPress need out there. Well, a couple of weeks ago, I finally gave up on patching and repatching my own site and started clean with Genesis.

What It Is

Before I discuss all of the different features the framework offers, you should understand how Genesis works. The framework itself is a complex bundle of code that is supposed to stay untouched. It’s like the WordPress Core. Instead of going through the code, you’re meant to develop a child theme or buy one and use Genesis as your base.

StudioPress likens this relationship to a car. WordPress is the engine, running the car. Genesis is the frame and body, defining how the car works and what its features are. Child themes are the paint job. I daresay that the child themes can also be likened to additional features and body modifications.

The beauty of this system is that as a developer, you’ll have the power to completely rework Genesis via Child themes. As a regular user or blogger, you’ll have the ease of using fully-featured and amazing themes for your site, not available elsewhere.

Your buying options (and how they differ from conventional marketplaces)

Genesis provides you with several options when it comes to buying:

  • buy the framework with the sample theme- right now running at $59.99
  • buy the framework AND a child theme – ranging from $80-$100 or so. I haven’t seen a single theme above that
  • buy the “Pro Package” which includes ALL child themes – $300

All of which allow unlimited usage. Yes, you heard me, unlimited. The framework is available to you for use on as many sites as you want. This kind of licensing is very much unlike any other theme marketplace. ThemeForest, for example, usually offers themes for $30-$50, all of which are one-time use only. Meaning that every time you want to setup a new site with your favorite theme, you have to buy it again. This makes total sense in a marketplace full of individual theme developers.

Think about this for a second. If you’re building a Real Estate blog, for example, you’ll spend a $100 on AgentPress child theme for Genesis, right? You’ll spend $50 for a similar theme on ForestTheme. Great, now what if you built it for a client, and several of his/her friends want a similar setup. You’ll spend $50 a piece on each of your client’s friends while you’ll only spend $100 altogether with Genesis, even if your client’s friends have a few other friends that think it’s a great idea to build their own site.

Keep in mind, you can’t “resell” the themes but you can build their sites and use the theme for the process.

On top of that, having bought Genesis already, every theme out there will be cheaper at a significant discount (I saw a $70 discount from $100 on one theme). Since you already have the framework, you won’t have to pay again for it. Make sense, right? So in the end, you can think of “genesis” in several different terms when it comes to buying:

  • get access to a premium framework
  • get access to a marketplace of premium wordpress themes
  • get unlimited usage of the framework and any theme you purchase.

Anyways, back to the packages. So who are these for?

  • The Framework – The smallest package is either for developers or bloggers who are using a child theme they found on the web. As a developer myself, it’s definitely enough to get you started and make your own theme. The sample theme is a great starting point but it’s definitely not a full solution for the less tech-y.
  • Framework + Theme – the next-up package is definitely the solution for a small business or a blogger. It’s a one time thing, you get the framework, you get the professional theme and you’re good to go. If you want more themes, you can buy more at a discount. If you want to create a second site with your theme, you’re welcome to as well.
  • Framework + Everything – the “Pro” package is the package for either agencies that professionally build sites for people or people that run a myriad of sites. Or, if you’re one of those people that like to switch themes like clothes (i don’t recommend this). Again, if you buy just the framework, you can upgrade to this package at a discount.

Again, the best feature about buying a child theme from StudioPress is the usage license: unlimited (other than that you can’t directly sell the theme).

What is Genesis capable of?

StudioPress has a whole list of features for Genesis but I think they can be summarized and categories according to Developer usage and User usage. Let’s start with the “user” side of things, the stuff you can do without knowing how to code,.

What you can do as a user

The settings Genesis offers you are double, one for “global”, and one for “per page/post”. I like Genesis because of this because I can set some options as “default” and override these settings.

Global Settings

Global settings break down further into two different options, those overridable, and those serving as general options. What I like here is that Genesis replaces several of my regular plugins by allowing certain options to be set:

  • Custom Feeds – an option for the feedburner users. This setting allows you to use a custom feed URI and redirect your original feed. Instead of having to install a plugin or add a functions.php function, you can use genesis.
  • Default Layout – a “global” setting for default style of showing your content and sidebar. Mine, obviously, is set to right-hand sidebar. But, you also have the option of numerous sidebars, and sidebar positions.
  • Navigation – Genesis allows you to mess with your navigation. One option is to enable “fancy dropdowns” which is a javascript effect. The other option adds a widgetized section next to your menu. This allows you to add a search field or whatever else next to your nav. I opted out of this, obviously, but it’s a great option that many themes don’t allow.
  • Breadcrumbs – breadcrumbs is a neat navigation type that works on a tree-like structure. I personally don’t use them and find them kind of useless for a regular blog but they would work well with a different type of a website, one focused on the “tree-like” organization.
  • Comments and Trackbacks – You’re able to enable comments/trackbacks globally for all posts and/or pages. I disabled everything on pages, of course, but I am able to re-enable it on a single page if an opportunity appears
  • Content Archives – This is a short list of options for all your blog, archive, author type pages. Genesis allows you to specify your thumbnail size and your excerpt as well as navigation style.
  • Blog Page Template – this section allows to you to make blog-specific changes. While I did not find this particularly useful (yet), it allows you to exclude categories and change the number of posts shown per page. Example usage, you can filter out personal posts or blog announcements on your blog page. While you can retain your “news” or “updates” category and its posts to announce stuff to your readers, you can keep your “Blog” page clean.
  • Header/Footer Scripts – This is basically the ability to tap into some wordpress “hooks”. If you ever developed a theme, you’ll remember using the wp_head() and wp_footer() functions. Genesis allows you to add extra stuff into it via its settings page. Example usage, Google Analytics and Google Webmasters codes (in case you don’t have an SEO plugin!).

What does all this mean?

As a user I can take advantage of many simple and easy-to-understand options to make my blog more powerful. From setting up layouts and changing them with a single click, to enabling basic UI options, I can do everything without touching code. I feel like this is one place that needs emphasis because it’s one of the biggest places I see options.

Now, these options can be extended with plugins which makes it even better. However, I wish I didn’t have to do such a thing :/ I’m already tired of installing plugins so having to install genesis-specific plugins on top of that can be a pain.

Bonus: Genesis allows export/import of all settings (and even SEO settings).

Page/Post Settings

For the non-dev people, Genesis brings you options that even developers dream of (and mean to program but forget). The coolest feature I found is the “layout settings”:

layout-settings

This little box is available on every post and page and lets you pick the layout for your respective front. I find this extremely useful for pages where I can easily differentiate between regular pages (which require a sidebar), my homepage (which has no sidebar), and landing pages (which may feature no sidebar or several sidebars). I find this incredibly useful and easy to use since I don’t have to use a special template which, in the end, would only work for pages and not posts. Oh and guess what? If you’re into A/B testing, you can test sidebar location. No, that’s not an inherent feature of Genesis but it makes it easier to setup.

Test case: This page. I decided to use a left-handed sidebar, completely unlike the rest of my site! 🙂

You can also add custom body and post classes, this allows you for finer styling control.

You’ll also have the ability to enable/disable comments/trackbacks PER page:

comments-trackbacks

On top of that, you’ll have SEO options. Genesis detects if you have any major SEO plugins installed (which I do, WordPress SEO plugin) and turns off those functions but outside of that, you’ll get as much control over your SEO options as you would with a professional plugin. This is part of that “turn key” part of Genesis. You install it, and you’ll have a ton of plugin-like functions and options at your disposal.

seo

“User” options

So, one thing that wasn’t apparent to me when I started developing my Genesis theme was the “user” options

user-settingsAll this stuff allows you to do is basically customize the stuff that shows up under each post (like my Author box) and on your author’s page.

user-box

And that’s the result (after some styling) which shows up after every one of my posts. It’s a great way of distinguishing posts from each other. This is perfect for guest posts where you can really tell it’s a guest post by the author:

guest-author-box

Genesis, by the way, will also take advantage of Google+’s “rel=author” tag and use your G+ account for the tag. And we all know the rising importance of authorship

Developer Options

As a developer, I got to experience a ton of the “under the hood” improvements. First of all, you get a ton of damn hooks to work with. So you can pretty much, non-destructively, alter the entire theme just by hooks. Now, since I’m lazy as hell, I installed the simple hooks plugin which effectively lists most of the hooks, with an explanation and the ability to execute or not execute PHP in the hook.

hooks

As a dev, you can always add it to your functions.php file:

genesis-meta

Pretty simple, right? There’s about fourty hooks or so. I didn’t count but it covers just about everything from “genesis title” to “genesis after footer”. And since you can execute PHP, you can add just about anything there.

Next up, Genesis works with child themes. The framework is the parent theme and then you adjust whatever is necessary. If you look at my site, you’ll think it’s VERY custom, it’s not:

child-theme

That’s it, and I could probably delete the home.php file while I’m at it. It’s pretty easy to customize Genesis just using CSS. Here’s the “before”:

genesis-sample

Genesis is well coded so styling it is very easy to do.

What About Plugins?

Genesis has a slew of plugins available that extend its functions and you can do some really cool stuff with them. They’re usually called “Simple [Something]”. The reason I bring them up is because they can add a lot to the functionality to your themes.

Simple Sidebars

Simple Sidebars is a plugin that allows you to create several different sidebars for your site and custom-add different sidebars per-page, per-post. This way, you can customize the look of your site even further. For example, if you want to have a Portfolio page with your work, you may want to have a sidebar with Call-To-Action buttons for requesting a consultation, and touching on why a user should do a project with you while your Blog page will have your latest articles and “sign up for newsletter” section instead. Very useful.

simple-sidebar

Simple Comments

This plugin allows you to change the avatar size in your comments, and change wording of different sections in comments. For example, instead of the “Comments” title, you can call it “Discussion”. You also get to change all kinds of labels, and what form fields you require or use (you may not want to use the “URL” field for example).

simple-comments

Other Plugins

StudioPress provides you with a whole list of plugins and most of them are worth exploring. They try to tackle most features you may want from URL redirects to displaying social media icons.

My Final Take

I’m glad I purchased genesis but as any product, there are positives AND negatives.

Positives

  • You get unlimited usage with any framework or theme. This is a really great feature since I can buy out a bunch of themes or buy the pro package and use them for either my own websites or for future and potential clients. If (or when) I get back into serious WordPress programming, I’ll most likely upgrade to the Pro package and get all the themes.
  • Genesis includes a ton of built-in functions which allow me to delete a ton of plugins. Its SEO features pretty much replace most of my SEO plugin’s features. Its feed redirect replace another and direct access to wp_head allow me to simply drop-in any kind of analytics code with ease.
  • Global and per-page/per-post options. I like being able to choose different layouts without having to have several different templates. I currently use the landing page (without sidebar) layout and the right-handed sidebar but I can’t wait to get into more customizations
  • The child theme setup is pretty neat. With just a stylesheet, I can turn a site around and make it look 100% different. With some extra code, I’m able to fully customize the entire site without having to dig through extraneous code. This was always an issue for me when using bought themes. I had to work with a ton of code that only the original developer could understand. I get to start with a clean slate with Genesis, or at least a framework I can get familiar with.
  • The plugins, themes, resources, and community are very worth it. Seriously, plugins alone are enough to consider Genesis. I like the sidebars, and the ability to use the (plentiful) Genesis hooks.

Negatives

Not everything is perfect so let’s dive in:

  • Genesis has a learning curve for developers, especially for a developer like me who is used to a system. The first time I worked with Genesis, I dropped it within a couple of hours. I needed to quickly convert PSDs to WordPress Themes and Genesis was not the way to go which is why I developed my own framework. But after I got over the hump of how to develop Genesis, it was much easier. 
  • Documentation seems very dodgy. I read through it thoroughly but it was hard to figure out exactly how to work with Genesis. I decided to use my CSS technique I’ve learned through using Hubspot for about a year. Basically, I use existing markup and make small changes via hooks and CSS. However, one way of getting around that is using some of the existing free themes out there and studying them. That’s definitely my next step in using Genesis.

Conclusion

The positives definitely weigh out the negatives to me, especially when it comes to personal and client development. I get to use a solid framework, a set of settings that i can export/import per install, and take advantage of a great number of options that can make my site unique and fit exactly what I need.