SlideShare a Scribd company logo
High Voltage - Building Static Sites With Wordpress-Managed Content
High Voltage - Building Static Sites With Wordpress-Managed Content
…there was a time before
WordPress
One file per page
Assemble pages by including
common components
Mix in data from other sources
Emerging trends
• DRY
• Eliminate duplicate content
• Separate concerns
• Improve productivity
Thanks PHP
They matter too
But what about the content authors?
High Voltage - Building Static Sites With Wordpress-Managed Content
Content is a first class citizen
Further separation of concerns
• Users enter content using a GUI
• Programmers create templates that utilize the user-entered content
• Web pages generated on demand
Sounds simple?
It’s not
• With (pretty much) any CMS:
• Wrangling together templates and data is complicated
• The process is demanding and involves needless work
High Voltage - Building Static Sites With Wordpress-Managed Content
Most CMS-based websites
Writes ReadsExpensiveModerate
High Voltage - Building Static Sites With Wordpress-Managed Content
Some CMS-based websites
Writes ReadsCheapModerate
Thanks caching!
“The stack” stacks up
HTTP Accelerator (Varnish)
Web Server (Apache)
Application Server (WordPress/PHP)
Database (MySQL)
Object Cache
(MemCached)
File System
High Voltage - Building Static Sites With Wordpress-Managed Content
Too far?
Do you build a solution for your
problem or do you fit your problem
into a solution?
Build a solution
• We have the tools:
• Static site generators
• Rapid application frameworks
• APIs
• CMSs / Writing rooms
Big problems
Tiny solutions
High Voltage - Building Static Sites With Wordpress-Managed Content
Why static sites
• Fast
• Secure
• Scalable
• Simple themes and integrations
• Own conventions, languages, and tools
• Excellent version control story
The generators help!
Build
HTML
JS SVGCSS
GIF JPGPNG
Source
HTML
COFFEE SVG
TWIG ERB
SCSS
GIF JPGPNG
JSON YAML MD
Productivity, performance, security, scalability 

