NOUVEAU is now live!
I have always loved the idea of a WordPress theme framework, but every one I have ever used has been a thoroughly hate-hate relationship. No, I’m not going to name names, but I’ve pretty much tried them all.
In my experience, WordPress frameworks are something of a Goldilocks story; with the frameworks being either mass the majority of options out there being either tiny, useless code libraries or massive, bloated monstrosities.
The most popular frameworks fall almost exclusively into the bloated monstrosity category. These far overstep the purpose of a theme, which is presentation. I don’t want a WordPress theme framework that includes a dozen or more plugins-worth of features. It means you can never change your theme again without everything breaking!
On the other end of the spectrum are the light-weight frameworks. There are only a handful of these that I know of, but this particular variety of framework simply don’t go far enough. Some provide a basic back-end structure for WordPress projects, while others are little more than a handful of php templates.
What I wanted was a third option… the baby bear in my proverbial Goldilocks analogy. Not too big, not to small, but just enough to get me started quickly.
And so, I started working on NOUVEAU about 3 years ago, just when the “responsive design” movement was just hitting it’s stride. I needed a starting point that used the technologies and techniques I loved, and helped me get my projects started fast. No more TwentyWhatever, no more end-user-centric behemoth frameworks like Genesis (ugh!)… something light but fully structured, something fluid… something I could really bite into as a developer.
These were my criteria…
WordPress may be stuck supporting dead versions of PHP due to compatibility concerns, but that doesn’t mean I need to be stuck in the past with it. I wanted to use namespaces to improve organization and naming conventions while reducing potential naming conflicts. I wanted to use anonymous functions to tidy up simple callbacks. PHP 5.3 had to be my standard.
Mobile-first & “Responsive”
I wanted my sites to treat mobile users as first-class citizens. When I started a new project, I wanted to be able to create one design, and one site, that could provide a great experience to users on any kind of device and with any size screen.
CSS just isn’t good enough… let’s be honest, it never was. Styling tasks that should be simple (like maintaining a consistent color palette), are a mess. Classes can’t inherit other classes. The list goes on. Enter the advent of CSS preprocessors. For my projects, I wanted SASS.
Themes are Themes & Plugins are Plugins
WordPress gives developers two brilliant ways to customize their sites: themes and plugins. These two things are not, and should never be, considered interchangeable. Like a costume or a coat of paint, themes should be focused entirely on presentation. Changing your theme should never result in content or features being lost… that is what plugins are for! I needed to make a clear distinction between these two things: plugins should continue to function with any theme and themes should continue to function with any plugins. If this meant splitting the framework into separate a theme and plugins instead of one tidy package, then that’s the way had to be.
Putting these criteria into practice has been quite the journey. Since starting on this project in 2011, NOUVEAU has undergone countless revisions… but it wasn’t until last Summer that I started getting it ready for public consumption, after the following conversation with a friend:
What are we using for WordPress themes these days?
Yeah… I can’t stand TwentyThirteen. I really don’t need ALL THE KITCHEN SINKS.
To be fair, the Twenty themes are supposed to include all the kitchen sinks. I’ll send you what I use.
Needless to say, the copy of NOUVEAU I sent J didn’t include a quick-start guide, or any help beyond basic code comments… but as it turned out, that was good enough for J to hit the ground running with almost no additional input from me. In fact, it was his subsequent feedback that convinced me to open-source the project.
NOUVEAU is an ever-evolving passion project for me. It’s what I use for every new WordPress project and I will continue to update and maintain it as long as I work with WordPress. Furthermore, I plan on keeping NOUVEAU free, as in speech. Forever. No memberships, no premiums, no “pro” versions. This is it. All of it.
As of this writing, I consider NOUVEAU a pretty damn solid beta. It’s stable, and definitely production-ready… but there’s still a handful of items left on my to-do list before I’ll be ready to bump it up to that all-important 1.0. In particular, I want to dramatically improve the exposure of the comment system, so it can be quickly and easily customized from the get-go.
If you’d like to contribute, then by all means please fork the project on Github!
I’ve also set up a hosting donation page with Dreamhost in the event you’d like to donate a little hosting (all money goes directly to my hosting).
And, of course, I’d love to hear your comments, criticisms, recommendations, and suggestions… so please feel free to contact me with whatever is on your mind!
I hope you love NOUVEAU and find it helpful.