What We Learned at WordCamp Boston 2013

Screen Shot 2013-10-31 at 3.41.05 PM

We had a wonderful time at WordCamp Boston 2013. The presentations were absolutely fantastic, and pushed our understanding of WordPress in ways that were both deeply thought-provoking and immediately helpful. Toward the beginning of the weekend, we decided to write up the whole experience for people who (a) weren’t there and (b) can’t sit through the 20+ hours of video that would deliver the full experience. So below are our succinct notes on WordCamp Boston 2013, starting with the “second keynote” by WordPress 3.7 lead developer Andrew Nacin.

Disclaimers: We attended as many presentations as we could, but we couldn’t make it to every one, both because they happened three at a time and because we had to take occasional breaks from revolutionizing publishing to go to the bathroom, tell our families we loved them, and things like that. If we missed your presentation, we’re truly sorry! If you’re curious about presentations we didn’t attend, the folk over at Oomph have linked up almost every slide deck from the weekend. (We’re also not going to cover Ethan Marcotte’s keynote, “The Map and the Territory,” which has been written up elsewhere as he’s given similar talks on the same theme. Here’s video, succinct notes, and a closely related interview.)

The Dark Magic of WordPress 3.7, Andrew Nacin

Summary This presentation covered a lot of ground, because it was sort of like listening to the voice of WordPress itself. However, the main topic was the release of WordPress 3.7, which sets up auto-updates for WordPress (!), and which Nacin led.

Have written elsewhere about why you want to take the time to update to 3.7 and why you should ever update WordPress in the first place. Worth a look if you’re on the fence about moving to 3.7.
Agreed, but was also privately like “…but they are, though” at the sentiment that “core updates shouldn’t be a painful task.” The problem isn’t constant nag messages asking you to update WordPress (which 3.7 fixes), it’s that every update feels like it risks breaking your site in impossible-to-predict ways. It rarely does, but the psychological weight of possibly being hit with a three-hour “What did you do, random plugin author?!”  session as a result of hitting the button is discouraging.
Mother of...Recoiled at the intellectual majesty of Andrew Nacin. This is Fred speaking; David wasn’t quite as head-over-heels as I was. But Nacin’s just got an encyclopedic understanding of WordPress and everything surrounding it that was fascinating to watch. For the record, David’s presentation on theme creep (more on that when the video comes out) gave me the same feeling.

Appreciated the honesty of Nacin saying “We’re not trying to build—at the moment, at least—a generic framework for anything you might want to run on the web.” It sort of sounds like that is what Matt Mullenweg wants to build, maybe, so that should be interesting as it develops. Nacin’s perspective is that “WordPress is an amazing platform for working with content,” but if your app isn’t content-focused, WordPress is not the best.

Presentations David went to

WordPress Templating with Timber and Twig, Jared Novack (Slides)

banner-772x250Summary Jared, sanely, thinks that WordPress templates are a bit hard to read and unsightly. As a result, he’s pulled over the Symfony templating engine, Twig, and combined with a WordPress plugin called Timber. Combined, you have the ability to make WordPress template files that are free of <?php ?> tags and unnecessary logic, which makes it easier for designers and other business stakeholders to take part in the making of them. An awesome combination of features.

Got nerd chills at Timber demo. Jared really has built a system that thinks through all the strange things you’ll want to be doing in WordPress templates built with Twig.
Worried a little about the extent to which going this route makes your code opaque to an average WordPress developer. If someone’s used to PHP templating this may all seem like so much magic.

Wicked Fast WordPress, Chris Ferdinandi (Slides)

Summary Chris made a strong case for why the speed to load of your WordPress site matters and did a great job explaining how to do it.

Wished the world knew about “CSS at the top, JS at the bottom” as best practice. In WordPress, that means the fifth parameter of wp_enqueue_script() is set to true. Simple but important.
Nodded in agreement with the idea that fewer style and script files is ALWAYS faster. And minification of those files makes them faster still.
Curiosity piqued by the Minqueue plugin. Seems like a great way to concatenate and minify your styles and scripts I’d never seen before.

Jetpack for Developers, George Stephanis (Slides PDF)

Summary George started by calling out everyone who capitalizes the P in Jetpack. And then he called out a number of great functionalities of Jetpack that I’d not know about. He especially called out the value of their contact forms, Photon image CDN, and Omnisearch —which hopefully will come to WordPress core soon.

