SlideShare a Scribd company logo
@Josh412
Our Hybrid Future:
WordPress As Part Of
The Stack
Josh Pollock | CalderaLabs.org
@Josh412
CalderaLabs.org
Hi I'm Josh
Lead Developer: Caldera Labs
Caldera Forms and Caldera Forms Pro
Caldera Learn
2 books about WordPress development
Core contributor to WordPress
Member of The WPCrowd
@Josh412
CalderaLabs.org
Hi I'm Josh
Download Slides:
CalderaForms.com/wcmtl2017
@Josh412
CalderaLabs.org
What We’re
Talking About
Today
@Josh412
“
CalderaLabs.org
WordPress Is For More
Than Blogs.
- WordPress Community for
the last ~5 years
@Josh412
“
CalderaLabs.org
You can use WordPress to build apps
- Me for the last ~3 years
@Josh412
“
CalderaLabs.org
This REST API is shiny!
- Many, many people.
@Josh412
“
CalderaLabs.org
You can use WordPress to build
apps because our REST API is
fully-featured and highly
extensible.
- A lot of WordPress people
@Josh412
CalderaLabs.org
WordPress As A Platform
Image stolen from Ryan McCue’s LoopConf Talk - You should watch It on YouTube
@Josh412
CalderaLabs.org
WordPress All
The Things??
@Josh412
CalderaLabs.org
@Josh412
CalderaLabs.org
Monolithic
vs
Microservice
Architecture
@Josh412
“
CalderaLabs.org
A monolithic application built as a single unit. The
server-side application will handle HTTP requests,
execute domain logic, retrieve and update data from
the database, and select and populate HTML views to
be sent to the browser.
- Martin Fowler
@Josh412
“
CalderaLabs.org
This server-side application is a
monolith - a single logical executable.
- Martin Fowler
@Josh412
“
CalderaLabs.org
The microservice architectural style is an approach
to developing a single application as a suite of small
services, each running in its own process and
communicating with lightweight mechanisms, often
an HTTP resource API.
- Martin Fowler
@Josh412
“
CalderaLabs.org
[in microservice architecture] there is a bare
minimum of centralized management of these
services, which may be written in different
programming languages and use different data
storage technologies.
- Martin Fowler
@Josh412
One server for:
PHP
Database (MySQL/MariaDB/Percona)
Webserver (nGinx/Apache)
Object Cache (Memcached/ Redis)
Email and other tasks not suited to WordPress
WordPress Is Monolithic By Default
@Josh412
We Are Already Moving To Services
Transactional Email Services
Task Runners For WP-Cron
Separate Database Servers(s)
Media Library on s3
CDNs
Decoupled front-ends via REST API
Containerized Hosting Architecture
@Josh412
CalderaLabs.org
Microservices
Reduce The Scope
Of A Compromise
@Josh412
CalderaLabs.org
Microservices
Encapsulate
Functionality
@Josh412
CalderaLabs.org
Case Study:
Caldera Forms Pro
@Josh412
A Web App For Managing Form Plugin Messages
@Josh412
Hybrid Free Plugin + SaaS
Client
Plugin
Free Plugin Service
@Josh412
Free Plugin Is Standalone
Free Plugin
@Josh412
Hybrid Business Model
Plugin works on its own
Plugin works better with app
Users control their own data
@Josh412
Business Needs
Case Study:
Caldera Forms Pro
Solve the WordPress contact form email
problem.
WordPress shouldn’t be used for emails.
Improve support
Stop asking questions about errors
Control our platform
Deliver all in one solutions.
@Josh412
Services Based
Solution
@Josh412
Technologies Used
WordPress
Laravel
Lumen
VueJS
Vuetify
MariaDB
Redis
Amazon s3
Amazon EC2
Lindode
SendGrid
etc...
@Josh412
CalderaLabs.org
Choosing Tools
Granularly
@Josh412
CalderaLabs.org
One Part At A
Time
@Josh412
CalderaLabs.org
Composer
FTW
@Josh412
CalderaLabs.org
Communicate
Via APIs
@Josh412
Architecture
Overview
@Josh412
TACO
WordPress plugin for our site
Client for app’s admin API
Open-source (for educational purposes)
gitlab.com/caldera-labs/taco
@Josh412
Easy Digital Downloads
Already in use on our site
One account
Handles recurring billing really well
Has good marketing integration
@Josh412
APirate
Plugin to limit access to WordPress REST API
routes
Optional eCommerce via Easy Digital
Downloads
Could work with other eCommerce platforms
Pronounced “API Rate” or “A Pirate”
Gitlab.com/caldera-lab/apirtate
@Josh412
Original Plan: WordPress As Proxy
@Josh412
Transaction
(new
subscription
or update)
Find Account
CF Pro
Account
Exists?
Find by
wp_id
Create Key
Create
Account
Update Key
Update
Account
Store App Account
ID as wp_post_meta
CF Pro App
WordPress
(Taco)
WordPress
(EDD/Core/Etc)
APirate
Color Key
NO Yes
Plan One: eCommerce
@Josh412
CF Pro App
WordPress
(Taco)
WordPress
(EDD/Core/Etc)
APirate
Color Key
Plan One: App Login
Login
Redirect to
WordPress
wp-login
Has
Account?
Product
Page
Get CF Pro
Account ID
Create
1-time
token
Redirect to
app
auth-return
Verify 1-time token
Set Keys In Cookies
NO
Yes
@Josh412
CF Pro App
WordPress
(Taco)
WordPress
(EDD/Core/Etc)
APirate
Color Key
Plan One: API Request To App
Message
Request
(wp-json)
Allowed?
Return Error
Return
Fulfill
NO Yes
@Josh412
Shortcomings Of Plan One
All requests go through WordPress
Double-blocking POST requests
Scaling challenges
No isolation
Crash one site, crash them all
@Josh412
Plan Two: Towards Microservices
WordPress
eCommerce
App Login
Marketing Automation
Docs
Main App
API Key Authentication
UI
SendGrid Proxy
PDF Generation
Resource Management (via s3)
@Josh412
CalderaLabs.org
Overview
CF Pro App
WordPress
(Taco)
WordPress
(EDD/Core/Etc)
Client Plugin
Color
Key
Logging App
Account
Management
Front-end
Client
Plugin
API
Logging
App
Taco
@Josh412
CalderaLabs.org
Overview
CF Pro App
WordPress
(Taco)
WordPress
(EDD/Core/Etc)
Client Plugin
Color Key
Logging App
Our
WordPress
VueJS
User’s
WordPress
Laravel
Lumen
@Josh412
Main App: Laravel
Laravel Blade to serve one view for SPA
Some additional ugly screens for admin
API for:
Key auth
Account management
Message handling (SendGrid proxy)
Taco
Assets to s3
@Josh412
App Front-end : VueJS
Single page web app
Webpack
Vuetify
Vue Router
Uses API Keys To Authenticate vs App
Cookies used to store key/token
@Josh412
Logging App
Connects to client plugin
Key auth via main app
Saves logs from client via Monolog and s3
No database
Unless you count Redis...
@Josh412
Client Plugin
Connects to Caldera Forms via Plugins API
Connects to main app via key auth
Connects to log app via key auth
Admin page uses VueJS and WordPress REST
API
@Josh412
CalderaLabs.org
App: eCommerce
CF Pro App
WordPress
(Taco)
WordPress
(EDD/Core/Etc)
Client Plugin
Color Key
Logging App
Transaction (new subscription or
update)
Find Account
CF Pro
Account Exists?
Find by wp_id
Create Account Update Account
Store App Account ID as wp_post_meta
@Josh412
CalderaLabs.org
App: Login
CF Pro App
WordPress
(Taco)
WordPress
(EDD/Core/Etc)
Client Plugin
Color Key
Logging App
Login wp-json
Get CF Pro
Account ID
Load App
JWT Auth
Plugin
@Josh412
CalderaLabs.org
Client: Form Submission
CF Pro App
WordPress
(Taco)
WordPress
(EDD/Core/Etc)
Client Plugin
Color Key
Logging App
New Submission
Allowed?
Generate
Message
To SendGrid
@Josh412
CalderaLabs.org
Client: Errors
CF Pro App
WordPress
(Taco)
WordPress
(EDD/Core/Etc)
Client Plugin
Color Key
Logging App
Error
Allowed?
Respond
Write
@Josh412
CalderaLabs.org
Client: wp-admin
CF Pro App
WordPress
(Taco)
WordPress
(EDD/Core/Etc)
Client Plugin
Color Key
Logging App
Client Admin Allowed?
Details
NO
YES
@Josh412
CalderaLabs.org
Other Ways To
Hybridize
@Josh412
CalderaLabs.org
Jetpack
Stand-alone plugin
Services provided by
WordPress.com
@Josh412
CalderaLabs.org
Multiple
WordPresses
Solve scaling problems by using
multiple sites connected via the
REST API
@Josh412
CalderaLabs.org
WordPress
As A Proxy
WordPress as proxy for other
APIs and services
@Josh412
CalderaLabs.org
Decoupled
eCommerce
WordPress-powered site
eCommerce via 3rd Party
@Josh412
CalderaLabs.org
SaaS Apps
WordPress eCommerce
Decoupled UI
Other Services Via API
@Josh412
CalderaLabs.org
Recurring
ProcessesMicroservices for
background tasks
@Josh412
CalderaLabs.org
Questions?
Slides:
CalderaForms.com/wcmtl2017
Wapuus:
wapu.us
@Josh412
CalderaLabs.org
Josh Pollock
JoshPress.net
CalderaForms.com
CalderaLabs.org
CalderaLearn.com
@Josh412

