POST /blog/a-day-of-rest/ HTTP/1.2

In the last week of January three of our team, Ashley, Gilbert and myself travelled to London for A Day of REST, the first ever conference focussed on the WordPress REST API organized by Human Made.

We had all previously met in Miami last year so it was good to meet up again, a little closer to home, in the UK. Neither one of us have had direct contact with the REST API project (although Jeff has been writing a series of posts using it), so we thought it would be great to learn more about it.

What Why is the REST API?

After the opening remarks one of the lead developers of the project, Ryan McCue took to the stage to give some detailed background on the project, from its inception, to the other APIs inside WordPress, examples of APIs in the wild, and some of the technical challenges of the project.

It was good to hear the plans for unifying the WordPress.com (and JetPack) REST API with the project so there is a consistent approach across the WordPress platform.

https://speakerdeck.com/rmccue/a-day-of-rest-2016

Building Blocks

Joe Hoyle was next up, running through how a sample application could look before and after adding the REST API as a module. Along with some brilliant metaphors illustrated with Age of Empires screenshots, Joe gave some insight into how the API would allow a more decoupled architecture to drive a JavaScript centric product.

Joe is a contributor to the REST API project and a co-founder at Human Made, who are a driving force behind the project in a number of ways, including using it for client work and side projects. The example he used was nomadbase.io, a real-time map of digital nomads around the world built by himself and Noel Tock (also from Human Made).

https://hmn.md/uploads/sites/28/2016/01/Joe-Hoyle-ADoR.pdf

A More RESTful CLI

The fastest interface for WordPress

Daniel Bachhuber, the lead of the WP-CLI project did a great job describing the quite abstract idea of a RESTful WP-CLI. WP-CLI is a must have developer tool for managing WordPress on the command line and adding integration with the API opens the door for connections to external sites using the CLI among other things.

Daniel talked about connecting to remote sites and the challenges that brings around authentication. He also touched on using aliases to address remote connections, for example connecting to http://wired.com would be:

wp @wired post

Daniel also briefly mentioned a couple of planned features that more than piqued our interest:

wp diff @wired @local post
wp pull @prod @dev user

At first glance there is some definite synergy with a couple of our products, and we later connected with Daniel at the after party to discuss some of the problems we are all trying to solve, as well as the technical pitfalls involved. Needless to say the challenges will keep both Daniel and our team busy for a while!

http://blog.handbuilt.co/2016/01/28/feelingrestful-a-more-restful-wp-cli/

JavaScript Generated PHP?

Jack Lennox from Automattic gave a talk on using JavaScript in theme development, and how that benefits from the REST API in WordPress. He discussed single page applications and their challenges: SEO, separation of client and server code, the browser’s “Back” button, and speed. He attempted to address these in a WordPress theme context.

The journey to a JavaScript powered theme took a strange turn when Jack suggested that to increase speed of first load, the JS based build process could actually generate PHP files! This certainly took people by surprise and seemed almost a step too far in trying to achieve some sort of JavaScript Nirvana. K.Adam White commented on the idea at the start of his talk, that if there was a language that could get itself into the mess of being generated, it would be PHP.

https://speakerdeck.com/jacklenox/there-and-back-again-a-developers-tale

JavaScript All the Things

We then had talks from another Automattician Nikolay Bachiyski and K.Adam White. Nikolay took us through Calypso, the new JS client for WordPress.com (yes, and JetPack powered sites), and the technical aspects of building a similar application. I know Gilbert found this interesting to see how they had implemented React powered by the API.

K.Adam, a web engineer at bocoup talked about using WordPress as a small part of a CMS application, describing a complex setup which used WordPress alongside Express Servers, load balancers, and a Postgres and Redis database. To illustrate his point of WordPress as a component, he demonstrated a Ghost theme being driven by data from a WP backend. Somewhere John O’Nolan was laughing and crying at the same time.

https://speakerdeck.com/nb/building-calypso-like-applications

http://kadamwhite.github.io/talks/2016/wp-node-feelingrestful/

In the Wild

To close off the day Kathleen Vignos from Wired.com and Scott Taylor from The New York Times talked about how they use the REST API in the wild. Kathleen used a process flow for deciding whether to use the REST API in a project, and took us through some real use cases of the API in their products. A great example was using Slack to communicate with WordPress to facilitate live blogging.

Scott aka @wonderboymusic, the release lead for WordPress 4.4 (thanks Scott!), took us through the large WordPress powered properties of the NYT, including their ‘live platforms’ and how the REST API fits in with their stack.

http://www.slideshare.net/kvignos/wired-and-the-wp-rest-api

http://www.slideshare.net/ScottTaylor1/a-day-of-rest

Takeaways

The REST API is certainly a big important step for WordPress that undoubtedly will make many things easier and new things possible. It will further decouple WordPress as a cog in an application wheel and foster Matt Mullenweg’s push to a JavaScript interface future for WordPress and the web itself.

However, with only the server component of the API project merged into core (4.4), the project is still in its early days, and this was reflected in the conference. The conference was billed as developer focussed but there was quite a high level nature to some of the talks. Even the last two talks from Wired and The New York Times, where the REST API is integrated into production projects, felt removed from the details and were more of a showcase for its uses.

I personally felt that, apart from the Hack Day (which we didn’t attend), the conference could have benefitted from perhaps some technical workshops that could have been run alongside the main speaker track. Having only one track has pros and cons. The REST API is a niche developer topic which doesn’t lend itself well to a full day of talks. There was some evident crossover and repetition between speakers, so one track was absolutely necessary. However, this meant that the hallway networking track didn’t really exist, and the opportunity to take a break and recharge wasn’t as easy.

The conference was extremely well organized and it was a refreshing change to attend a non-WordCamp event for WordPress. Siobhan McKeown and her helpers did a fantastic job putting the event together. Human Made are definitely heavily invested in the project and throwing their weight behind it to drive it forward.

Of course, it works both ways. The REST API improves the ease of development and quality of large, enterprise scale client projects, the kind they work on. And with an ever increasing team and global presence in the WordPress market, exposure gained from the conference is a win for Human Made. Don’t get me wrong, this is the voice of my inner cynic surfacing, and all in all I think it was a great conference with significant benefit to the WordPress community.

Did you go to A Day of REST? What did you think? Do you think there is room for more development focussed WordPress conferences?

Photo Credit: Post Status

About the Author

Iain Poulson

Iain is a WordPress and PHP developer from England. He builds free and premium plugins, as well as occasionally blogging about WordPress. Moonlights as a PhpStorm evangelist.

  • Hey Iain – a couple of us went to A Day of REST and it was a pretty packed day (the 8am start was a shock to my system). For us, having had some experience of working with the API, with both custom end-points and the core-candidate-plugin with varying degrees of success the most important takeaway was that that experience is entirely normal for the current state of the API. A bit like group therapy.

    I feel like how in flux the whole API is contributed to the lack of deep-dive in the day which overall I really enjoyed.

    • Hey Marc, I definitely agree with that. It’s too early for technical talks – but then perhaps too early for an entire conference?

      8am was a tough start time for sure!

  • Borek Bernard

    Was nice to meet you there guys!