Felt a slight thawing in the ice in my heart around Jetpack—which does a few things I like and manny more I don’t. It’s a strange model; in retail, it’d be like package-selling a flatscreen TV with a car jack, a croquet set, and arm floaties.
Intrigued by the stats_get_csv() function, which lets you get statistics data to use programmatically. It’ll take care of authentication so you just have to worry about what you’re doing with the data.
Glad to learn about JETPACK_DEV_DEBUG, a useful constant to have set for a number of reasons, especially for local development of a Jetpack site.

JQuery and WordPress Together, Again!, Corey Frang (Slides)

Summary Corey’s presentation was the craziest thing I saw at the entire WordCamp. The things that the jQuery team and the WordPress guys were able to put together serve the jQuery use case so perfectly, and are really far outside the box of traditional WordPress implementations. It’s some deep nerdy developer stuff, so I’ll not summarize it too closely, but check out that deck if you want to be amazed.

Will have to check out Grunt-WordPress, which allows a simple command-line front end for the jQuery team to build and deploy their site.
Mentally bookmarked the idea of using a dummy JavaScript array at the top of your file to pass off data needed at the other end where the data is received and worked with.
Felt sympathetic joy at the jQuery team’s appreciation of the utility and value of parent and child theme relationships. It’s a great feature of WordPress, and one that deserves love.

PHP Unit Testing, Eric Mann (Slides)

Summary Eric started with a good summary of the value of testing your code: it keeps its defects to a minimum and saves you from spending your time manually checking all on your existing functionality. He then explained some of the best practices, and how to use them to write better and more testable code.

Excited to dig into WP Mock. It really seems like the 10up team has made testing WordPress code easier than I expected to find it.
Surprised that Eric and team haven’t actually automated their testing. It makes sense—if you trust your whole team to run their tests and not break them, you don’t need to—but I would have guessed they did.

Anatomy of a WordPress Hack, Brennan Byrne (Slides)

Summary Brennan covered three of the most common types of vulnerabilities on the internet: XSS, Clickjacking, and SQLi. XSS — cross site scripting — occurs when a developer doesn’t clean user inputs before they show it back to them. Clickjacking is when an attacker user something like a hidden iframe to make you click something you don’t mean to. SQLi, which stands for SQL (database) injection, and happens when a developer lets user input go into the database before making assurances it won’t do harm.

Entertained by Andrew Nacin breaking into the presentation to point out that WordPress now runs more than 20% of the internet. Also, Brennan’s auto-tweets.
Felt a shiver of transgressive glee at Brennan’s vandalism of Cardinal’s websites to show off how to attack the vulnerabilities.
Reassured to see that for the SQL injection attack he had to be running WordPress 2.2 to find a vulnerability in core.

Sweet bbPress Secrets, John James Jacoby

bbpress-logoSummary JJJ has been the driving force behind bbPress ever since it got rolled into a WordPress plugin in 2010. He hates slides, but did talk over some pretty cool features of bbPress, like its use of the singleton pattern in contrast to WordPress’s “everything’s global” approach.

Surprised to learn that for a while between 2004 and 2010, it seemed like bbPress may have ended up more popular than WordPress.
Struck by the possibility of something like bbp_register_template_stack() coming into WordPress core, so that it can move past the “no grandchildren templates” problem.

Advanced Customizer Usage, Matt Wiebe

Summary Matt talked through how his team at WordPress.com/Automattic has done some really cool thing with the theme customizer. He mentioned, repeatedly, how frustrating he finds the experience of coding with the interface, specifically bringing up the pain caused by the fact that the customizer was built before the Backbone Javascript library was made a part of WordPress core and how the tool suffers for that.

Really impressed by all the sugar that has gone into the theme customizer for WordPress.com. It really doesn’t even resemble the out-of-the-box appearance of the panel at all. They’ve using Javascript and CSS to move it to the opposite side of the screen, change its color, and way more.
Intimidated upon hearing Matt point out just how much of the documentation around the customizer is under-explored and incomplete. I have little doubt that his assessment is correct, but it did scare me a bit.
Curious to try out the Advanced Upload Customizer component Matt has put on Github.

Caching for fun and profit, Mohammad Jangda (Slides)