More Related Content

PDF
Our Hybrid Future: WordPress As Part of the Stack #WCNYC
PPTX
Publishing strategies for API documentation
PDF
The liferay case: lessons learned evolving from RPC to Hypermedia REST APIs
PDF
Crafting ColdFusion Applications like an Architect
PPSX
ECS19 - Damir Dobric - Designing and Operating modern applications with Micro...
PDF
Mobile Apps Using AngularJS - Adam Klein @ AngularJS IL
PDF
Hooking SharePoint APIs with Android
PDF
London's calling 2020 Documentor Plug-In
Our Hybrid Future: WordPress As Part of the Stack #WCNYC
Publishing strategies for API documentation
The liferay case: lessons learned evolving from RPC to Hypermedia REST APIs
Crafting ColdFusion Applications like an Architect
ECS19 - Damir Dobric - Designing and Operating modern applications with Micro...
Mobile Apps Using AngularJS - Adam Klein @ AngularJS IL
Hooking SharePoint APIs with Android
London's calling 2020 Documentor Plug-In

What's hot (20)

PPT
Share point apps the good, the bad, and the pot of gold at the end of the r...
PPTX
Develop iOS and Android apps with SharePoint/Office 365
PPTX
When dispatcher caching is not enough by Jakub Wądołowski
PDF
API Design Methodology - Mike Amundsen, Director of API Architecture, API Aca...
PDF
ECS19 - Dragan Panjkov - Connecting Enterprise Software With Flow
PDF
Moving into API documentation writing
PDF
REST full API Design
PPTX
An introduction to Microsoft Graph for developers
PDF
Engineering the New LinkedIn Profile
PDF
What is App Engine? O
PDF
Ultimate Guide to 30+ API Documentation Solutions
PPTX
SharePoint 2013 REST and CSOM
PPTX
ECS 19 - Chris O'Brien - The hit list - Office 365 dev techniques you should ...
PPTX
Developer’s Independence Day: Introducing the SharePoint App Model
PPTX
API Description Languages: Which is the Right One for Me?
PPTX
CSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
PPTX
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
PDF
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...
PDF
ECS19 Elio Struyf - Setting Up Your SPFx CI/CD pipelines on Azure DevOps
PDF
O365Con18 - Reach for the Cloud Build Solutions with the Power of Microsoft G...
Share point apps the good, the bad, and the pot of gold at the end of the r...
Develop iOS and Android apps with SharePoint/Office 365
When dispatcher caching is not enough by Jakub Wądołowski
API Design Methodology - Mike Amundsen, Director of API Architecture, API Aca...
ECS19 - Dragan Panjkov - Connecting Enterprise Software With Flow
Moving into API documentation writing
REST full API Design
An introduction to Microsoft Graph for developers
Engineering the New LinkedIn Profile
What is App Engine? O
Ultimate Guide to 30+ API Documentation Solutions
SharePoint 2013 REST and CSOM
ECS 19 - Chris O'Brien - The hit list - Office 365 dev techniques you should ...
Developer’s Independence Day: Introducing the SharePoint App Model
API Description Languages: Which is the Right One for Me?
CSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...
ECS19 Elio Struyf - Setting Up Your SPFx CI/CD pipelines on Azure DevOps
O365Con18 - Reach for the Cloud Build Solutions with the Power of Microsoft G...
Ad