paid for with slow resource intensive build
processes
The new reality
Writes ReadsCheapExpensive
Requirements diminish
Server/CDN
File System
More hosting options open up
• Shared hosting
• VPS
• GitHub Pages (https://pages.github.com/)
• Dropbox (https://pages.github.com/)
• Google Drive (https://www.google.com/drive/)
• Amazon S3 (http://aws.amazon.com/s3/)
There are drawbacks
• Particularly with the concept of keeping content in flat files
• Hard to contribute (knowledge of Git)
• Hard to collaborate
Writing rooms to the rescue
• Contentful (https://www.contentful.com/)
• Prismic.io (https://www.prismic.io/)
• Pull in data through the API into a static build process
Focus
Admin interface for content creation and
collaboration
However…
• Subscription services
• Potential for vendor lock-in
• Lack of mature, open source alternatives
WordPress as a pure CMS
• WordPress can be used as an alternative to writing rooms like
Prismic.io and Contentful
• Content authors use WordPress to manage content and collaborate;
not to build web sites
• Content pulled out of WordPress and injected into static build
process
WP REST API
• Popular plugin that will be integrated into core
• Provides an HTTP REST API
• Extensive API for CRUD operations on comments, media, meta data,
posts, taxonomies, and users
• http://wp-api.org
Advanced Custom Fields Pro
• Popular plugin that allows for rapid creation of custom fields
• Supports many field types, including text, number, image, map,
links, and post references
• Rich ecosystem of extensions including repeaters
• http://www.advancedcustomfields.com
WP REST API Custom Fields
• Adds custom fields defined with ACF Pro to JSON output
• Inserts an object into the meta key with all your fields
• http://wordpress.org/plugins/wp-rest-api-custom-fields
Putting the backend together
• A 15-minute REST server with multi-user support, roles and
permissions, and an admin interface
1. Enable the aforementioned plugins
2. Setup friendly permalinks
3. Create custom post types if necessary
4. Setup custom fields if necessary
5. API accessible at /wp-json
High Voltage - Building Static Sites With Wordpress-Managed Content
Choosing a static site generator
• Comes in pretty much any language: C, C++, Java, Go, Haskell,
Erlang, JavaScript, Ruby, Python, PHP, etc.
• Choose a language you a comfortable with and enjoy working with
• Choose a system that is mature
• Choose a system that lets you work with many different types of
inputs, including remote content for maximum flexibility
Middleman
Hand-crafted frontend development

https://middlemanapp.com/
Key Features
• HTML, Markdown, YAML, and JSON format
• Templating language
• Asset pipeline
• Live reload
• Development server
• Common preprocessors and concat/minify out of the box
Useful Extensions
• Deploy
• Blog
• Pagination
• SVG Fallback
• Full list: https://directory.middlemanapp.com/#/extensions/all
Directory Structure
• Data
• Lib
• Source
• Images
• Javascripts
• Layouts
• Stylesheets
• Pages, posts, etc
Source
index.html.md
/about
Build
Data
/css /js/img
layout.html.erb logo.svg all.scss
_header.scss
_footer.scss
all.js
menu.coffee
feed.js
_header.html.erb
/layouts
Build
index.html
/about /css /js/img
logo.svg all.css all.js
logo.png
logo@2x.png
Dynamic Files
• Data is made available to our templates
• Useful for creating menus, lists, directories, etc.
• Pages can also be dynamically generated from data
sally.html roger.html sue.html
steven.html lisa.html
people
build
people.json
data
Dynamic Pages
In config.rb
people.each do |person|
proxy “people/#{person[‘name’]}.html”,
“layout/person.html”, locals: { person: person }
end
Data Source Library
In lib/wordpress.rb
class WordPress
include HTTParty
def initialize(uri)
self.class.base_uri uri
end
def posts
@posts ||= self.class.get(‘/posts?type=post’)
end
end
Dynamic Pages from Data Source
In config.rb
@wordpress = WordPress.new(“http://supersecret.dev/wp-json”)
@wordpress.posts.each do |post|
proxy “/blog/#{post[‘slug’]}/index.html”, “templates/post.html”,
locals: { post: post }
end
Expose Data Source to Templates
In config.rb
helpers do
def wordpress
@wordpress
end
end
Use Data Source in Templates
In source/blog/index.html
<% wordpress.posts.each do |post| %>
<div>
<h3><a href=“/blog/<%= post[‘slug’] %>/”><%= post[‘title’] %></a></h3>
<div><%= post[‘excerpt’] %></div>
</div>
<% end %>
Nicer than this!
<?php

if (have_posts()) {

while ( have_posts()) { 

the_post();

?>

<div>

<h3><a href=“<?php the_permalink(); ?>”><?php the_title(); ?></a></h3>

<div><?php the_excerpt(); ?></div>

</div>

<?php 

}

}

?>
High Voltage - Building Static Sites With Wordpress-Managed Content
High Voltage - Building Static Sites With Wordpress-Managed Content
High Voltage - Building Static Sites With Wordpress-Managed Content
High Voltage - Building Static Sites With Wordpress-Managed Content
High Voltage - Building Static Sites With Wordpress-Managed Content
There’s a plugin for that
• Hookpress
• Turns internal hooks into web hooks
• Recompile your site when content is updated
• https://wordpress.org/plugins/hookpress/
Middleman-WordPress Example
https://github.com/knicklabs/middleman-
wordpress-example
High Voltage - Building Static Sites With Wordpress-Managed Content

More Related Content

What's hot (20)

PDF
Asp.Net 3 5 Part 1
asim78
 
PPT
Web browsers and web document
Mohammad Kamrul Hasan
 
PPTX
SharePoint Framework, React and Office UI SPS Paris 2016 - d01
Sonja Madsen
 
PPTX
Basic Website 101
Thomas Salmen
 
PPTX
EDS selection & implementation @ CCC
Molly Beestrum
 
PPTX
Overview of Coding Languages
GlowTouch
 
PDF
Showcasing drupal
Opevel
 
PPT
Static web documents
bhashwitha kolluri
 
PPTX
Did wordpressdothat
Jon Bishop
 
PDF
High performance website
Chamnap Chhorn
 
PDF
Automate capabilities
Daniele Fittabile
 
PPTX
Single page application
Ismaeel Enjreny
 
PPTX
dmBridge & dmMonocle
University of Nevada, Las Vegas
 
PDF
WordPress Code Architecture
Mario Peshev
 
KEY
Drupal at the EBI
Francis Rowland
 
PPT
sell idea
Rashmi Joshi
 
PPT
presentation on static website design
jyotiyadav1926
 
PDF
Presentation 1 Web--dev
altsav
 
PPT
VFP & Ajax
Mike Feltman
 
PPTX
Single Page Application
Isuru Madusanka
 
Asp.Net 3 5 Part 1
asim78
 
Web browsers and web document
Mohammad Kamrul Hasan
 
SharePoint Framework, React and Office UI SPS Paris 2016 - d01
Sonja Madsen
 
Basic Website 101
Thomas Salmen
 
EDS selection & implementation @ CCC
Molly Beestrum
 
Overview of Coding Languages
GlowTouch
 
Showcasing drupal
Opevel
 
Static web documents
bhashwitha kolluri
 
Did wordpressdothat
Jon Bishop
 
High performance website
Chamnap Chhorn
 
Automate capabilities
Daniele Fittabile
 
Single page application
Ismaeel Enjreny
 
dmBridge & dmMonocle
University of Nevada, Las Vegas
 
WordPress Code Architecture
Mario Peshev
 
Drupal at the EBI
Francis Rowland
 
sell idea
Rashmi Joshi
 
presentation on static website design
jyotiyadav1926
 
Presentation 1 Web--dev
altsav
 
VFP & Ajax
Mike Feltman
 
Single Page Application
Isuru Madusanka
 

Viewers also liked (11)

PDF
Is Any Job Better Than No Job?
T & A Solutions
 
PDF
Why nosql also_why_somany
Prashanth Panduranga
 
PDF
Being there
Prashanth Panduranga
 
PDF
Doc byyou
Prashanth Panduranga
 
PDF
Qualities To Look For In A Recruitment Agency
T & A Solutions
 
PPTX
Introduction to Enterprise architecture and the steps to perform an Enterpris...
Prashanth Panduranga
 
PPTX
Maths probability
Saurabh Sonwalkar
 
PDF
Factors to Consider Before Switching Your Job
T & A Solutions
 
PDF
Things To Avoid At Office
T & A Solutions
 
PPTX
Minerals
Saurabh Sonwalkar
 
PPTX
What's Your Element? - Ignite Presentation
maevekaiser
 
Is Any Job Better Than No Job?
T & A Solutions
 
Why nosql also_why_somany
Prashanth Panduranga
 
Qualities To Look For In A Recruitment Agency
T & A Solutions
 
Introduction to Enterprise architecture and the steps to perform an Enterpris...
Prashanth Panduranga
 
Maths probability
Saurabh Sonwalkar
 
Factors to Consider Before Switching Your Job
T & A Solutions
 
Things To Avoid At Office
T & A Solutions
 
What's Your Element? - Ignite Presentation
maevekaiser
 
Ad

Similar to High Voltage - Building Static Sites With Wordpress-Managed Content (20)

PDF
eMusic: WordPress in the Enterprise
Scott Taylor
 
KEY
WordPress & Other Content Management Systems
Emily Lewis
 
PPTX
Java CMS 2015
Will Iverson
 
PPTX
Meetup which approach to choose?
Joe Mbaya
 
PPTX
Business 2.0 with WordPress
Mario Peshev
 
PDF
Going back to static html sites / Artem Daniliants / LumoSpark
LumoSpark
 
PDF
StoryCode Tech Immersion 1
storycode
 
PDF
Cms & wordpress theme development 2011
Dave Wallace
 
PPTX
Beyond the Theme - Using WordPress as an API
David Tufts
 
KEY
WordPress - Open Source Overview Presentation
Andy Stratton
 
PDF
Implementing a Symfony Based CMS in a Publishing Company
Marcos Labad
 
PPT
Website design company in delhi ncr
websitedevelopmentcompany
 
PDF
Mura vs Wordpress
Ronnie Duke
 
KEY
"Wordpress for web designers. What, when, how, where" por @nuriarai
webcat
 
PDF
Web Intensive Week 3 - Day 5
studiokandm
 
PPTX
A Beginner's Guide to Popular CMSs
StuMitchellmw
 
PDF
What Multisite can do for You - Anthony Cole - WordCamp Sydney 2012
WordCamp Sydney
 
KEY
Open Source CMS Playroom
librarywebchic
 
PDF
Setting up a local WordPress development environment
Zero Point Development
 
PDF
Daniel Garcia ContentBox: CFSummit 2023
Ortus Solutions, Corp
 
eMusic: WordPress in the Enterprise
Scott Taylor
 
WordPress & Other Content Management Systems
Emily Lewis
 
Java CMS 2015
Will Iverson
 
Meetup which approach to choose?
Joe Mbaya
 
Business 2.0 with WordPress
Mario Peshev
 
Going back to static html sites / Artem Daniliants / LumoSpark
LumoSpark
 
StoryCode Tech Immersion 1
storycode
 
Cms & wordpress theme development 2011
Dave Wallace
 
Beyond the Theme - Using WordPress as an API
David Tufts
 
WordPress - Open Source Overview Presentation
Andy Stratton
 
Implementing a Symfony Based CMS in a Publishing Company
Marcos Labad
 
Website design company in delhi ncr
websitedevelopmentcompany
 
Mura vs Wordpress
Ronnie Duke
 
"Wordpress for web designers. What, when, how, where" por @nuriarai
webcat
 
Web Intensive Week 3 - Day 5
studiokandm
 
A Beginner's Guide to Popular CMSs
StuMitchellmw
 
What Multisite can do for You - Anthony Cole - WordCamp Sydney 2012
WordCamp Sydney
 
Open Source CMS Playroom
librarywebchic
 
Setting up a local WordPress development environment
Zero Point Development
 
Daniel Garcia ContentBox: CFSummit 2023
Ortus Solutions, Corp
 
Ad

Recently uploaded (20)

PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
PDF
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
DOCX
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PDF
Advancing WebDriver BiDi support in WebKit
Igalia
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
Staying Human in a Machine- Accelerated World
Catalin Jora
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
DOCX
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
Advancing WebDriver BiDi support in WebKit
Igalia
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
Staying Human in a Machine- Accelerated World
Catalin Jora
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 

High Voltage - Building Static Sites With Wordpress-Managed Content

  • 3. …there was a time before WordPress
  • 5. Assemble pages by including common components
  • 6. Mix in data from other sources
  • 7. Emerging trends • DRY • Eliminate duplicate content • Separate concerns • Improve productivity
  • 9. They matter too But what about the content authors?
  • 11. Content is a first class citizen
  • 12. Further separation of concerns • Users enter content using a GUI • Programmers create templates that utilize the user-entered content • Web pages generated on demand
  • 14. It’s not • With (pretty much) any CMS: • Wrangling together templates and data is complicated • The process is demanding and involves needless work
  • 16. Most CMS-based websites Writes ReadsExpensiveModerate
  • 18. Some CMS-based websites Writes ReadsCheapModerate
  • 20. “The stack” stacks up HTTP Accelerator (Varnish) Web Server (Apache) Application Server (WordPress/PHP) Database (MySQL) Object Cache (MemCached) File System
  • 23. Do you build a solution for your problem or do you fit your problem into a solution?
  • 24. Build a solution • We have the tools: • Static site generators • Rapid application frameworks • APIs • CMSs / Writing rooms
  • 27. Why static sites • Fast • Secure • Scalable • Simple themes and integrations • Own conventions, languages, and tools • Excellent version control story
  • 28. The generators help! Build HTML JS SVGCSS GIF JPGPNG Source HTML COFFEE SVG TWIG ERB SCSS GIF JPGPNG JSON YAML MD
  • 29. Productivity, performance, security, scalability 
 paid for with slow resource intensive build processes
  • 30. The new reality Writes ReadsCheapExpensive
  • 32. More hosting options open up • Shared hosting • VPS • GitHub Pages (https://pages.github.com/) • Dropbox (https://pages.github.com/) • Google Drive (https://www.google.com/drive/) • Amazon S3 (http://aws.amazon.com/s3/)
  • 33. There are drawbacks • Particularly with the concept of keeping content in flat files • Hard to contribute (knowledge of Git) • Hard to collaborate
  • 34. Writing rooms to the rescue • Contentful (https://www.contentful.com/) • Prismic.io (https://www.prismic.io/) • Pull in data through the API into a static build process
  • 35. Focus Admin interface for content creation and collaboration
  • 36. However… • Subscription services • Potential for vendor lock-in • Lack of mature, open source alternatives
  • 37. WordPress as a pure CMS • WordPress can be used as an alternative to writing rooms like Prismic.io and Contentful • Content authors use WordPress to manage content and collaborate; not to build web sites • Content pulled out of WordPress and injected into static build process
  • 38. WP REST API • Popular plugin that will be integrated into core • Provides an HTTP REST API • Extensive API for CRUD operations on comments, media, meta data, posts, taxonomies, and users • http://wp-api.org
  • 39. Advanced Custom Fields Pro • Popular plugin that allows for rapid creation of custom fields • Supports many field types, including text, number, image, map, links, and post references • Rich ecosystem of extensions including repeaters • http://www.advancedcustomfields.com
  • 40. WP REST API Custom Fields • Adds custom fields defined with ACF Pro to JSON output • Inserts an object into the meta key with all your fields • http://wordpress.org/plugins/wp-rest-api-custom-fields
  • 41. Putting the backend together • A 15-minute REST server with multi-user support, roles and permissions, and an admin interface 1. Enable the aforementioned plugins 2. Setup friendly permalinks 3. Create custom post types if necessary 4. Setup custom fields if necessary 5. API accessible at /wp-json
  • 43. Choosing a static site generator • Comes in pretty much any language: C, C++, Java, Go, Haskell, Erlang, JavaScript, Ruby, Python, PHP, etc. • Choose a language you a comfortable with and enjoy working with • Choose a system that is mature • Choose a system that lets you work with many different types of inputs, including remote content for maximum flexibility
  • 45. Key Features • HTML, Markdown, YAML, and JSON format • Templating language • Asset pipeline • Live reload • Development server • Common preprocessors and concat/minify out of the box
  • 46. Useful Extensions • Deploy • Blog • Pagination • SVG Fallback • Full list: https://directory.middlemanapp.com/#/extensions/all
  • 47. Directory Structure • Data • Lib • Source • Images • Javascripts • Layouts • Stylesheets • Pages, posts, etc
  • 48. Source index.html.md /about Build Data /css /js/img layout.html.erb logo.svg all.scss _header.scss _footer.scss all.js menu.coffee feed.js _header.html.erb /layouts
  • 50. Dynamic Files • Data is made available to our templates • Useful for creating menus, lists, directories, etc. • Pages can also be dynamically generated from data
  • 51. sally.html roger.html sue.html steven.html lisa.html people build people.json data
  • 52. Dynamic Pages In config.rb people.each do |person| proxy “people/#{person[‘name’]}.html”, “layout/person.html”, locals: { person: person } end
  • 53. Data Source Library In lib/wordpress.rb class WordPress include HTTParty def initialize(uri) self.class.base_uri uri end def posts @posts ||= self.class.get(‘/posts?type=post’) end end
  • 54. Dynamic Pages from Data Source In config.rb @wordpress = WordPress.new(“http://supersecret.dev/wp-json”) @wordpress.posts.each do |post| proxy “/blog/#{post[‘slug’]}/index.html”, “templates/post.html”, locals: { post: post } end
  • 55. Expose Data Source to Templates In config.rb helpers do def wordpress @wordpress end end
  • 56. Use Data Source in Templates In source/blog/index.html <% wordpress.posts.each do |post| %> <div> <h3><a href=“/blog/<%= post[‘slug’] %>/”><%= post[‘title’] %></a></h3> <div><%= post[‘excerpt’] %></div> </div> <% end %>
  • 57. Nicer than this! <?php
 if (have_posts()) {
 while ( have_posts()) { 
 the_post();
 ?>
 <div>
 <h3><a href=“<?php the_permalink(); ?>”><?php the_title(); ?></a></h3>
 <div><?php the_excerpt(); ?></div>
 </div>
 <?php 
 }
 }
 ?>
  • 63. There’s a plugin for that • Hookpress • Turns internal hooks into web hooks • Recompile your site when content is updated • https://wordpress.org/plugins/hookpress/