Ask the Expert is a weekly series here on Design Informer. Building large scale websites with WordPress is the theme for this week. Derek Herman of Envato is this week’s expert.
Derek Herman is a 28 year old web developer residing in Portland, Oregon. He started Valen Designs in 2006 while still in college and working as a graphic artist.He is an experienced UI designer and becoming more and more of an established backend developer with each day that passes. He is also a web developer at Envato and he was also in charge of building out the network of websites that we all visit daily, the Tuts+ Network.
Building Large Scale Sites with WordPress
Hello Derek, thank you for agreeing to do this interview. Please tell us a little bit about yourself and how you learned WordPress.
I have been working with WordPress since the early days of Strayhorn v1.5 when the UI was super ugly and there weren’t many themes out there, well good ones anyhow. I basically was self taught and learned how to code themes by taking them apart. I didn’t really use the codex for the first six months or so, but looking back I wish I had taken more time to study the functions and filters because it would have made my life a lot easier.
I guess it was really a trial by fire situation. I remember some of my earlier projects having no idea what I was doing and having to learn while I worked, it’s not the best way to build your skills but I eventually became competent in what I was doing and could code a WordPress theme without any copy and paste.
I really got into developing large scale sites about a year and a half ago which is close to the time I started working with Collis Ta’eed & all the great folks at Envato. One of the first projects Collis & I worked on was the Tuts+ network (Psdtuts+, Nettuts+, etc.), he designed the theme and I built it with five versions at the time, four of them for each of the existing sites and one for a new site we launched after the theme was done. You could say it was actually one of those moments in my career that if the job was done right it would potentially be the building blocks for a long and fruitful working relationship. If you have been following Envato at all this past year you probably know how that turned out. I fortunately have had my hand in building a bunch of the amazing sites many of you visit on a daily basis and working for the best startup and boss out there. Collis really makes work fun and exciting and everyday I get up and work on some crazy hard to build themes Collis has concocted. I can say that there is never a dull moment, and challenge is what really drives my motivation.
What large scale websites have you built using WordPress as the CMS?
All eight of the Tuts+ network tutorial sites
- FreelanceSwitch & its forum
- AppStorm sites
- The Envato Wiki
- The Swish Life
- Venture Visuals
- Envato Marketplace blogs
I have many other projects that I have done over the years but those are the largest ones I can think of. All of them in one way or another leverage WordPress and its tremendous flexibility to become whatever you need it to be. I don’t think there is anything you can’t do with WordPress if you really have the motivation to build it.
What are some plug-ins that you always use in these sites?
A lot of the time I or some third party ends up creating custom plugins for each project due to certain requests Collis makes where the functionality just doesn’t exist. But for the most part there are a few plugins that always make it in. For example, up until recently we would use WP-PageNavi for pagination and it works very well but as time passes we wanted to change the whole look and feel of pagination so I created a new plugin that is a bit different in its approach. I should be releasing it to the public under the GPL soon.
- Feed Wrangler
- Google XML Sitemaps
- Maintenance Mode
- Simply Exclude
- WP Super Cache or W3 Total Cache
I also use a ton of ther custom functions and plugins that are site specific.
Name a challenge that you encountered while building a large scale website with WordPress? How did you solve the problem?
Most of the really difficult issues come from building new updated version of a theme. If for whatever reason the design changed enough that you have to alter the way you post content to your site things can get tricky, and in some cases just tedious and time consuming going through each post/page making simple fixes. One of the issue with the Tuts+ network is that the original theme for psdtuts.com used the excerpt and a really odd way of separating content that as the site grew caused many interesting moments of frustration.
In the end I ended up having to do a lot of PHP if else blocks testing for legacy code and making adjustment to plugins that rely on filtering the_content. Basically, the legacy code didn’t play nice with any plugin that filters content and spits it back out, so I needed to run it though another filter to allow plugins access to the_content(). All in all a complex and necessary evil to get the old content to play nice with the new.
There’s going to be hurdles in every project, but you just find a way to make it work and move on. Regardless of how difficult or tedious things may get you just have to grow a pair and do your job.
What are some advantages of using WordPress to build a large scale website?
A mature, simple but robust CMS/Blogging platform with tons of documentation and resources available at your fingertips. You can usually find the answer to your seemingly original question with a little help from Google. If you’re having an issue, it’s likely someone else did too and told the world how to overcome it.
What are some disadvantages of WordPress when building a large scale website?
A year ago I would say you need to extend WordPress by building your own custom functionality but as the platform has matured so has all the available plugins. You don’t need to write as much original code as you once use to, not to say I don’t, I just know that if you are a beginner it would be nice to have such a large volume of available free code at your disposal.
So i guess WordPress is the way to go when bulding large scale websites. Can you tell us a little bit about your process when building these type of sites?
I start every large project with a discussion about how it is going to work and how we are going to accomplish some of the parts that aren’t clear yet. The projects that I work with Collis begin with a build brief and a bunch of psd files. I get some high level instruction on what Collis has envisioned for the site and I reply with any questions about the project. After we have discussed everything that feels important, I build the whole thing in HTML/CSS.
Once I have a good static version working I spend many long nights coding it into a fully functioning WordPress theme on my development server. If there are plugins that don’t exist I build them and write any custom functions and admin option pages that I need for the project. Then when we feel it’s ready we put the site in Maintenance Mode and start the process of switching everything from feeds to random fixes in the database. It’s usually a huge undertaking and in some cases takes hours. For example, we spent 17 hours switching over FreelanceSwitch and was by far the most painful update I have ever been a part of, but we got it working eventually and it turned out to be a really well received upgrade.
I strongly believe that these kinds of site are a test of endurance and you should never jump into them thinking it’s going to be a foot race.
Take your time and make sure you did it right or in the end you’ll have to fix it while it’s live.
What are some features of WordPress that make building large scale websites easier?
What advice would you give someone who wants to start building larger scale sites with WordPress?
I would first learn to code HTML/CSS & basic WordPress themes really well then move on to large scale sites once you have a good grasp on how functions and filters work in WordPress.
In your web development career there will be a natural progression of your abilities if you have the motivation and drive to learn and master your craft. Take the time to really learn those basic building blocks and when the time is right and the opportunity presents itself you’ll be ready to take on a project that’s over your head but not out of your reach.
Once you have successfully completely your most challenging project to date, find the next one and never stop learning or pushing yourself to build better more complex and creative web site.
I just want to thank Derek for doing this interview. I really appreciate the fact that he took time from his busy schedule to give detailed, well thought out answers to the interview questions.
The next topic will be another interesting and helpful one. We have a very talented web designer for the next interview. I don’t want to give out too much details yet, so please stay tuned. You can follow me on Twitter and subscribe to the RSS feed here.