Similar to Our Hybrid Future: WordPress As Part of the Stack (20)

PPTX
PHP and Zend Framework on Windows
PPT
Case Study: University of California, Berkeley and San Francisco
PDF
Andy Malone - The new office 365 for it pro's
PPTX
Docker and containers - For Boston Docker Meetup Workshop in March 2015
PPTX
Docker Training - June 2015
PDF
{Re}designing a Developer Portal
PDF
Docker and Containers overview - Docker Workshop
PDF
Better and Faster: A Journey Toward Clean Code and Enjoyment
PDF
Ibm_interconnect_restapi_workshop
PDF
Docker and serverless Randstad Jan 2019: OpenFaaS Serverless: when functions ...
PPTX
WordPress and Zend Framework Integration with Vulnero
PPTX
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
PPTX
Deploying Web Apps with PaaS and Docker Tools
PPTX
Presto for the Enterprise @ Hadoop Meetup
PDF
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
DOC
Resume
PDF
WordCamp Greenville 2018 - Beware the Dark Side, or an Intro to Development
PPT
Viridians on Rails
PDF
WORDPRESS_REST_API_WORDPRESS_REST_API.pdf
PPTX
Live Session1 lightning web component
PHP and Zend Framework on Windows
Case Study: University of California, Berkeley and San Francisco
Andy Malone - The new office 365 for it pro's
Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker Training - June 2015
{Re}designing a Developer Portal
Docker and Containers overview - Docker Workshop
Better and Faster: A Journey Toward Clean Code and Enjoyment
Ibm_interconnect_restapi_workshop
Docker and serverless Randstad Jan 2019: OpenFaaS Serverless: when functions ...
WordPress and Zend Framework Integration with Vulnero
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
Deploying Web Apps with PaaS and Docker Tools
Presto for the Enterprise @ Hadoop Meetup
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
Resume
WordCamp Greenville 2018 - Beware the Dark Side, or an Intro to Development
Viridians on Rails
WORDPRESS_REST_API_WORDPRESS_REST_API.pdf
Live Session1 lightning web component
Ad

