DiggingIntoWordPress

by Chris Coyier & Jeff Starr

The “Frameworks” Discussion

Posted by on

I’ve never been a big fan of “theme frameworks.” I quite like hacking up WordPress myself and making it do the things I want it to do. I feel like most theme frameworks have a ton of custom functions for you to “help” in doing that kind of stuff. For example, adding a block of text to the sidebar, adjusting the layout, or building a custom menu.

So because frameworks have all these helper functions, they are targeted at people who don’t want to learn how to do all that stuff themselves, but still harness all that power. In other words, non-nerds. These helper functions are used by hand-altering theme files, which is inherently nerdy. So frameworks are for non-nerds, but the only people that know about them (and especially how to use them), are nerds.

Or am I full of crap?

66 Responses

  1. Design Informer July 7, 2010

    I don’t really use Frameworks myself. Well, actually, kind of.

    I have my own very basic framework that I use but it’s very simple, just pretty much all of the stuff that you would always include in a WordPress template but nothing too complicated and advanced like most of the Frameworks out there.

  2. Luka Kladaric July 7, 2010

    you’re full of crap

    it basically comes down to the abstraction point, something you wrote about at http://css-tricks.com/the-abstraction-point/

    you started working with WP themes before those things were around so they’re above your abstraction point

    I started writing HTML before there were any WYSIWYG editors so I write all my HTML by hand and I’d never ever use one today. That doesn’t mean there aren’t tons of people who find them useful. :)

    • RegularJo July 7, 2010

      Thanks! This comment helped me understand my distaste for WYSIWYG editors.

    • Good point. If a framework provides an additional layer of abstraction, it does bring up my personal comfort level with that level of abstraction. That isn’t *always* the case though, sometimes a framework can provide something like superframework_menu_maker(), which is really just an altered version of wp_list_pages(), so it’s an abstraction but it doesn’t take things any deeper which is the point of abstraction.

    • I don’t think learning how to write code before using a WYSIWYG editor is why someone who knows how to code hates the WYSUWYG editor. It really has to do with your willingness to learn a superior way of doing something. Sure, for some the WYSIWYG editor is a “great” way of building a website, but that’s because they are not willing, or have the patience, to learn how to code it.

      I built my first few websites with WYSIWYG editors and in tables. Why? Because I didn’t know how to code yet. I knew that I was handicapped by not knowing how to truly “develop” a web page, so I set out to learn how to build a web page in HTML first. Then how to use CSS, then javascript, etc. It’s a continual learning process for us all.

      A framework isn’t necessarily for the lazy, or inpatient (as how I believe a WYSIWYG editor should be perceived), but rather a more efficient way to develop a site. It’s a base for someone to start from and then modify as they need to.

      I use frameworks (CSS especially) to start the foundation of a project and then build from that on up.

  3. I’ve tried using themes myself, in an effort to try and speed up producing themes. The end result, however, turned out to be the opposite, for much the reasons you prefer doing things yourself.

    I enjoy knowing what is going on with my code as much as possible and Frameworks, for that very reason, cause me more problems than solutions.

    • Toni L July 7, 2010

      I’ve exprienced the same. “Take a ready theme to make things faster…” Most of the time it doesn’t work. BUT now that I’ve got deeper into Thematic, I’ve discovered what a major enhance child themes are.

      You can also build your own “father-theme” and I see that as huge advantage if your projects have any kind of similarities in structure or functionality. I suppose the next level is takins this knowledge to WP MU and building multiple sites with same father-theme.

    • Nathan Chapman July 7, 2010

      I’ve only found that using a framework annoys me, just because it isn’t coded how I like it.

      Especially when the naming conventions of the Framework are all “wrong” compared to what I use, but I suppose that if you’ve started with Frameworks when you were first developing for WordPress, then you’d be used to it.

      I agree with you in that point, David, where Frameworks don’t let you know what is going on with your own code. It makes things more complicated that way. Although having said that, if I need a specific solution I don’t have a problem with, say, using a part of another theme’s functions.php to get the result (for example, post thumbnails etc.)

      • Nathan, that’s mine exactly. It takes me longer to figure out someone else’s coding process and why they did what they did in a framework, than it would be for me to do it my own darn self.

        I have a lot of clients who absolutely have to have xxx framework, and yet not because of what xxx can actually do, or the fact that I find it hugely bloated trying to be everything to everyone, but because they heard that it’s the best WP theme.

        And, yes, you have to be a huge nerd to understand how to change these frameworks, which is odd considering they are targeted to non-nerds.

  4. Rarst July 7, 2010

    Why use helper functions of WordPress then? Let’s do everything in pure PHP! :)

    There are different frameworks that serve different purposes.

    My current choice is Hybrid because I have no desire whatsoever to write myriad of templates, register bunch of sidebars, etc, etc by hand.

    So I take framework that does all of that and spend time on what matters for me – custom code and CSS for my own needs.

    Different framework will take care of different parts in different situation.

    It’s not about functions, it is about conveniently making use of wheels
    someone else invented.

    • Good point in that WordPress is already a framework, so being “against” frameworks is inherently hypocritical.

      • I code in binary. My interface is a repurposed morse code machine that I articulate with my left big toe.

        I then route that signal to an assembly language converter, which in turn builds the necessary HTML/PHP on the fly.

        In special cases, I flip a rocker switch with my left pinky toe which engages the binary image processor. Another function of that switch is to build WP themes on the fly.

        Yeah, abstract this!

        In any event, nice discussion. :D

  5. I see quite a few frameworks out there that different folks are championing.

    I have only used one frame work in the past (thematic)- back in the day when first getting into building sites using WordPress.
    If im honest I found it a bit awkward to use as it seemed very complicated at the time as I had limited knowledge of WordPress.

    Im sure these days it would seem pretty straight forward but I cant really see the need for one as I now have my own basic framework that gets more complex depending on the site that’s being built.

    I think using one of these complex frameworks would just add a lot of extra bulk that wouldn’t get used or I would have to spend time removing sections and that kinda defeats their purpose.

    • On reflection- my experience of frameworks is quite limited so im not writing them off completely!
      Think I may give a few a try as there are lots of well thought of developers using them.

  6. Well, I have not seen a framework that has been designed for non-geeks. In fact, frameworks are often harder to hack than “direct” theme hack, because one has to learn how the framework works, not just how WordPress works.

    Personally, I like having full control and no limitations set to me by the framework, no matter how well it’s done. But taking the time to learn a well-done framework would probably do good, in order to not re-invent the wheel everytime, but even then I prefer to not use code I don’t need, which frameworks are full of…

    The biggest problem with frameworks is that they are bloated. Frameworks exist, because they try to be one-size-fits-all solution with each and every possible option in them, even if no-one really uses them. This makes the frameworks slow & hard to use and all between. Has someone ever seen a framework that would be easy to use and would not try to fix all the problems in the world??

    Building from scratch, I can add only what is needed, making the end result nice, clean and small – or at least I don’t have the framework to blame if it isn’t…

  7. Frameworks are an extraordinary pain. In my experience they add a lot of useless code, slow down the website, and increase dev time.

  8. It’s a pet peeve of mine when a client comes to me and say they want a custom deigned website but we want you to use this framework.

    I would much rather work with a clean WordPress slate and build from there. Frameworks means I have to learn some other developers interpretation of WordPress which just adds more work on my end. And I rarely like their interpretation.

  9. Mark Acosta July 7, 2010

    Well I hope you only mean this for “Word Press” which is in my point of view a “framework” with helpers for blogs…

    All frameworks have a lot of advantages like “speed up” your programming times (which no matter how good programmer you are, you are always late), keeping an standard for your various projects (It’s a pain in the ass when you create different sites with different libraries and you need to support those pages) and abstract into different layers and stuff.

    Also most of the frameworks uses a “modular approach” so you can help to the community by creating plugins and uploading them for anyone who needs the same thing!

    I personally use Kohana framework for PHP projects and It’s insane!!! all I ever need is always there and if you need to do something they haven’t thought just create a plugin and upload it to the community… Yes I know how to programm plainly on php + mysql but don’t tell me the ORM approach isn’t easier… (and specially the MVC)

    PS As I Said I hope you are refering to the “WordPress” frameworks topic :)

  10. Jan Egbert July 7, 2010

    I personally experienced the opposite of what the writer is arguing. My knowledge about PHP and theme development before starting to use the Hybrid Framework: NULL.One year later and I find myself using filter hooks, action hooks and above all understanding how WordPress works. I’m even writing my own plugins and child themes now. I must admit that the wonderful support at Theme Hybrid is probably a major factor in the learning curve.

  11. BrianK July 7, 2010

    I think you are forgetting that using a framework means the framework developer gets to deal with all of the updates, and the user’s custom child theme requires very little maintenance during upgrade.

    And I believe you are misleading about ‘helper functions are used by hand altering theme files’ when someone can make a very custom theme by a few lines in the functions file and playing with css. I use ThemeHybrid and have never had to alter anything but functions.php and css files.

    So in summary, I get to use a well built, easily customizable, template packed, fantastically supported, non-bloated, seamlessly upgraded theme… yeah, you’re right, they’re crap.

  12. Adam Pieniazek July 7, 2010

    Ideally, we’d create a theme from scratch. In the real world, clients want sites done yesterday and frameworks help accomplish that. I’m a fan of Hybrid because you can fairly easily turn off unnecessary features. Plus, the upgrade process is much easier for a child theme than a custom theme.

  13. I work in rails, so I don’t mind a framework. However, I have not found the wordpress frameworks themselves to be that useful yet. I’m much rather see something community driven, more modular, and less coupled. Maybe something more like jquery ui or yui approach where you can pick and choose smaller of packages of functionality.

  14. Just a simple question and nothing else. Why do you use jQuery? Isn’t it a framework? Frameworks are here to save our time. Once you get used to it, you will love it.

    • Best comment.

    • I’d use one *IF* it saved me time. My experience, which if I’m picking up on Chris’s tone is pretty similar to his own, is that they are typically more time-consuming the minute you need to add something that’s not already included out of the box.

      Well-written framework that stays out of my way yet adds some functionality that feels like just an incremental version of WordPress itself? I’d use that.

  15. I’m on the fence. I’ve built enough wordpress sites that I have a collection of files and function, already organized as a theme, that I inevitably start with. The 960 grid, jQuery, and a collection of jQuery plugins that I like can all be found in there. The point is simple: use what works for you. I start with a “framework” that I’ve organized myself, am very familiar with, and then go from there. The design that I end up with is custom, and the functions that are used are chosen specifically for that client, but the guts and the underlying code are pretty similar.

  16. I like working with theme frameworks. It allows me to quickly customize a child theme. If I wasn’t using a framework, I guess I’d be using a blank theme as a start point.
    I like the Hybrid framework for the awesome support that Justin gives.

  17. So because frameworks have all these helper functions, they are targeted at people who don’t want to learn how to do all that stuff themselves

    IMHO
    Functions provided by frameworks usually are the alternatives.

    The official WP folks and the not-so-official developers may not agree on certain way of doing thing, those alternatives are there for users to use.

    If it ain’t any good, it will go away – on the other hand, if it happens to be better it will stick around and somehow finds its way to the core.

    Once it’s in the core, it becomes official, now that same functions won’t be called helper functions by some framework anymore.

    I personally can not make WordPress do what I want it to do without Hybrid Theme Framework.

    I’m not saying WordPress is not good enough, in fact WordPress is great.
    And when I use WordPress with Hybrid, my life is a lot easier.

  18. i concur with much of what has been said here and only add that yes, it has taken me a while to learn the nuances of working with frameworks vs what i used to do in hacking code direct … the learning is paying off and i’ve lately been focused on all things Justin Tadlock’s Hybrid Framework … very impressed with his support and his community has been very helpful with development ideas to WP beyond just the framework tweaks …

    i think the biggest advantage of frameworks is the network of people using them so if bugs are there, they get found out and flushed … whereas if i hack my own code, i don’t have the same “anti-bug” comfort zones as i get with a community of fellow frameworkers :>0

    lastly, in Hybrid’s case, once i got my head around the functions.php file in child themes, well then, yippee development progress started to pick up … cheers – chuck scott

  19. I think the problem is that most people don’t know what to look for when choosing a theme and most theme developers don’t do a good job of describing and promoting the functionality of their framework. Frameworks can have real value in speeding site development, especially for sites that go beyond blogging.

    • Nathan Chapman July 7, 2010

      At the same time though, it is very hard to describe a particular framework, because each framework is essentially created for the author’s workflow and their methods for coding a WordPress theme.

      I don’t know what I’m looking for in a Framework, so I have trouble deciding if it’s worth it though. From the ones that I have tested (and don’t ask, I can’t remember them) they’re often not right for my workflow.

      Yet they all are popular, so maybe I’m just doing something wrong.

  20. I think using frameworks is fine, if you really understand the framework and can hack it up at will, but most people who use frameworks don’t have that level of understanding, nor do they care to.

    When I finally got tired of all the extra stuff stuck in other designer’s and developer’s themes, I created my own stripped down theme to use as a personal framework. A simple, reliable, known starting point saves a lot of time. But I also find it makes me work harder to keep each new site fresh and different from the last. And if I’m on a really tight budget or timeframe, that extra work sometimes doesn’t happen.

  21. Michelle July 7, 2010

    I use the Thesis framework a ton, and it’s been a fantastic learning platform. Until diving into frameworks and learning how cleverer developers than I had used WordPress’s functions, actions, filters etc in real-life situations, I never really understood any of it.

    I do agree that frameworks add overhead, however. And a lot of the code I’ve learned has been forced on me when I’ve had to work around the framework!

    I’m a much, much stronger developer for it, though. Whatever I use in future I’ll be glad I started where I did.

  22. I’m with the majority here too. I’ve been developing my own themes from scratch (or using Starkers). I’m just now starting into the frameworks territory. Currently trying out and loving Hybrid. The documentation is top-notch and well worth the money.

    It wasn’t until I started down the frameworks road that I truly understood what could be accomplished with actions/hooks/filters. Because of that I disagree that frameworks are for noobs. It took me embarrassingly long to get a grasp on the parent/child benefits. But now that I’m figuring it out, I’m much better for it. Probably a road I would have never ventured down if I would have stuck to writing my own theme framework.

    One frustration with frameworks though is knowing you could solve some simple problem just by editing the parent code but choosing to not do so because there’s power in leaving the parent unedited. That’s what functions.php is for!

  23. Craig July 7, 2010

    Well I years ago I used to hack away at a few “premium” themes, and not to mention specific developers here, I found the code to be often invalid, and did not always play well with WP upgrades, and generally always looked the same.

    Then I read this post by Ian Stewart http://themeshaper.com/the-future-of-wordpress-themes/.

    I thought the idea of parent/child themes and frameworks was pure genius. I have never looked back. Although I spent some time with Thematic, a comment from Justin Tadlock on his site brought me over to his world which I believe was before he had the Hybrid framework going.

    Now years later with a very mature WordPress, and very mature frameworks, I would never even consider doing any site that is not WordPress, and not based on Hybrid.

    When you consider the awesome plugins and support that compliment the Hybrid framework, it is a rapid fire development tool that I really don’t think can be equaled by even the most experienced developers by hacking away at theme files. And then you have a one off that may not stand the test of time.

    If you have ever taken a look at how Justin has extended WordPress to be a one stop shop for WP development, it just seems mind boggling – some of the comments ( no offense ).

    Well at least personally I would never buy a theme or hack any at theme files again. Yes I have drankin the kool aid. I probably could debate this all day long.

  24. First, I’m writing from a different perspective than most here… I hadn’t even hosted a WordPress site until March of this year, so call me what you want. :)

    Other than that, I’m here to join in on the Hybrid Theme Framework ‘Luv Fest.’

    After searching for a long time trying to find a theme that I actually liked, I stumbled upon the Hybrid Framework. It took me hardly anytime to figure out how to hack up a theme to my liking (into a sort-of-child theme).

    It’s super easy to use as well as incredibly versatile. Great plugins and community/creator support. As far as Theme Frameworks being for ‘noobs,’ the hybrid forum seems to be comprised mostly of developers and DIY’ers. Some of them with Ler09 being one of my favorites, make some great looking websites (WPMU, etc).

  25. Y’all got me convinced to give Hybrid a serious tryout.

  26. Steve Rydz July 7, 2010

    You couldn’t be more right on that one Chris. I only find frameworks that I have built myself useful as I know what is in there and why it’s in there. I don’t actually have a WP framework however. I just build my themes up as required, that way I avoid unnecessary generic functions and I learn more each time.

  27. Claude July 7, 2010

    You’re full of it…

    A real nerd wouldn’t use a theme framework or MAMP Pro for the same reasons. Why pay $60 for a tool that does exactly what I can do in a few seconds with Apache, MySQL and /etc/hosts?

  28. First, I want to say thanks for all the kind comments about Hybrid. It means a lot to me to hear how Hybrid has helped you all.

    I’ll tell you why I think frameworks are great, or at least why I love my Hybrid theme. I can’t necessarily tell you about all the other frameworks, so I ‘ll just stick to what I know.

    I’ll be brutally honest here and tell you that I didn’t originally create Hybrid to be a theme for general public use. I created it because I had two issues:

    1) I was changing my design about once a week back in the day and realized that I was pretty much just changing stylesheets (I too love hacking WP). Most of the underlying code was still the same. There wasn’t much point in me wasting my time doing the same things over and over.

    2) I was also doing a fair bit of client work at the time because it was my only source of income online. Again, I was basically doing the same thing over and over — changing the style, not the code.

    Notice the generous use of “I” in those statements? Yes, I built Hybrid for Justin Tadlock.

    Theme frameworks were starting to catch on, well at least Thematic was major stuff. Actually, it was Thematic and Ian Stewart that really opened my eyes to this whole framework thing. I just had a different direction I wanted to go in with my own theme. The need was there, so I shared what work I put into my own framework. Seems to be going well so far (nearly two years later).

    I’ve got a few thoughts on this discussion though. Some of this isn’t specific to frameworks. It’s about themes in general, but many frameworks tend to actually follow along with these ideas.

    Bloat: There’s no need for useless code to be running. Keep things lightweight and efficient. Some people tend to think that a lot of files == bloat. Those two things are not the same (unless all the files were being loaded on every page view). I’ve actually found a lot of frameworks to be more efficient than many standard themes.

    WordPress standards: Use what WordPress has to offer. Extend it. In doing so, you keep plugin authors happy.

    Coding standards: I can’t tell you how many themes I’ve seen that wrap singular post titles in h2 tags. Need I really go on?

    Cover every scenario: Many themes fail to do things such as accounting for weekly archives because these are rare uses. But, someone uses these obscure features of WP and are taken care of.

    New WP features: If you have 50 client sites, do you really want to go in and code new WP features? Or, would you rather click an upgrade button?

    Quick changes: There’s no need to change things like all the post bylines in every theme template when I can do it in a few lines in the theme functions file.

    Flexibility: I can create an entirely new layout structure for a new theme in seconds by just importing a different layout stylesheet. One line of code.

    Hooks are a part of WordPress: Frameworks didn’t offer a new idea here. They’re simply extending what WordPress has to offer already. Don’t like hooks? Use the Hybrid Hook plugin, which offers a UI for adding new stuff via the admin.

    Stay away from options bloat: Too many theme options can be detrimental to future projects because some options may not fit in with that project. I’d like to get rid of them altogether and leave it to child themes and plugins.

    Widgets: Allow users to control their content from the admin. Don’t let it be some pre-defined thing you want to show (like an ad block). Let the user choose what they want.

    Template overrides: WordPress already supports a parent/child theme structure. So, if you must hack a file, you can simply drop it in your child theme and hack away.

    If you’re a developer, I can see where theme frameworks might seem a little crazy. You’ve already got your own system for doing things. But, I think it’s a little insane if you don’t at least use some sort of starting point for yourself. This can be in the form of a blank theme with some base templates to your own full-blown framework. Frameworks are just another starting point.

    • Ashton Sanders July 7, 2010

      Thanks for your lengthy reply.

      I’m still kind of lost though, which I’m sure is because I haven’t used hybrid. Are you saying it’s easier to edit your framework through the admin area, then open up a CSS file and edit that?

      Obviously, for non-nerds, I would agree. But as I’m a nerd, I can pretty much guarantee that Hybrid does not provide as much functionality for changing the CSS of a page as me in a straight CSS file.

      Or am I wrong?

      • I’m a bit lost too. I don’t see any reason for editing CSS from the admin nor does Hybrid offer such a “feature” (and never will). Just edit your style.css file.

        • Ashton Sanders July 8, 2010

          What? You said:

          I’ll be brutally honest here and tell you that I didn’t originally create Hybrid to be a theme for general public use. I created it because I had two issues:

          1) I was changing my design about once a week back in the day and realized that I was pretty much just changing stylesheets (I too love hacking WP). Most of the underlying code was still the same. There wasn’t much point in me wasting my time doing the same things over and over.

          2) I was also doing a fair bit of client work at the time because it was my only source of income online. Again, I was basically doing the same thing over and over – changing the style, not the code.

          So Hybrid does or doesn’t replace changing the stylesheets for you? From the sounds of it, Hybrid makes it easy to change the styles of your website, right?

        • Hybrid doesn’t replace stylesheets. It replaces the need to recode the same PHP and HTML every time. The stylesheet is something you change when you want a new design.

      • @Ashton Sanders

        Hybrid has the contextual hook system that provides you almost ( more than you ever need – I think ) all the situation you want.

        with that you can modify not only the CSS but the content as well based on your choice of page.

  29. Good Theme Frameworks are like a fine shot of Scotch. They improve greatly with age.

    Even if you do create your own framework as a starting place, can you honestly say it has been scrutinized, debugged and improved upon to the same extent as Hybrid, Thematic, Carrington, WooFramework or Genesis which are used by thousands of people?

  30. Rodrigo Flores July 8, 2010

    I had the chance to work with a custom, CodeIgniter (CI) like framework for quite a while and after getting used to it, it really started to grow on me. I haven’t had another chance to work with one until now. So, we’ll see how it goes.

    I think what Ruby, CI and CakePHP have in common is that they are so well done and by now also well known that if you learn them, by the time you are comfortable with them, you’ll be a much more capable, versatile web developer and/or you’ll end up doing something amazing from them.

    Heck, for that matter, you can say jQuery, MooTools, etc. are “frameworks”, and don’t tell me they haven’t made our lives a lot easier.

  31. You’re full of crap. ;-)

    My only framework experience is with Carrington, but it’s clear that if you are well-versed in its operation then you can save a tremendous amount of time when needing custom layouts. It’ll be interesting to see how nicely it plays with WP3.

  32. When I was first getting to know WordPress,I tried stripped down theme frameworks. But once I really dug my nails in, I realized that I didn’t need MOST of what was under the hood because:

    1) I didn’t know the functions were there or how to use them because of lengthy or poor documentation that did not lend itself to a newb

    2) So if I wanted, say, multiple sidebars, I would build the functions in myself, even if they repeated some abstracted functionality I “should have known” was there already.

    Now I just do it from scratch to keep the theme slim.

  33. I developed framework called xScape that is more featured packed than any other framework I tried before. And I built in advanced loading optimization that loads only what needs, and in that sense it’s effective than most normal themes I tried (or other frameworks for that matter). I also built some 10 widgets, modules and all kinds of things.

    And the best thing is that in each theme built on framework 80% of code that is reused from it. Building a theme from PSD design can be done in less than 2 days. I even compared time needed based on a theme I did for client last year. For normal theme I needed 6 days to make everything from scratch, and I needed less than 1 day to make the same theme with xScape and to have tons more features on the count that I used the framework power.

    As Justin said, using framework is much more productive and flexible and in the end easier to maintain. All themes I built on my xScape framework share same framework code, so when I make one change in the framework, all themes get it via SVN. Adding new features, and I just need to update themes to support it.

    For me there is no contest, using frameworks is a must if you are making more than one theme, and I know that I will never build a theme from scratch.

  34. I’m going to side with Justin on this one. Frameworks definitely save you a lot of trouble. But, as others are saying, you don’t necessarily need to use a framework verbatim.

    I’ve been using my own framework, Startbox, for the last 2.5yrs now. Early on I learned about the Sandbox project and forked it to more specifically fit my needs. After helping launch more than 50 websites since 2008 I can safely say that working with the same base-code for every site I build has dropped my build-time and improved my ability support dramatically.

    Much like Justin, I’ve been inspired by Ian Stewart and the Thematic framework (also forked from Sandbox), and I also intend to release my framework to the general public. I’ve been very leery until this point, afraid to put it under the scrutiny of others, but I think I’m almost ready.

    I’ll cut my post short and just say +1 to everything else Justin had to say. :)

  35. Nathan B. July 9, 2010

    Chris, you articulated my feelings about WP frameworks exactly. I started trying them because I thought they would make life easier, but they made life harder, because everything had to be done in PHP functions. I had the same thought, in slightly different words: “I thought this would be good for dumb people, but it’s only good for smart people.”

  36. So far, I’ve enjoyed reading the responses to this post. It’s enlightening to see the legitimate, and not so legitimate, objections to using a framework.

    First off, I, too, was anti-frameworks at one point in my career. I used words like “bloat”, “inefficient”, etc. in my criticisms. But what it really came down to was ego. I wanted to use MY markup style, even if MY markup style was untested, unoptimized, and incorrect. That’s not legitimate.

    As the primary author of the Genesis Theme Framework, here are my thoughts:

    1. Do you really think that you, while balancing work, freelancing, life, etc., are really going to spend the necessary time, on each project, to develop a fine-tuned markup structure, SEO, and feature library that a professional Theme Framework has? I think not.

    2. If your code has bugs in it, are you going to go back through all your previous clients and fix those bugs? I doubt it.

    3. Are you a security expert? Mark Jaquith (lead developer on the WordPress project, and security expert) audited Genesis for security issues, helping us patch holes in our code.

    4. When new versions of WordPress come out, do you feel like going back to all your clients and integrating the new features? Nope.

    These are all things that good theme frameworks do for you.

    Balk at that, if you like, but I doubt you can show me many examples of people developing standalone themes that have anywhere near this level of flexibility.

    I also agree with Justin … making changes to a framework usually takes less code than with a traditional theme. This has proven to be true in 90%+ of the cases I’ve seen. In fact, because people are so accustomed to doing things the hard way (page templates, inline conditionals, etc.), they usually thank us after having us explain the much easier, much more reliable method of making changes programmatically, instead of the old way. They’re almost always pleasantly surprised.

    My advice, don’t knock it ’til you try it. Spend a couple of days on a mock project, spend plenty of time in the framework’s support forums soaking up any methods you can, and see if it doesn’t cut your development time in half.

    • Exactly right. Using framework is a must in almost all cases. And the framework doesn’t need to be too complex, depends on what you actually want to achieve and what degree of abstraction works for you. But integrating SEO, centralized settings, proper security, shared functions and things like that are at least what framework needs.

      I made my xScape framework so that with all these, also adds easy to use layout manager minimizing need of a end user to change the code of a theme. But, all that are different degrees of what frameworks can do. I know for sure that I will NEVER again make a theme that doesn’t use a framework.

      On the other hand, if you are making simple theme that has fixed layout, not many options to choose from (and this goes for 99% of free themes), frameworks can be too much.

      As far as I know, all big WordPress theme developers are using frameworks because simply, there is no other way to provide a proper service to users who buy themes and be able to fix bugs and expand themes with new features, and not spend days and months fixing each theme individually.

    • carlos correza July 9, 2010

      Another point that Nathan Rice didn’t mention, In the case of Genesis, new features of WordPress 3.0 were supported on the same day WP 3 was released.

      You can’t imagine the learning curve non-technical writers would face trying to make the most of these new features.

      For most if us, adding a line to wp-config to enable a feature is the simplest thing to do. Trust me … I’ve worked with clients who could not do this, even when they’ve got me on the phone walking them through it.

      There’s more to the value of a framework than your own personal projects. If you can tell your clients “click here” as opposed to “ftp to this server, find this file, edit it and check your syntax to make sure you don’t break anything” You look like a hero.

  37. carlos correza July 9, 2010

    I like digging into WordPress as much as anyone. But, doesn’t there come time when actually publishing something is more important than the mechanism by which it is published?

    A lot of content providers are just that “content providers” not theme developers. These people shouldn’t have to divide their efforts between their content and their publishing system. A good “framework” lets them concentrate on what really matters … their content

    I’m sure there are a group of people who obsess over cook-tops and ranges. They probably don’t pass up a good meal because the stove was too easy to use.

    • Ashton Sanders July 9, 2010

      Yea, I think that’s the question though. Are frameworks easier than just hand coding a theme?

      I haven’t tried a framework, but done a lot of hand-coding… WP functions make it so easy to do “a lot” of hand-coding in a very short time, if you can read the codex.

      From what I can tell, learning a framework allows you to do some things faster, but it limits your functionality (as it can’t do everything).

    • Ashton Sanders July 9, 2010

      But this has been a very interesting discussion. I’ll definitely have to fiddle around with a framework and see what it’s all about.

      • carlos correza July 9, 2010

        Personally, between the functionality afforded by a robust framework and the intelligent placement of hooks thought said framework; I haven’t found a single instance where “doing things by hand” was faster.

        I can tell you with supreme confidence that you would need a radical departure from the basic structure of a framework such as Genesis before it no longer made life easier.

        Considering that in the case of Both Genesis and Thesis, plug-ins exist to address the theme hooks without editing a functions file, there is very little a framework cannot do faster and easier than hand editing.

  38. I’ve coded several themes myself and also had something against frameworks, until I got to know them a bit better. Now I am totally convinced that a good framework is the way to go for any site: a child theme, a bit of CSS and a few hooks, and you can do anything you want.

    Not to mention the fact that well maintained frameworks provide updates: custom menus from day one WP 3.0 was out, by just the click of a button. Very handy when you have a lot of sites to maintain.

    I’ve tried Thematic, Hybrid and more recently Genesis and loved them all.

  39. This article, while very short, has spurred lots of super interesting conversation. I’ve started working with wordpress because of all the things I learned on CSS-Tricks. I’ve been doing this web thing for about 6 months now seriously and have just started to look at the framework options. I just joined the premium section of the Hybrid theme and have to say Justin gives great support and doesn’t make people feel stupid about all the things they don’t understand.

    I honestly just thought last weekend that I wish Chris Coyier used Hybrid because I think with Justin’s framework and Chris method of teaching I could really be an expert at it. Justin does a great job of explaining things but if I could find a video that converted a PSD to WP through Hybrid, I’d be in heaven! Keep up the great work! I’m happy to be part of the wordpress community. So many web communities turn negative towards those who are less understanding…

    Kiko Doran

  40. I’m a fan of clean and basic. I downloaded a theme-framework from this site a while back and use that when developing. It’s perfect!

  41. More love here for Hybrid. It’s unbelievable how far my WordPress knowledge has come in the last year. Hooks, actions, filters, functions.php.

    Frameworks aren’t for noobs. They’re for developers and designers that want to work quickly and stay on top of the best of WordPress. They’re part of what’s making WP so great.

Comments are closed. Contact us with any critical information. Thank you!

Code is poetry