SlideShare a Scribd company logo
PoP - “Platform
of Platforms”
Leonardo Losoviz
https://getpop.org
URLs
PoP
https://getpop.org
PoP Demo
https://demo.getpop.org
GitHub
https://github.com/leoloso/PoP
What is PoP?
PoP creates Single-Page Application websites, by combining
Wordpress and Handlebars into an MVC architecture framework:
Wordpress is the model/back-end
Handlebars templates are the view/front-end
the PoP engine is the controller
How does it work?
Front-end Back-end
How does it work?
1 PoP intercepts the user request in the front-end and delivers it to the
webserver using AJAX.
Front-end Back-end
Request: AJAX
Request
How does it work?
2 Wordpress processes the request, and provides the results to the PoP
controller.
Front-end Back-end
Request: AJAX
Data
Request
How does it work?
3 PoP generates a response in JSON, and feeds this JSON code back to the
front-end
Front-end Back-end
Request: AJAX
Response: JSON
Data
Request
How does it work?
4 Handlebars templates transform the JSON code into HTML, and passes
it back to PoP
Front-end Back-end
Request: AJAX
Response: JSON
Data
Request
HTML
How does it work?
5 PoP appends the HTML into the DOM and executes user-defined
javascript functions on the new elements.
Front-end Back-end
Request: AJAX
Response: JSON
Data
Request
HTMLResponse
Key design
principles
#1: API
PoP provides the WordPress website of its own API:
Available via HTTP
Simply by adding to any URL: output=json
#2: Decentralized
The response is a uniform JSON code
All PoP websites can communicate among themselves
Fetch/process data in real time.
POST requests
User-generated content is stored on the source website.
What can we do
with PoP?
Social network
Features taken from several social networks:
Twitter/Facebook/Medium/Reddit
Demo in https://demo.getpop.org
Decentralized social
network
Demo between:
https://getpop.org
https://demo.getpop.org
How can it be
used?
Niche/decentralized social network => Twitter/Facebook/
Medium/Reddit
(with WooCommerce) Decentralized market-place => Amazon
Content aggregator => Digg
Server back-end for mobile apps
Microservices
Potential uses
Characteristics
Single-Page Application
loose: developer can select:
what pages are preloaded
which ones are retrieved from the server
SPA Drawback
The first load has to download the framework and the application code.
Slower first page load compared to server-based applications.
Application state
Read operations: state kept in front-end
Create/Update/Delete operations: handled in the server
no dual state, no state synchronization needed
(Non)logged-in user state
Rich experience for both logged-in and non logged-in users
Coherent among stateful/less pages
Synchronized among tabs
Program execution flow
Model and Controller (application logic, program execution flow) in
back-end
Different to javascript frameworks (eg: AngularJS)
Comparison with
WP REST API
Similarities
Can export any piece of data:
/posts
/events
/users
/tags
Differences
Not RESTful (at least not currently, but it can be done)
Links keep the same URL as in WordPress
Search engine optimization friendly
Documentation-less API
The public API is automatically generated
Developers can focus on making the website
Template
hierarchy
Templates
topLevel,
pageSections,
blocks/blockGroups
modules
Hierarchy
Top-down hierarchy:
1 topLevel contains N pageSections
1 pageSection contains N blocks/blockGroups
1 blockGroup contains N blocks/blockGroups
1 block contains N modules
1 module contains N modules (ad infinitum)
topLevel
= WordPress Hierarchy
Home/Single/Page/Archive/etc
topLevel
pageSection
Is a physical/functional section on the website
pageSections
block
Is an independent component
Keeps its own state
Can be added to different pageSections, and customized for each
blocks
blockGroup
a special type of block
collects/wraps other blocks
synchronizes state among them
blockGroups
Module
Either
An atomic/reusable functionality
A composition of modules
modules
Modularity
Atomic/reusable module
A module is composed of:
PHP files
.tmpl Handlebars templates
.js files (jQuery)
Composable module
Modules can build upon each other
Separation of Concerns
Collaboration among developers
JSON structure
Clean JSON structure
Database => unique per topLevel
Dataset => unique per block
State variables => unique per block
Configuration => unique per pageSection, block and module
Database
Keeps relationships among objects (not a flat, single-level structure)
Cumulative
Allows to not fetch already-loaded data
Front-end
features
Targets
Any page can be opened on any pageSection
Simply specify attribute “target” in the link, pointing to the pageSection
Formats
Data can be visualized on multiple, customizable formats
Lists
Grids
Maps
Charts
Etc
Presentation
Multiple presentation styles
Minimum extra code can lead to provide different functions
Print
Embed
Tabs
Many pages can be opened simultaneously
Pages remain accessible until closed
Background (pre)loading
Pre-loaded pages, user state, client-server synchronization
Initial views
User logged-in status
Page-related user state
User notifications
Non-cacheable data (eg: posts' comment count)
Interceptors
Switches tab to an already-opened page
Renders a view instantly
Allows deep-linking of javascript functions, using an actual, reachable URL
Let’s see the
code!
Handlebars Templates
PoP - “Platform of Platforms”: Framework for building Single-Page Application WordPress websites, decentralized crowd-sourced platforms, and social networks
PoP - “Platform of Platforms”: Framework for building Single-Page Application WordPress websites, decentralized crowd-sourced platforms, and social networks
Inner modules
PoP - “Platform of Platforms”: Framework for building Single-Page Application WordPress websites, decentralized crowd-sourced platforms, and social networks
PoP - “Platform of Platforms”: Framework for building Single-Page Application WordPress websites, decentralized crowd-sourced platforms, and social networks
Initializing attributes
PoP - “Platform of Platforms”: Framework for building Single-Page Application WordPress websites, decentralized crowd-sourced platforms, and social networks
Configuration
PoP - “Platform of Platforms”: Framework for building Single-Page Application WordPress websites, decentralized crowd-sourced platforms, and social networks
PoP - “Platform of Platforms”: Framework for building Single-Page Application WordPress websites, decentralized crowd-sourced platforms, and social networks
Executing Javascript
PoP - “Platform of Platforms”: Framework for building Single-Page Application WordPress websites, decentralized crowd-sourced platforms, and social networks
PoP - “Platform of Platforms”: Framework for building Single-Page Application WordPress websites, decentralized crowd-sourced platforms, and social networks
PoP - “Platform of Platforms”: Framework for building Single-Page Application WordPress websites, decentralized crowd-sourced platforms, and social networks
PoP - “Platform of Platforms”: Framework for building Single-Page Application WordPress websites, decentralized crowd-sourced platforms, and social networks
Loading data
PoP - “Platform of Platforms”: Framework for building Single-Page Application WordPress websites, decentralized crowd-sourced platforms, and social networks
PoP - “Platform of Platforms”: Framework for building Single-Page Application WordPress websites, decentralized crowd-sourced platforms, and social networks
Loading external data
PoP - “Platform of Platforms”: Framework for building Single-Page Application WordPress websites, decentralized crowd-sourced platforms, and social networks
PoP - “Platform of Platforms”: Framework for building Single-Page Application WordPress websites, decentralized crowd-sourced platforms, and social networks
Input/Output variables
PoP - “Platform of Platforms”: Framework for building Single-Page Application WordPress websites, decentralized crowd-sourced platforms, and social networks
PoP - “Platform of Platforms”: Framework for building Single-Page Application WordPress websites, decentralized crowd-sourced platforms, and social networks
Actions
PoP - “Platform of Platforms”: Framework for building Single-Page Application WordPress websites, decentralized crowd-sourced platforms, and social networks
PoP - “Platform of Platforms”: Framework for building Single-Page Application WordPress websites, decentralized crowd-sourced platforms, and social networks
Data fields
PoP - “Platform of Platforms”: Framework for building Single-Page Application WordPress websites, decentralized crowd-sourced platforms, and social networks
PoP - “Platform of Platforms”: Framework for building Single-Page Application WordPress websites, decentralized crowd-sourced platforms, and social networks
Changing object domain
PoP - “Platform of Platforms”: Framework for building Single-Page Application WordPress websites, decentralized crowd-sourced platforms, and social networks
PoP - “Platform of Platforms”: Framework for building Single-Page Application WordPress websites, decentralized crowd-sourced platforms, and social networks
PoP - “Platform of Platforms”: Framework for building Single-Page Application WordPress websites, decentralized crowd-sourced platforms, and social networks
Thanks!
Questions?
Leonardo Losoviz
leo@getpop.org
https://getpop.org
https://github.com/leoloso/PoP

More Related Content

PPTX
From a monolith to microservices + REST: The evolution of LinkedIn's architec...
PDF
Composable and streamable Play apps
PDF
Clean architectures with fast api pycones
PPTX
OData Services
PDF
Sap workflow cookbook_interview_questions_n_answers
PDF
WebLogic 12c & WebLogic Mgmt Pack
PDF
ORM: Object-relational mapping
PDF
Unify Stream and Batch Processing using Dataflow, a Portable Programmable Mod...
From a monolith to microservices + REST: The evolution of LinkedIn's architec...
Composable and streamable Play apps
Clean architectures with fast api pycones
OData Services
Sap workflow cookbook_interview_questions_n_answers
WebLogic 12c & WebLogic Mgmt Pack
ORM: Object-relational mapping
Unify Stream and Batch Processing using Dataflow, a Portable Programmable Mod...

What's hot (20)

PPTX
SpringBoot with MyBatis, Flyway, QueryDSL
PPTX
Azure Data Factory Data Flow
PPTX
Modernize & Automate Analytics Data Pipelines
PPTX
Oracle application express ppt
PDF
Introduction to Spring WebFlux #jsug #sf_a1
PPTX
Oracle Forms to APEX conversion tool
PDF
The microservice architecture: what, why, when and how?
PDF
Introduction to rest.li
PPTX
Getting started with SAP PI/PO an overview presentation
PDF
Spring boot introduction
PPTX
Reactive programming intro
PDF
Microservices with Java, Spring Boot and Spring Cloud
PPTX
Oracle REST Data Services
PDF
Introduction to Azure Data Lake
PPTX
Apache Flink @ NYC Flink Meetup
PDF
Building a Microservices-based ERP System
PDF
Changing the game with cloud dw
PPTX
All of the Performance Tuning Features in Oracle SQL Developer
PDF
Building large scale transactional data lake using apache hudi
PDF
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
SpringBoot with MyBatis, Flyway, QueryDSL
Azure Data Factory Data Flow
Modernize & Automate Analytics Data Pipelines
Oracle application express ppt
Introduction to Spring WebFlux #jsug #sf_a1
Oracle Forms to APEX conversion tool
The microservice architecture: what, why, when and how?
Introduction to rest.li
Getting started with SAP PI/PO an overview presentation
Spring boot introduction
Reactive programming intro
Microservices with Java, Spring Boot and Spring Cloud
Oracle REST Data Services
Introduction to Azure Data Lake
Apache Flink @ NYC Flink Meetup
Building a Microservices-based ERP System
Changing the game with cloud dw
All of the Performance Tuning Features in Oracle SQL Developer
Building large scale transactional data lake using apache hudi
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Ad

Similar to PoP - “Platform of Platforms”: Framework for building Single-Page Application WordPress websites, decentralized crowd-sourced platforms, and social networks (20)

PDF
Get your mobile app in production in 3 months: Native and Reactive Mobile Apps
PDF
SPA: Key Questions
PPTX
Single page application and Framework
PDF
Backend & Frontend architecture scalability & websockets
PPTX
Basics to framework programming
PPTX
Frontender in-2016
PDF
Tornado
PDF
Single Page Applications
PPT
Ir11 bodle final
PDF
08 ajax
KEY
Scala and Lift
PPTX
Single Page Applications: Your Browser is the OS!
PDF
WebApp / SPA @ AllFacebook Developer Conference
PPTX
Angular jS Introduction by Google
 
KEY
Web Technology Trends (early 2009)
PPTX
Building modular single page applications
PPTX
Eureko frameworks
PPTX
The PRPL Pattern
KEY
SGCE 2012 Lightning Talk-Single Page Interface
PDF
"#Microfrontends #LowConnectivity #AsianMarket", Maxim Demidenko
Get your mobile app in production in 3 months: Native and Reactive Mobile Apps
SPA: Key Questions
Single page application and Framework
Backend & Frontend architecture scalability & websockets
Basics to framework programming
Frontender in-2016
Tornado
Single Page Applications
Ir11 bodle final
08 ajax
Scala and Lift
Single Page Applications: Your Browser is the OS!
WebApp / SPA @ AllFacebook Developer Conference
Angular jS Introduction by Google
 
Web Technology Trends (early 2009)
Building modular single page applications
Eureko frameworks
The PRPL Pattern
SGCE 2012 Lightning Talk-Single Page Interface
"#Microfrontends #LowConnectivity #AsianMarket", Maxim Demidenko
Ad

Recently uploaded (20)

PPTX
Online Work Permit System for Fast Permit Processing
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
System and Network Administraation Chapter 3
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
ISO 45001 Occupational Health and Safety Management System
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
top salesforce developer skills in 2025.pdf
PDF
Understanding Forklifts - TECH EHS Solution
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PPTX
Transform Your Business with a Software ERP System
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Online Work Permit System for Fast Permit Processing
How Creative Agencies Leverage Project Management Software.pdf
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Odoo Companies in India – Driving Business Transformation.pdf
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
System and Network Administraation Chapter 3
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
ISO 45001 Occupational Health and Safety Management System
How to Choose the Right IT Partner for Your Business in Malaysia
Softaken Excel to vCard Converter Software.pdf
How to Migrate SBCGlobal Email to Yahoo Easily
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Navsoft: AI-Powered Business Solutions & Custom Software Development
top salesforce developer skills in 2025.pdf
Understanding Forklifts - TECH EHS Solution
2025 Textile ERP Trends: SAP, Odoo & Oracle
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Transform Your Business with a Software ERP System
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises

PoP - “Platform of Platforms”: Framework for building Single-Page Application WordPress websites, decentralized crowd-sourced platforms, and social networks