More from Caldera Labs (19)

PDF
Slightly Advanced Topics in Gutenberg Development
PDF
Financial Forecasting For WordPress Businesses
PDF
Five Attitudes Stopping You From Building Accessible Wordpress Websites
PDF
Introduction to VueJS & The WordPress REST API
PDF
Introduction to plugin development
PDF
Connecting Content Silos: One CMS, Many Sites With The WordPress REST API
PDF
It all starts with a story
PDF
Single Page Web Apps As WordPress Admin Interfaces Using AngularJS & The Word...
PDF
Introduction to AngularJS For WordPress Developers
PDF
A/B Testing FTW
PDF
Five events in the life of every WordPress request you should know
PDF
Extending the WordPress REST API - Josh Pollock
PDF
WPSessions Composer for WordPress Plugin Development
PDF
Introduction to AJAX In WordPress
PDF
Josh Pollock #wcatl using composer to increase your word press development po...
PDF
Content Marketing With WordPress -- Tallahassee WordPress Meetup
PDF
Writing About WordPress: Helping Yourself, by Helping Others -- WordCamp Orl...
PDF
WordPress Tallahassee Meetup: Turning WordPress Sites Into Web & Mobile Apps
PDF
Using the new WordPress REST API
Slightly Advanced Topics in Gutenberg Development
Financial Forecasting For WordPress Businesses
Five Attitudes Stopping You From Building Accessible Wordpress Websites
Introduction to VueJS & The WordPress REST API
Introduction to plugin development
Connecting Content Silos: One CMS, Many Sites With The WordPress REST API
It all starts with a story
Single Page Web Apps As WordPress Admin Interfaces Using AngularJS & The Word...
Introduction to AngularJS For WordPress Developers
A/B Testing FTW
Five events in the life of every WordPress request you should know
Extending the WordPress REST API - Josh Pollock
WPSessions Composer for WordPress Plugin Development
Introduction to AJAX In WordPress
Josh Pollock #wcatl using composer to increase your word press development po...
Content Marketing With WordPress -- Tallahassee WordPress Meetup
Writing About WordPress: Helping Yourself, by Helping Others -- WordCamp Orl...
WordPress Tallahassee Meetup: Turning WordPress Sites Into Web & Mobile Apps
Using the new WordPress REST API

