Hi Folks!

I want to say again how grateful I am to all of the advisors who have been helping behind the scenes answer questions and give advice.

In this update I share how Zack, Nick and Brian have all contributed to and influenced the direction of this course in powerful ways.

Zack Tollman – @tollmanz

Zack TollmanWhen I attended A Day of REST, several people referenced Zack’s work with the WP API.  I finally got a chance to catch up to him this week with a list of questions about his experience and thoughts on the real world examples we reference at the end of the course.

He talked about some cool integrations he has worked on like Slack messages live posting to WordPress, building a pre API theme with Backbone, which he blogged about, and how rebuilding an admin UI with JS is boring.

Then we got into the juicy stuff like using WP CLI with the API, posting to WP via voice, working with offline content, thinking on a bigger scale about how WordPress can integrate with and learn from other systems with APIs, and how native WP API calls can actually be quite expensive depending on you do them.  He shared a vision of how apps or middleware could handle bundling or creating custom calls to the WP API to make them more efficient.  This was something I realized while working on ReactPress and was wondering how to best address it in the course, so it was good to hear him talk about it.

Finally, I laid out an issue that has been troubling me.  He rephrased it great, and I’ll summarize: “As a community we’re more at a learning stage [with JS and the API] than we are at a best practice stage.”  He made the suggestion for me to reach out to advisors about pain points they had experienced and discuss these in the course as we get into looking at real world examples.  I like this approach and it’s something I plan to do 🙂

Nick Ciske – @nciske

Not only does Nick have extensive WP and Genesis experience, but he has also worked with API integrations in WordPress, WooCommerce and other systems like FileMaker, which I have had to deal with in the past and would not want to do again.  Nick also has experience with both OAuth 1 and 2 (short summary on the difference).  Most of our conversation revolved around this topic of OAuth.

I had been wondering whether to use OAuth 1 or 2 in the course with our decoupled web app project.  Nick recommended OAuth 1 for a number of reasons: 1) it’s easier to implement in many cases, 2) when you’re talking to your own app it makes sense, 3) we do not need 3rd party apps using our API for authentication, or the other way around, 4) no refresh tokens, 5) it does not require SSL, although I will address how easy this can be to setup and generally recommend SSL either way.

We looked at advisor, Rachel Baker’s, OAuth 1 Server, as well as the WP OAuth Server plugin, which handles OAuth 2.  We will likely use these in the course so feel free to go check them out early 🙂  If we have time to get into Basic Auth we will and if we can’t squeeze OAuth2 into an actual project, the plugin does have good guides and knowledge base.  Big thanks to Nick for helping me work through how we’ll address OAuth in the course, this was a much needed conversation.

Brian Messenlehner – @bmess

The work Brian has done is helping us tremendously in this course. From the BadgesOS plugin we’re using for rewards on the site to his work withReactor and AppPresser, which we will look at as platforms for building native mobile apps using JS and the WP API.  I have wanted to do a course featuring this mobile content since back in my Treehouse days and I’m super excited that we can include in the Master Course.

My most recent chat with Brian started with a high level discussion of how you can use the API as a migration tool.  He also talked about getting to a place where widgets and even templates could be passed around via the API.  There was also an exciting mention of CMB2 and API integration, and I found this interesting thread on the topic you may enjoy.

The biggest take away was a great discussion on how we can use Reactor, AppPresser, Angular, Ionic and Phone Gap in the course as a mobile app stack that leverages JS at it’s core and allows for custom development and drag and drop UIs.  Having this as part of the course is going to open new doors for a lot of folks, and we have Brian in large part to thank.

Also, a shout out to course advisor, Scott Bollinger @scottbolinger, who has done a lot of work building and writing about this stack.

So, Hows’ the Course Coming?

I hope you’re enjoying these insights from our advisors, because their help has been so valuable to me building this course. I’m also guessing you’d like to know more about how the course is coming.

We’re in the scripting and recording phase and I should have a some of the Vanilla JavaScript portion of the course to share with you in the next update.  Finishing the last bits of some of the projects has been put on hold to get recording done, but I did have a few projects professionally code reviewed, which felt good.

I have also been playing around a bit more with LearnDash and the Social Learner Theme, which we are using for the course portion of the site.  This site will live on a separate subdomain from the main course site.  I’ve also pondered whether we would have time to do an app for the course using Reactor, but definitely no promises there 😉

Okay, that’s it from me for now 🙂  I’ll get you some sneak peaks of the course next time.

Thank you again for your support and interest in the course, and until next time, Keep on Learning and Happy WordPressing!

Zac