Originally launched in 1994 as “Hotwired,” Wired.com has grown into a family of successful blogs that reports on current and future trends in technology. Early this month, Wired announced their first major site overhaul in 8 years. We were fortunate enough to talk with Jake Spurlock, one of the software engineers on the project, about what it was like to migrate 17 active blogs to one single WordPress install.
Here’s what he had to say:
Torque: First off, can you tell us a little bit about what you do at Wired??
Jake Spurlock: I’m a software engineer at Condé Nast, a “premier media company renowned for producing the highest qualitycontent for the world’s most influential audiences.” In addition to Wired, Condé has other magazines like GQ/Vanity Fair/Vogue/New Yorker and sites like Ars Technica, and Reddit. Prior to working on the tech team at Wired, I led web development at Maker Media, overseeing Maker Faire and Makezine.com.
Torque: I’m sure the idea of bringing all of Wired’s sites back into a single hub was something that has been in the works for a while, how did you guys decide to go with WordPress?
Jake Spurlock: Well, the sites started out in WordPress, so keeping them in WordPress seemed like the best idea. That side of this project was both conceived and carried out before I joined the team, and our Director of Engineering, Kathleen Vignos gave a great talk at WordCamp San Francisco last year about it.
One of the first questions that people ask, is if we went to WordPress Multi-Site, or the single site route. We ended up going with the single site option, using different categories between the verticals of the business. It made a lot more sense to silo content in categories than between sites. This allows us to cross publish content between different verticals, and utilize a single database for querying content.
Torque: The site is super snappy, can you walk us through the process of how you guys did that?
Jake Spurlock: There are a lot of things on the site to make it snappy. We rely heavily on three layers of caching, Memcache, Varnish, and Fastly. At the base layer, we use Memcache for object caching. If you are doing a query, or a remote request, or anything that will be reused, we throw Memcache around it.
For people that might be new to using object caching, you can read more about it here. In addition to Memcache we leverage a plugin that Mark Jaquith wrote called TLC Transients. The goal with TLC Transients, if we want some kind of data that might be slow to process, we don’t want to holdup the page load to generate it. So, we serve stale data, and then use the page loading process to kick off a process to generate the data if the cache has been invalidated (usually by time).
For example, on all of the single pages, we have some social stats, like this. We have some scripts that will go and fetch the stats from Pinterest/Facebook/Twitter, but if we were to figure that all out on page load it would be extremely taxing, so we serve up stale stats, and regenerate them every five minutes.
Moving up the stack, we use Varnish to do a full page cache. From Varnish, we pass the sites from the origin servers to Fastly, which serves as our CDN, and boy are they fast. On the front-end of the site, we are doing a lot of cool things to make the site both playful and fast. Ross Patton led the front-end development, and he built a lot of really thoughtful things to make the site snappy.
Zack Tollman, our lead engineer has worked with our devops team catering Fastly to some really unique uses. At the Apple “Spring Forward” event on March 9th, we used the JSON API in conjunction with React, and some WordPress logic to serve an awesome liveblog using Tumblr.
Our editors would use Tumblr to post with their suite of mobile apps. We would then scrape the Tumblr API every ten seconds, and if there was new content, we would invalidate the Fastly cache, and serve the new content. During the event, we actually saw our content coming up before Apple would announce, on account of the delay of the livestream. It was a big win for our team, and just shows another way that you can use WordPress as a application framework.
Torque: What sort of traffic you guys see normally across all the sites?
Jake Spurlock: Simply, a lot. Without getting into specifics, we have some stats from our press kit: Unique Visitors: 28 million, up 115% over the past 3 years, Page Views: 99 million, up 111% over the past 3 years, Average Time Spent: 14 minutes. “The Dress” was a huge hit, and Chartbeat said that it was one of the most popular pages on the Internet last week.
Torque: Some of WordPress’ criticism, particularly on this recent Hacker News post, is in regards to WordPress’ security and caching concerns. Is a site like Wired more vulnerable if it’s running WordPress?
Jake Spurlock: Any site that publishes online can be vulnerable. Even publishing static HTML can make you a target of attacks, so we take security seriously and have a lot of checks to keep everything in place. Simple things like roles and permissions, where we give only certain people the right access to what they need, two-step authentication to make login more secure, and at the server level, working with our devops team to ensure that software stays secure and patched. We recently moved to AWS for hosting, and we are really happy with the speed, convenience, and security that we have there.
Torque: Is there any integration between the digital edition and the WordPress site?
Jake Spurlock: Right now, there isn’t, but maybe soon!