Recently uploaded (20)

PPTX
CHE NAA, , b,mn,mblblblbljb jb jlb ,j , ,C PPT.pptx
PPTX
international classification of diseases ICD-10 review PPT.pptx
DOCX
Unit-3 cyber security network security of internet system
PDF
Paper PDF World Game (s) Great Redesign.pdf
PPTX
Module 1 - Cyber Law and Ethics 101.pptx
PDF
Cloud-Scale Log Monitoring _ Datadog.pdf
PPTX
introduction about ICD -10 & ICD-11 ppt.pptx
PPTX
durere- in cancer tu ttresjjnklj gfrrjnrs mhugyfrd
PPTX
Funds Management Learning Material for Beg
PPTX
Introduction about ICD -10 and ICD11 on 5.8.25.pptx
PDF
Automated vs Manual WooCommerce to Shopify Migration_ Pros & Cons.pdf
PDF
💰 𝐔𝐊𝐓𝐈 𝐊𝐄𝐌𝐄𝐍𝐀𝐍𝐆𝐀𝐍 𝐊𝐈𝐏𝐄𝐑𝟒𝐃 𝐇𝐀𝐑𝐈 𝐈𝐍𝐈 𝟐𝟎𝟐𝟓 💰
PDF
APNIC Update, presented at PHNOG 2025 by Shane Hermoso
PPTX
Digital Literacy And Online Safety on internet
PPTX
Introduction to Information and Communication Technology
PDF
“Google Algorithm Updates in 2025 Guide”
PDF
RPKI Status Update, presented by Makito Lay at IDNOG 10
PPTX
Internet___Basics___Styled_ presentation
PPTX
Introuction about ICD -10 and ICD-11 PPT.pptx
PPTX
Job_Card_System_Styled_lorem_ipsum_.pptx
CHE NAA, , b,mn,mblblblbljb jb jlb ,j , ,C PPT.pptx
international classification of diseases ICD-10 review PPT.pptx
Unit-3 cyber security network security of internet system
Paper PDF World Game (s) Great Redesign.pdf
Module 1 - Cyber Law and Ethics 101.pptx
Cloud-Scale Log Monitoring _ Datadog.pdf
introduction about ICD -10 & ICD-11 ppt.pptx
durere- in cancer tu ttresjjnklj gfrrjnrs mhugyfrd
Funds Management Learning Material for Beg
Introduction about ICD -10 and ICD11 on 5.8.25.pptx
Automated vs Manual WooCommerce to Shopify Migration_ Pros & Cons.pdf
💰 𝐔𝐊𝐓𝐈 𝐊𝐄𝐌𝐄𝐍𝐀𝐍𝐆𝐀𝐍 𝐊𝐈𝐏𝐄𝐑𝟒𝐃 𝐇𝐀𝐑𝐈 𝐈𝐍𝐈 𝟐𝟎𝟐𝟓 💰
APNIC Update, presented at PHNOG 2025 by Shane Hermoso
Digital Literacy And Online Safety on internet
Introduction to Information and Communication Technology
“Google Algorithm Updates in 2025 Guide”
RPKI Status Update, presented by Makito Lay at IDNOG 10
Internet___Basics___Styled_ presentation
Introuction about ICD -10 and ICD-11 PPT.pptx
Job_Card_System_Styled_lorem_ipsum_.pptx

Our Hybrid Future: WordPress As Part of the Stack