Summary: Mo is a “VIP Wrangler” at Automattic which means he’s working really hard to keep high-traffic high-prestige websites online and speedy. He went over the basics of how caching works in WordPress, what its limitations are, and when and how you use the APIs.

Nodded knowingly as Mo repeatedly mentioned that caching can’t solve slow queries and other long-running processes that block page loading. Simply, there’s no way around the need to build the page sometime, and if that takes a while it’s always going to take a while.
Intrigued that many Automatticians, including Mo, recommend Batcache. It doesn’t get a lot of love out among us civilians, but these Automatticians are probably loving it for a reason.
Was glad to hear reiterated that the WordPress Transients API is just that—transient. Made to exist for a short time. Likely to disappear unexpectedly. It’s a thing people always struggle to keep in mind.

Presentations Fred went to

What you need to know about SEO in 2013, Casie Gillette (Slides)

Summary Casie discussed the current state of SEO, which is generally “back to basics”—meaning that old SEO tricks don’t work. (This is especially true of building thousands of low-quality links through link-building schemes.) The presentation was also full of a number of helpful but difficult-to-summarize tips (about Google+, WordPress plugins and tools for SEO, and a lot else), making it a recommended listen once the video’s posted.

Penguin, Panda, Hummingbird - Google SEO algorithm updates

You will know fear.

Enjoyed the mental picture of Penguin, Panda, and Hummingbird, Google’s algorithm updates, being devastating forces of destruction. These updates are indeed wreaking havoc on the SEO world—Penguin and Panda penalize duplicate content and low-quality links—leading to my next takeaway.
Felt vindicated in my perception that SEO “as a thing” is probably over. Most SEO best practices are simply content marketing best practices: knowing your audience, producing regular, high-quality content, and working to share that content through real, natural channels. Just about anything on top of that is obsolete.
Greatly appreciated this three-part summary of what actually works in SEO: (1) Keywords—good and relevant, and the first thing to research; (2) Content—regular, useful, and helpful, and with keywords; and (3) Link-building, based on delivering actual value to real people and including links in that.
Glimpsed the black heart of Google, who are building more and more rich search results so you never have to go to other sites. (Googling “Red Sox” will give you scores and ticket times—no need to go to MLB.com.) More time on Google itself means more ad revenue.

320, 480, 640, 720, 768, 960, 1024… NO, Christopher Cochran (Slides)

Summary Chris reinforced the keynote theme that “responsive design is putting content first.” “Design is 95% typography”; he walks through a layered design approach that starts just with HTML markup on a page (no stylesheet), then proceeds to typography, then proceeds to everything else. Advocates letting “typography dictate layout widths,” with characters per line (CPL) as an important layout metric.

Had mind blown by @height media queries! They exist, and let you make decisions based on how tall the browser device’s window is. I started using them right away for a project.
Agreed sheepishly with advice not to use display:none; to hide content at responsive width. This forces phones to waste bandwidth loading content the user never sees. There are ways to conditionally serve content using JavaScript; please ask for details; I just had to do it for a project, and had fun doing it. (Would like to write a plugin at some point.)
Found at once mischievous and sensible the advice to test cross-device compatibility by visiting phone and mobile device stores. You just pretend you’re there to buy something, and test your sites across every device you find. Brilliant!

Evolving your JavaScript with Backbone.js, K.Adam White (Slides)

Summary Backbone is a JavaScript library present in the WordPress core. It offers MVC (which in this case stands for model-view-collection) structure to JavaScript development, allowing separation of the logic of a JS application from the visual way it’s presented. One advantage of Backbone is that when the logic (say, a variable) changes, the presentation (what the user sees) changes automatically without any need to manually update HTML DOM elements, jQuery-style.

Seemed to glimpse The Future in PostListr, a sample app built using Backbone and that makes use of the recently completed JSON API for WordPress. The app can pull the most recent posts from any WordPress site that uses the JSON API (all wordpress.com sites, sites running Jetpack, and a few others). This points at the possible future of WordPress, with custom admin interfaces and a bunch else made possible through the API.
Was floored by the high quality of this presentation, and the amazing amount of ground it covered. If you’re at all interested in highly technical JS frameworks, do yourself a favor and watch this presentation when the video comes live.
Felt a stiff breeze directly above my head during parts of this presentation.

Git for 5 Year Olds, Jon Heller (Slides PDF)

