Editor's note: This is a guest post from Erik Osterman—Founder at Cloud Posse, and creator of this awesome WordPress plugin for Quip.
A few weeks ago, a long-overdue plugin popped up in the WordPress Plugin Directory. It enables authors to embed Quip documents into any WordPress page, or post using a WordPress shortcode. Now you can use Quip as a CMS for WordPress.
The plugin was built with a specific need in mind. Cloud Posse is a DevOps Professional Services company. We help our clients achieve success in the cloud by adopting proven strategies for migrating to Amazon Web Services using Kubernetes, setting up complex CI/CD pipelines, and rolling out automated deployments. On a daily basis we’re producing mounds of content in Quip around DevOps “Best Practices,” standard operating procedures (SOPs), and writing tons of technical documentation for our solutions.
We realized that a lot of this information is the same content we want to share with our customers, or use to demonstrate the quality of our work to our prospects. Since everything we do is open source, we decided our documentation needs to be as well. We really love using Quip as a CMS and didn't want to move our content over to WordPress. But there was a problem: we lacked the means to syndicate that content on our blog.
Being developers at heart, we decided there is only one way to solve the problem. The plugin is the result of this perpetual drive for automation.
Using the Quip API
Our experience developing the WordPress plugin using the Quip API was a cinch. We started by looking at existing samples on the Quip GitHub repo for inspiration. There was even an example for WordPress, but it didn’t quite suit our use case because it was written in Python. Since the Quip API is RESTful, we were able to simply use the
wp_remote_get primitive exposed by WordPress to fetch all the content by passing the bearer authorization token. We used Quip's comprehensive documentation to figure out how we would query for the images.
We set off with a simple set of requirements:
- Must support embedding Quip content in any post or page
- Must render beautiful text markup that we're accustomed to in Quip
- Must include all images from our documents
- Must cache responses using a time-to-live [TTL]
Fortunately, Quip did all the heavy lifting for us. The API returns well-formed HTML and all image attachments. All we had to do was fetch it, cache it, and serve it.
Follow the normal process for your blog to install the plugin. The plugin is also safe for WordPress multisite installations (that’s how we use it).
After activating the plugin, you’ll want to navigate to the “WP Quip” settings page and enter your personal API token. This will enable the plugin to fetch content from your Quip. Rest assured, only the content you explicitly post will made publically available. Also, since it’s WordPress, you can use all the standard content controls at your disposal.
Using the plugin is easy. Anywhere in WordPress that accepts a shortcode, simply enter the
[quip] shortcode with the
id of the article. You can get the “
id” simply by looking at the URL and selecting the last part (e.g.
For example, here's a shortcode that will render our “Getting Started With Quip” guide.
Here's an example of writing a new post that embeds a Quip document titled GitHub Repository "Best Practices" and makes it available on our blog.
Here's an example of the simple settings page that controls the default caching behavior and keeps the API access token.
Download the plugin:
- WordPress Plugin Directory: https://wordpress.org/plugins/wp-quip/
- GitHub: https://github.com/cloudposse/wp-quip
Something missing? Let us know at email@example.com
Erik Osterman is a technical evangelist and insanely passionate DevOps guru with over 12 years of experience architecting systems for AWS. After leading major cloud initiatives at CBS Interactive as the Director of Cloud Architecture, he founded Cloud Posse, a DevOps Professional Services company whose sole purpose is to help high-growth Startups and Fortune 500 Companies adopt and leverage cloud-based solutions to gain the upper hand and maximize their return on investment. Erik can be reached at firstname.lastname@example.org.