Summary Jon presented the basics of Git, the standard version-control system. Outlined its simplest use as “a wonderful backup tool.” Gave a basic overview of version control concepts, and introduced a visual Git interface I hadn’t known about called SourceTree that appears to simplify using Git considerably.

Agree-raged when the presenter said “Part of the problem with Git is that it’s a tool made by developers and for developers.” My notes read “This is true; I hate this.” My experience with Git has been a million obscure command-line errors.
Appreciated this quick beginner glossary: revision: a change or group of changes; commit: “save the changes to”; creates the revision; remote server: an external server which hosts your repository; needed to share or deploy code (never log into it or do work on it; it’s just a storage space); push: what moves revision onto remote server; pull: what gets remote server contents to local directory structure.
Also appreciated the following advice for using Git (some of it WordPress-specific): don’t create a Git repository at WordPress root, since you don’t want to keep track of the WordPress core, plugins, etc.; never change revisions, but create new revision reflecting changes; don’t expect Git to version-control your WordPress MySQL database (this makes Git a bit awkward for WordPress); and do “commit often” rather than doing eight hours of work and forgetting what you’ve done.

no-ideaLaughed like an idiot at the slide to the right—just caught me in the right way. Slide of the Weekend honors.

Why Custom Post Types are Awesome, Dan Beil (Slides)

Summary Dan gave a quick introduction to using custom post types—the smart way to add your own data types to WordPress. Particularly focused on adding custom meta boxes: “A custom post is good; customizing meta boxes is better.” Meta boxes do not need to be registered along with a particular custom post type; they can be added to arbitrary post types without hacking existing plugins (which is a bad idea).

Find worth repeating the bit about meta boxes above—was my major takeaway. If you’re digging around in WooCommerce trying to add a custom post class to some of your products, take a break and flip through this presentation.

How WordPress Entrepreneurs Build Their Business, Matt Medeiros (Slides)

Summary A general discussion of best practices for WordPress freelancers. A main takeaway was to “sell on value”—that is, get potential clients’ imaginations working around how much value a properly-done website will add to their business, and then have pricing be a fraction of that. It’s a contrast to selling on hours (a sort of “builder” or “contractor” mentality). Matt also recommended some time management tools for entrepreneurs and freelancers: Google Calendar, WonderList, Trello (which he finds lighter than Basecamp).

Agreed that “time blocking is awesome”—Matt blocks out Monday and Tuesday for his podcast, and doesn’t schedule calls on Fridays or after 2 PM. Finding the discipline to do similar things has been really helpful, and I aspire to do it more.
I love TrelloThis isn’t a game to me.

Feel a pure, simple, uncomplicated love for Trello, which we ended up adopting shortly after WordCamp. It is the handsome, overachieving older brother of every JS project management application we’ve seen to date.

Blogging for Reach, Dan Stolts (Slides PPTX)

Summary An overview of content marketing best practices; how to grow site traffic and marketing reach by creating and marketing blog content.

Felt self-conscious about our slowness to adopt Google and Bing authorship, which match content to a particular author/personality.
Appreciated advice about which page elements are most important for on-site SEO: (1) page/post URL; (2) page/post title. If your site is properly configured with pretty permalinks, having a smart page title will optimize your URL as well. To come up with a page title, think, “What would someone who wanted to find this content search for?”

Stop Making Things Pretty & Start Designing, Michelle Schulp (Slides)

Summary Formally defined design: “Design both inspires and transforms an idea into a blueprint for something that adds value.” Basically attempting to help people understand that design is about solving problems, and not just adding aesthetics.

Was intrigued by but may never use a set of complementary design process tools: (1) grayscreen prototype: “How site’s going to work” without talking about what it’ll look like (function not form); (2) style tiles: Look-and-feel without actual function (form not function); (3) whitescreen prototype: “Fully functional version of the site” but with no CSS.

Well, that’s what we were able to make! What did we miss? Please comment below; we’d love to hear from you.

And as always, thanks so much to Boston WordPress for putting on the Boston WordCamps. It was a huge privilege to attend.

3 Responses


  • Amazing summary of the event & thanks for coming to the SEO session!

  • Achileas Liras says:

    Organizing your personal and team’s every day tasks is kind of a hard job! Tips provided in this article are really interesting and useful! Although I am not a huge Trello fan, I will try to implement some of them in Comidor , the software I currently use